The following sections suggest how you might install the downloaded packages to setup your
DocBook SGML environment. The examples may make reference to old versions of the packages
but you should adapt the examples and use the most recent versions instead.
For the most up-to-date, authoritative information, always read the documentation
that comes with a package you are installing. Often, you will find a README
and a INSTALL file after you unpack an archive.
The detailed instructions below may not work exactly as shown since packages are changing
all the time. However, the instructions should still give you a general idea of the procedure to
get DocBook SGML working.
Here is what to do, but remember to read the files that come with OpenJade to see if
there are any things you want to do special for your platform:
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
The installation puts libraries in /usr/local/openjade-1.3/lib, so you might
like to add it to /etc/ld.so.conf and run ldconfig.
Add /usr/local/openjade-1.3/bin to your $PATH.
You might be wondering why I dump the openjade source directly into /usr/local.
The author experienced some issues with openjade's installation. However, with newer releases
of OpenJade, you might try a standard (/usr/local/src) location for the
openjade source package with some other prefix install location, and see how it goes.
As mentioned, jadetex and pdfjadetex are TeX macros that are packaged with
OpenJade. They can be found in /usr/local/openjade-3.1/dsssl. A handy
guide to installing these macros was prepared by
Frank Atanassow Christoph and can be found at:
The jadetex and pdfjadetex tex macros require more memory than a regular run of tex.
The default tex memory limit configuration is often too limited. The tex configuration file,
texmf.cnf, can be edited and variables which limit tex's memory use can be increased. But
rather than just editing the texmf.cnf file to allow tex in all instances to have more
memory, a custom tex context can be created, called hugelatex.
If hugelatex is already configured on your system, you can skip this
subsection (which hugelatex).
Verify that a working TeX is installed and find its directory:
bash$ which tex
/usr/share/texmf/bin/tex
bash$ kpsewhich -expand-var='$TEXMFMAIN'
/usr/share/texmf
bash$
Using which should find the location of the tex program. If its not
found, then you might need to install teTeX then return here.
kpsewhich is a utility that comes with teTeX and finds the main tex
directory if all goes well.
Now that the texmf directory is known, installation can begin:
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
The web2c directory contains the texmf.cnf configuration file.
Make a backup of this file: cp texmf.cnf texmf.cnf.orig. Edit
the file using whatever editor you like, and add the following
lines at the end:
Here, we've gone ahead and added entries for
jadetex and pdfjadetex, which we'll be setting
up below. You can play with these memory settings
any way you like if you experience trouble with them.
After setting up hugelatex, like above, it may not
work until the texhash program is called:
Setting up jadetex and pdfjadetex
is similar to 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
This Makefile uses hugelatex,
so hugelatex must have been
setup already. When tex is run as hugelatex, jadetex, or
pdfjadetex, it gets its program name (context) from argv[0]
in the environment. Then, it scans texmf.cnf, and uses
any context-specific settings it finds. The format (.fmt)
files in /usr/share/texmf/web2c are also loaded based on
the context.
The jadetex command takes a tex file generated from
openjade, and outputs a dvi file.
pdfjadetex takes a tex file
generated from openjade, and outputs a pdf.
The dvips program takes the dvi file and outputs a PostScriptps file that you can send to your printer or view with ghostscript gs.
The DocBook DTD is just some sgml text files, so there is nothing to compile.
Just unzip them somewhere:
# 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
If you install doctools-1.2 from the XFree86 distribution, it will
put some older versions of DocBook DTD, like 2.4.1/ and
3.0/ in subdirectories of docbook.
There are some differences between
the different versions of the DocBook DTD. The xxissues.txt files
document those issues. Tags have been added, removed, and renamed
between the versions.
If you need to use DocBook DTD V3.1, it is available from the same
place where V4.1 is downloaded. V3.1 is used a lot, so its
a good idea to get it and install it in a 3.1/ subdirectory.
For each DocBook DTD version unpacked, go into its directory and unpack
the iso8879-entities.tar.gz file:
cd /usr/local/share/sgml/docbook/4.1
tar -xvzf ~/iso8879-entities.tar.gz
In each DocBook directory, there should be a docbook.cat file or
a catalog file, or both. If both are present, they are likely to be
identical. If only docbook.cat is present, go ahead and make
a symlink:
# If needed ...
cd /usr/local/share/sgml/docbook/4.1
ln -s docbook.cat catalog
Installation of the DocBook DSSSL, which works for all versions of DocBook, is
just a matter of unzipping it somwhere.
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.
That's all there is to installing the DSSSL, except for the setup
of the $SGML_CATALOG_PATH discussed later. Don't
forget to straighten out the file modes and owner/group of these
unpacked files - often they are scrambled and inappropriate.
If you like it, you can install the SGMLtools-Lite, but it is optional.
Its installation is the standard:
cd /usr/src
tar -xvzf ~/sgmltools-lite-3.0.2.tar.gz
cd sgmltools-lite-3.0.2
./configure
make install
This installs the sgmltoolspython script to
/usr/local/bin. Note that it uses python,
so if you don't have it, then this package is useless.
One tweak that has to be done to make the sgmltools script work, is
you have to edit it and set the path to openjade:
vi `which sgmltools`. Consult its docs to learn more about it.
Preferrably you downloaded a binary distribution of htmldoc for
your platform. The installation is straightforward: just unpack it
and run the setup. Read the docs in the package for more info.
The htmldoc program has (or had) a few glitches when generating output from
html files from openjade. For instance, bullet items are not
rendered properly and shaded areas are not always shaded.
To fix this problem, a perl script
(ldp_print)
is available from LinuxDoc.org.
The lpd_print script processes a nochunks html
file from openjade and then runs htmldoc
on it to produce correctly rendered pdf and ps.
Get it!
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
Take a look at the script in case there are lines in it you need
to change for your system. Perhaps someday htmldoc's bugs will
be fixed and this script will not be needed anymore.
Before the spec files from DocBook2X are of any use, the SGMLS.pm module
for perl version 5 has to be installed, assuming that
perl version 5 is installed. The
installation of this module is not as automated as most perl module
installs. It uses a Makefile that has to be edited first before
running 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 contains no program to compile or install,
though it has some scripts you might want to look at,
so all there is to do is unpack it somwhere.
cd /usr/local/share/sgml
tar -xvzf ~/docbook2X-0.6.0.tar.gz
cd docbook2X
In the unpacked directory is the docbook2man-spec.pl and
a patch file for it that corrects a few things.
Applying the patch is optional but recommended.
The $SGML_CATALOG_FILES environment variable is used by
openjade (and other SGML software) to locate DTDs and DSL (stylesheets).
SGML software cannot function without finding these files, which have
been unpacked to various directories. Given the setup as done so far,
here is how $SGML_CATALOG_FILES can be set in /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
##########################################################################################
Save your profile, logout and then log back in to take effect.
Installation is complete! In the next section, we'll test the installation
and convert some test DocBook files.