dostałem ostatnio parę maili z prośbą o ponowną publikację skryptu do generowania PDFów z DocBooka. ostrzegam, że przepis działa na FreeBSD z zainstalowanym pakietem /usr/ports/textproc/docproj
i nie pytajcie mnie co zrobić żeby działał w ogóle, działał na innym systemie czy przy innej konfiguracji.
na początek, musisz zainstalować całą paczkę /usr/ports/textproc/docproj
wskazując, że interesuje Cię również zbudowanie Jade
, czyli wydając polecenie:
# cd /usr/ports/textproc/docproj
# make JADETEX=yes install clean
to trochę potrwa (nawiasem mówiąc, uaktualniłeś sobie porty, prawda?) ale w wyniku tej operacji masz zainstalowany komplet narzędzi i arkuszy do produkcji PDFów, HTMLi czy nawet czystych TXT.
teraz powinieneś przelogować się na swojego zwykłego użytkownika i stworzyć dwa pliki - jeden z lokalną konfiguracją dla programu JadeTeX, a drugi będący skryptem generującym PDFy z DocBooka.
Plik jadetex.cfg
powinien mieć mniej więcej taką zawartość (dziękuje Mirkowi za pomoc):
\def\Hyphenate{1}
\def\Quadding{justify}
\usepackage{mathptm}
\usepackage[polish]{babel}
\def\Language{PL}
\global\def\Language{PL}
\inputencoding{latin2}
\usepackage{url}
\usepackage{thumbpdf}
\pdfstringdefDisableCommands{%
\let\textsubscript\relax
}
\pdfoutput=1
\pdfimageresolution=120
\hypersetup{
pdfauthor={IMIĘ NAZWISKO, MAIL@DOMENA.PL},
pdftitle={NAZWA_PLIKU_PDF},
pdfhighlight=/I,
colorlinks=true,
linkcolor=blue,
plainpages=false,
pdfpagemode=UseThumbs, % FullScreen, UseNone, UseOutlines, UseThumbs
pdfstartview=Fit% % Fit, FitH, FitV, FitBH
}
\def\PageTwoSide{1}
\def\TwoSideStartOnRight{1}
\tolerance=2000
pozostaje utworzyć w katalogu domowym taki skrypt (nazwijmy go mkpdf.sh
) tworzący PDFa:
#!/bin/sh
file=$1
set SP_ENCODING=ISO-8859-2
jade -b iso-8859-2 -Vtex-backend \
-c /usr/local/share/sgml/docbook/dsssl/modular/catalog \
-c /usr/local/share/sgml/docbook/catalog \
-c /usr/local/share/sgml/jade/catalog \
-d /usr/local/share/sgml/docbook/dsssl/modular/print/docbook.dsl \
-t tex $file.db
pdftex "&pdfjadetex;" $file.tex > /dev/null
pdftex "&pdfjadetex;" $file.tex > /dev/null
pdftex "&pdfjadetex;" $file.tex > /dev/null
rm *.log *.aux *.tex *.out
plik wykonuje się podając mu źródło w postaci nazwy pliku w formacie DocBook bez rozszerzenia - czyli jeśli dokument, który przez ostatnie dwa tygodnie pisałeś po nocach znajduje się w pliku mojapraca.db
, to powinieneś wykonać polecenie mkpdf.sh mojapraca
. jeśli wszystko poszło dobrze, wynikiem będzie plik mojapraca.pdf
zawierający PDFa.