以下部分介绍如何安装下载的软件包来设置你的 DocBook SGML 环境。示例可能引用旧版本的软件包,你应该修改示例并使用最新版本。
对于最新、最权威的信息,始终阅读你正在安装的软件包附带的文档。 通常,你会找到一个README和一个INSTALL文件,解压缩存档后。
由于软件包一直在变化,下面的详细说明可能无法完全按显示的那样工作。 但是,这些说明应该仍然让你大致了解使 DocBook SGML 工作的步骤。
这是你需要做的,但请记住阅读 OpenJade 附带的文件,看看是否有你想要为你的平台特别做的事情
cd /usr/local tar -xvzf ~/openjade-1.3.tar.gz cd openjade-1.3 ./configure --prefix=/usr/local/openjade-1.3 make make install # Once installed, the objects etc. can be deleted. make clean |
你可能想知道为什么我将 openjade 源代码直接转储到/usr/local。 作者在使用 openjade 的安装时遇到了一些问题。 但是,对于较新版本的 OpenJade,你可以尝试使用一个标准(/usr/local/src)位置来放置 openjade 源代码包,并使用一些其他的 prefix 安装位置,看看效果如何。
如前所述,jadetex 和 pdfjadetex 是与 OpenJade 打包在一起的 TeX 宏。 可以在 /usr/local/openjade-3.1/dsssl 中找到它们。 Frank Atanassow Christoph 准备了一个安装这些宏的方便指南,可以在以下位置找到:
ftp://ftp.dante.de/tex-archive/macros/jadetex/install.pdf
http://reaster.com/installjadetex.pdf
以下内容基于 install.pdf 中的说明
jadetex 和 pdfjadetex tex 宏需要比常规运行的 tex 更多的内存。 默认的 tex 内存限制配置通常太有限。 可以编辑 tex 配置文件texmf.cnf并增加限制 tex 内存使用的变量。 但是,与其只编辑texmf.cnf文件以允许 tex 在所有实例中拥有更多内存,不如创建一个自定义的 tex 上下文,称为 hugelatex。 如果你的系统上已经配置了 hugelatex,则可以跳过此子部分 (which hugelatex)。
验证是否安装了有效的 TeX 并找到其目录
bash$ which tex /usr/share/texmf/bin/tex bash$ kpsewhich -expand-var='$TEXMFMAIN' /usr/share/texmf bash$ |
使用 which 应该可以找到 tex 程序的位置。 如果找不到,你可能需要安装 teTeX,然后返回此处。 kpsewhich 是 teTeX 附带的实用程序,如果一切顺利,它会找到主 tex 目录。
现在texmf目录已知,可以开始安装
cd /usr/share/texmf cd tex/latex cp -r config config-temp cd config-temp tex -ini -progname=hugelatex latex.ini mv latex.fmt hugelatex.fmt mv hugelatex.fmt /usr/share/texmf/web2c cd .. rm -r config-temp cd /usr/share/texmf/bin ln -s tex hugelatex cd /usr/share/texmf/web2c |
% hugelatex settings extra_mem_top.hugelatex = 8000000 extra_mem_bot.hugelatex = 8000000 hash_extra.hugelatex = 15000 pool_size.hugelatex = 5000000 string_vacancies.hugelatex = 45000 max_strings.hugelatex = 55000 pool_free.hugelatex = 47500 nest_size.hugelatex = 500 param_size.hugelatex = 1500 save_size.hugelatex = 5000 stack_size.hugelatex = 15000 % jadetex extra_mem_top.jadetex = 8000000 extra_mem_bot.jadetex = 8000000 hash_extra.jadetex = 20000 pool_size.jadetex = 5000000 string_vacancies.jadetex = 45000 max_strings.jadetex = 55000 pool_free.jadetex = 47500 nest_size.jadetex = 500 param_size.jadetex = 1500 save_size.jadetex = 5000 stack_size.jadetex = 15000 % pdfjadetex extra_mem_top.pdfjadetex = 8000000 extra_mem_bot.pdfjadetex = 8000000 hash_extra.pdfjadetex = 20000 pool_size.pdfjadetex = 5000000 string_vacancies.pdfjadetex = 45000 max_strings.pdfjadetex = 55000 pool_free.pdfjadetex = 47500 nest_size.pdfjadetex = 500 param_size.pdfjadetex = 1500 save_size.pdfjadetex = 5000 stack_size.pdfjadetex = 15000 |
设置好 hugelatex 后,如上所述,可能需要调用 texhash 程序才能使其工作
root# texhash texhash: Updating /usr/share/texmf/ls-R... texhash: Updating /var/cache/fonts/ls-R... texhash: Done. root# |
设置 jadetex 和 pdfjadetex 类似于 hugelatex。
cd /usr/local/openjade-1.3/dsssl make -f Makefile.jadetex install # make creates and installs the .fmt # files to /usr/share/texmf/web2c # Now create symlinks ... cd /usr/share/texmf/bin ln -s tex jadetex ln -s pdftex pdfjadetex # Finally, run texhash. root# texhash |
jadetex 命令采用从 openjade 生成的 tex 文件,并输出一个dvi文件。 pdfjadetex 采用从 openjade 生成的tex文件,并输出一个pdf文件。 dvips 程序采用dvi文件并输出一个 PostScriptps文件,你可以将其发送到你的打印机或使用 ghostscript gs 查看。
DocBook DTD 只是一些sgml文本文件,因此无需编译。 只需要在某个地方 unzip 它们
# DocBook DTD V4.1 in # /usr/local/share/sgml/docbook/4.1 cd /usr/local/share mkdir sgml; cd sgml mkdir docbook; cd docbook mkdir 4.1; cd 4.1 unzip -a ~/docbk41.zip |
不同版本的 DocBook DTD 之间存在一些差异。xxissues.txt文件记录了这些问题。 标签在版本之间被添加、删除和重命名。
如果你需要使用 DocBook DTD V3.1,它可以从下载 V4.1 的同一位置获得。 V3.1 使用了很多,所以最好获取它并将其安装在3.1/子目录中。
对于每个解压的 DocBook DTD 版本,进入其目录并解压iso8879-entities.tar.gz文件
cd /usr/local/share/sgml/docbook/4.1 tar -xvzf ~/iso8879-entities.tar.gz |
# If needed ... cd /usr/local/share/sgml/docbook/4.1 ln -s docbook.cat catalog |
DocBook DSSSL 的安装,适用于所有版本的 DocBook,只是一个 unzip 到某个地方的问题。
cd /usr/local/share/sgml mkdir dsssl; cd dsssl unzip -a ~/db160.zip # If you downloaded the ldp.dsl stylesheet # customization, copy it to ... cd docbook cp ~/ldp.dsl html cp ~/ldp.dsl print # Copy into both directories. |
如果你喜欢,你可以安装 SGMLtools-Lite,但它是可选的。 它的安装是标准的
cd /usr/src tar -xvzf ~/sgmltools-lite-3.0.2.tar.gz cd sgmltools-lite-3.0.2 ./configure make install |
要使 sgmltools 脚本工作,必须进行一项调整,即必须编辑它并设置 openjade 的路径:vi `which sgmltools`。 查阅其文档以了解更多信息。
最好为你平台下载一个 htmldoc 的二进制发行版。 安装很简单:只需解压缩它并运行设置。 阅读包中的文档以获取更多信息。
如果你下载了源代码,你还需要 Fast Light Tool Kit,否则它将无法链接
安装是 autoconf 风格。 只需运行 configure 脚本、make、make install。 如果一切顺利,它将安装在/usr/bin.
当从html文件中生成输出时,htmldoc 程序存在(或曾经存在)一些小故障。 例如,项目符号项未正确呈现,阴影区域并非总是阴影。
为了解决这个问题,可以从 LinuxDoc.org 获得一个 perl 脚本 (ldp_print)。 lpd_print 脚本处理来自 openjade 的 nochunkshtml文件,然后在其上运行 htmldoc 以生成正确呈现的pdf和ps.
![]() | 获取它! |
tar -xvzf ldp_print.tar.gz cd ldp_print # Copy the lib somewhere where perl looks. cp fix_print_html.lib /usr/lib/perl5/site_perl cp ldp_print /usr/local/bin |
在 DocBook2X 中的 spec 文件可用之前,必须安装 perl 版本 5 的SGMLS.pm模块,假设已安装 perl 版本 5。 此模块的安装不像大多数 perl 模块安装那样自动化。 它使用了一个Makefile在运行 make 之前必须先编辑。
cd /usr/src tar -xvzf ~/SGMLSpm-1.03ii.tar.gz cd SGMLSpm # Edit Makfile vi Makefile # In the user options of the Makefile # set everything correct for # your system. # Example: # PERL = /usr/bin/perl # BINDIR = /usr/local/bin # PERL5DIR = /usr/lib/perl5/site_perl # MODULEDIR = ${PERL5DIR}/SGMLS # SPECDIR = ${PERL5DIR} # HTMLDIR= /usr/local/apache/htdocs make install |
DocBook2X 不包含要编译或 install 的程序,尽管它有一些你可能想查看的脚本,因此要做的就是将它解压到某个地方。
cd /usr/local/share/sgml tar -xvzf ~/docbook2X-0.6.0.tar.gz cd docbook2X |
patch docbook2man-spec.pl docbook2man-spec.pl.patch |
$SGML_CATALOG_FILES环境变量被 openjade(和其他 SGML 软件)用于定位 DTD 和 DSL(样式表)。 SGML 软件无法在找不到这些文件的情况下运行,这些文件已被解压到各个目录。 鉴于到目前为止的设置,以下是如何$SGML_CATALOG_FILES可以在/etc/profile:
########################################################################################## # SGML DocBook - openjade sgmltools-lite JADE_HOME=/usr/local/openjade-1.3 SGML_SHARE=/usr/local/share/sgml PATH=$PATH:$JADE_HOME/bin # DSSSL stylesheets # Norman Walsh's Modular DocBook Stylesheets SGML_CATALOG_FILES=$SGML_SHARE/dsssl/docbook/catalog # OpenJade stylesheets SGML_CATALOG_FILES=$SGML_CATALOG_FILES:$JADE_HOME/dsssl/catalog # sgmltools-lite's stylesheets SGML_CATALOG_FILES=$SGML_CATALOG_FILES:$SGML_SHARE/stylesheets/sgmltools/sgmltools.cat # DocBook DTD # From OASIS-Open.org SGML_CATALOG_FILES=$SGML_CATALOG_FILES:$SGML_SHARE/docbook/3.1/catalog SGML_CATALOG_FILES=$SGML_CATALOG_FILES:$SGML_SHARE/docbook/4.1/catalog # These old ones were installed with doctools-1.2 from XFree86.org SGML_CATALOG_FILES=$SGML_CATALOG_FILES:$SGML_SHARE/docbook/2.4.1/catalog SGML_CATALOG_FILES=$SGML_CATALOG_FILES:$SGML_SHARE/docbook/3.0/catalog # sgmltools-lite catalogs for LinuxDoc SGML_CATALOG_FILES=$SGML_CATALOG_FILES:$SGML_SHARE/dtd/sgmltools/catalog export JADE_HOME SGML_SHARE PATH SGML_CATALOG_FILES ########################################################################################## |
安装完成! 在下一节中,我们将测试安装并 convert 一些测试 DocBook 文件。