Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Другие форматы этого документа

Данная глава не является переводом соответствующей главы оригинального документа, с разрешения Al Dev (Alavoor Vasudevan), она переписана для учета особенностей переведенного документа.

Оригинальный документ распространяется в 14 различных форматах - DVI, Postscript, Latex, Adobe Acrobat PDF, LyX, GNU-info, HTML, RTF(Rich Text Format), обычный текст, Unix man page, отдельный HTML файл, SGML (Linuxdoc format), SGML (Docbook format), MS WinHelp. Переведенный документ доступен в форматах - DocBook XML, HTML и PDF.

Оригинал документа находится на -

  • http://www.linuxdoc.org, затем нажмите на HOWTO и найдите его по имени, используя CTRL+f или ALT+f функцию web-броузера.

Домашняя страница перевода http://mvd.h1.ru/tr/

Переведенный документ написан в формате DocBook XML.

Перевод документа в html формат выполнен с помощью утилиты xsltproc входящей в пакет libxslt. Пакет libxslt можно взять на http://xmlsoft.org. Также потребуются Docbook DTD с http://www.oasis-open.org/docbook/. и Docbook XSL с http://docbook.sourceforge.net/projects/xsl/.

Преобразование в HTML формат выполняется следующим образом:

  • Создается файл docbook_ru_html.xsl содержащий следующие строки
    <?xml version='1.0'?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    version='1.0'
                    xmlns="http://www.w3.org/TR/xhtml1/transitional"
                    exclude-result-prefixes="#default">
    
    		<xsl:import href="/usr/share/xml/docbook/xsl-stylesheets/html/docbook.xsl"/>
    
    		<xsl:variable name="toc.section.depth">3</xsl:variable>
    
    <xsl:output method="html"
    	encoding="KOI8-R"
                indent="no"/>
    
    </xsl:stylesheet> 
  • Выполняется команда
    	xsltproc -o Diskless-HOWTO.html docbook_ru_html.xsl Diskless-HOWTO.xml

Формат Acrobat PDF

Формат Acrobat PDF можно получить следующим образом:

  • Создается файл docbook_ru_fo.xsl содержащий следующие строки
    <?xml version='1.0'?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    version='1.0'
                    xmlns="http://www.w3.org/TR/xhtml1/transitional"
                    exclude-result-prefixes="#default">
    
    		<xsl:import href="/usr/share/xml/docbook/xsl-stylesheets/fo/docbook.xsl"/>
    
    <xsl:param name="paper.type" select="'A4'"/>
    <xsl:param name="body.font.family">TimesNewRoman</xsl:param>
    <xsl:param name="title.font.family">Arial</xsl:param>
    <xsl:param name="monospace.font.family">CourierNew</xsl:param>
    <xsl:param name="sans.font.family">Arial</xsl:param>
    <xsl:param name="dingbat.font.family">TimesNewRoman</xsl:param>
    <xsl:param name="body.font.master">8</xsl:param>
    </xsl:stylesheet>
     
  • выполняется команда
    xsltproc -o Diskless-HOWTO.fo docbook_ru_fo.xsl Diskless-HOWTO.xml
    в результате получается файл в формате fo, который далее можно обрабатывать программой преобразования форматированных объектов в pdf формат. Одна из таких программ fop доступна на http://xml.apache.org/fop/. Так как fop написана на java, вам понадобится среда запуска java программ, ее можно взять на сайте Sun http://java.sun.com/j2se/.

    Заметка: Если вы возьмете Docbook XSL версии выше 1.45, то в получившемся файле Diskless-HOWTO.fo вам следует заменить выражение master-references= на master-name=, так как fop (по крайней мере, версии 0.20.2RC) не понимает данной нотации из XSL 1.0

  • C fop не поставляются шрифты, содержащие кириллические символы, поэтому для создания документов с внедренными кириллическими шрифтами вам потребуется выполнить дополнительную настройку fop. Последующие действия предполагают размещение пакета fop в каталоге /usr/local/fop

    • Возьмите ttf шрифты содержащие кириллические символы, например, подойдут шрифты Arial, CourierNew, TimesNewRoman.

    • Создайте к выбранным шрифтам метрики в XML формате. Метрики будем сохранять в каталоге /usr/local/fop/metrics. Перед выполнением последующего шага нужно установить значение переменной окружения CLASSPATH, например для bash:
      export CLASSPATH=/usr/local/fop/build/fop.jar:/usr/local/fop/lib/xerces.jar:\
      	/usr/local/fop/lib/xalan.jar:/uar/local/fop/lib/batik.jar
      Для каждого из файлов шрифтов arial.ttf, arialbd.ttf, ariali.ttf, arialbi.ttf, cour.ttf, courbd.ttf, couri.ttf, courbi.ttf, times.ttf, timesbd.ttf, timesi.ttf, timesbd.ttf, выполните команду
      java org.apache.fop.fonts.apps.TTFReader <путь к файлу шрифта>   /usr/local/fop/metrics/<имя шрифта>.xml
    • Теперь необходимо откорректировать файл /usr/local/fop/conf/userconfig.xml. Его секция fonts должна выглядеть так:
      <fonts>
          <!-- TTF fonts -->
      	<!-- Arial -->
      <font metrics-file="/usr/local/Fop/metrics/arial.xml" kerning="yes" embed-file="<путь к каталогу со шрифтами>/arial.ttf">
      	<font-triplet name="Arial" style="normal" weight="normal"/>
      </font>
      <font metrics-file="/usr/local/Fop/metrics/arialbd.xml" kerning="yes" embed-file="<путь к каталогу со шрифтами>/arialbd.ttf">
      	<font-triplet name="Arial" style="normal" weight="bold"/>
      </font>
      <font metrics-file="/usr/local/Fop/metrics/ariali.xml" kerning="yes" embed-file="<путь к каталогу со шрифтами>/ariali.ttf">
      	<font-triplet name="Arial" style="italic" weight="normal"/>
      </font>
      <font metrics-file="/usr/local/Fop/metrics/arialbi.xml" kerning="yes" embed-file="<путь к каталогу со шрифтами>/arialbi.ttf">
      	<font-triplet name="Arial" style="italic" weight="bold"/>
      </font>
      	<!-- TimesNewRoman -->
      <font metrics-file="/usr/local/Fop/metrics/times.xml" kerning="yes" embed-file="<путь к каталогу со шрифтами>/times.ttf">
      	<font-triplet name="TimesNewRoman" style="normal" weight="normal"/>
      </font>
      <font metrics-file="/usr/local/Fop/metrics/timesbd.xml" kerning="yes" embed-file="<путь к каталогу со шрифтами>/timesbd.ttf">
      	<font-triplet name="TimesNewRoman" style="normal" weight="bold"/>
      </font>
      <font metrics-file="/usr/local/Fop/metrics/timesi.xml" kerning="yes" embed-file="<путь к каталогу со шрифтами>/timesi.ttf">
      	<font-triplet name="TimesNewRoman" style="italic" weight="normal"/>
      </font>
      <font metrics-file="/usr/local/Fop/metrics/timesbi.xml" kerning="yes" embed-file="<путь к каталогу со шрифтами>/timesbi.ttf">
      	<font-triplet name="TimesNewRoman" style="italic" weight="bold"/>
      </font>
      	<!-- CourierNew -->
      <font metrics-file="/usr/local/Fop/metrics/cour.xml" kerning="yes" embed-file="<путь к каталогу со шрифтами>/cour.ttf">
      	<font-triplet name="CourierNew" style="normal" weight="normal"/>
      </font>
      <font metrics-file="/usr/local/Fop/metrics/courbd.xml" kerning="yes" embed-file="<путь к каталогу со шрифтами>/courbd.ttf">
      	<font-triplet name="CourierNew" style="normal" weight="bold"/>
      </font>
      <font metrics-file="/usr/local/Fop/metrics/couri.xml" kerning="yes" embed-file="<путь к каталогу со шрифтами>/couri.ttf">
      	<font-triplet name="CourierNew" style="italic" weight="normal"/>
      </font>
      <font metrics-file="/usr/local/Fop/metrics/courbi.xml" kerning="yes" embed-file="<путь к каталогу со шрифтами>/courbi.ttf">
      	<font-triplet name="CourierNew" style="italic" weight="bold"/>
      </font>
      </fonts>
  • И последний шаг, нужно дать команду:
    /usr/local/fop/fop.sh -c /usr/local/fop/conf/userconfig.xml -fo Diskless-HOWTO.fo -pdf Diskless-HOWTO.pdf

Заметка: Созданный таким способом pdf успешно просматривается программами Acrobat Reader и gv, но его нельзя просмотреть программой xpdf. Если вы знаете, каким образом сделать возможным просмотр в программе xpdf сообщите мне, пожалуйста, по адресу mvd@altlinux.ru. У меня не получилось успешно внедрять pfb шрифты, все кириллические символы в pdf документе заменялись символом '#'. Если вы знаете способ решения этой проблемы, сообщите мне по тому же адресу.