Ez egy rövid leírás arról, hogy a LyX szövegszerkesztő és a DocBook dokumentumosztály használatával hogyan lehet hatékonyan egyszerűbb dokumentumokat létrehozni. Az a cél, hogy magyar nyelvű, szép, hordozható, többféle (pl. HTML és nyomtatható) formátumra konvertálható anyagokat tudjunk készíteni.
A DocBook nagyon jó eszköz dokumentációk írására (és még valószínűleg sok más célra is). Mivel az SGML/XML egyszerű szöveges formátum, tetszőleges szövegszerkesztővel készíthetünk DocBook dokumentumokat. Egyelőre azonban nem találtam olyan programot, ami jól használható és tökéletesen támogatja a DocBook-ot. Eddig legjobban a LyX vált be. A DocBook elemeiből ugyan csak a legfontosabbakat ismeri, de ezek is elegendőnek bizonyultak. (Ez a dokumentum is LyX-szel, DocBook-ként készült. Megtekinthető az eredeti LyX file, és a PDF változat is.) Itt van egy teszt file, ahol igyekeztem kipróbálni minden lehetőséget: Magyar nyelvű DocBook article teszt file [PDF] [LyX] (Érdemes összehasonlítani a LyX file-t a HTML és PDF változattal, hogy lássuk mi hogy működik, és mi nem.)
(És még egy korábbi, hasonló próbálkozás részletes leírása: A LyX és a LinuxDoc használata [PDF])
RedHat 7.2-n kb. ezekre a csomagokra van szükség ahhoz, hogy minden működjön:
| lyx-1.1.6fix3-1 vagy lyx-1.2.0-1 (a különbséget lásd később!) |
| xforms-0.88-9 vagy xforms-0.89-1 (a LyX verziótól függően) |
| ghostscript-6.51-16 |
| ghostscript-fonts-5.50-3 |
| tetex-1.0.7-30 |
| tetex-latex-1.0.7-30 |
| tetex-fonts-1.0.7-30 |
| tetex-dvips-1.0.7-30 |
| docbook-dtd30-sgml-1.0-10 |
| docbook-dtd31-sgml-1.0-10 |
| docbook-style-dsssl-1.64-3 |
| docbook-utils-0.6.9-2 |
| docbook-utils-pdf-0.6.9-2 |
| openjade-1.3-17 |
| jadetex-3.6-4 |
A lényeg: lyxdb2all. Ez egy shell script a LyX -> HTML, PDF konverzió leegyszerűsítésére, és egy-két hiba kijavítására.
Stíluslap HTML generáláshoz mydocbook-html.dsl
Stíluslap PDF generáláshoz: mydocbook-print.dsl
CSS a generált HTML-hez (kihagyható): mycss.css
(A .dsl file-okat a docbook-utils-hoz tartozó docbook-utils.dsl file-ból alakítottam át.)
Egy új dokumentum írásakor az alábbiakat kell beállítani:
Layout/Document/Document/Class: SGML (DocBook article vagy book)
Layout/Document/Language/Language: magyar
Layout/Document/Language/Quote style: ,,text'', double
A LyX képes a szerkesztett dokumentumot többféle formátumba exportálni, de ez nem működik egészen tökéletesen, ezért majd a lyxdb2all shell script-et használjuk. Elég, ha mindig a LyX saját formátumába mentünk.
Néhány hasznos rövidítés, hogy ne kelljen egeret használni: :)
Title -- a dokumentum címe
Abstract -- összefoglaló a dokumentum elején
Chapter -- fejezetcím
Section -- szakaszcím
Subsection -- 2. szintű szakaszcím
Subsubsection -- 3. szintű szakaszcím
Standard -- normál szöveg
Description -- leíró lista
Itemize -- egyszerű lista
Enumerate -- számozott lista
SansSerif -- groteszk betűtípus (LyX-ben használható, de a DocBook-nál elveszik!)
Typewriter -- írógép stílusú betűtípus (ilyen sincs a DocBook-ban, de lásd a lyxdb2all leírását!)
Regular -- normál betűtípus
Emphasis -- kiemelés (kurzív)
Az Edit/Preferences menüben a Bind file-nál megadhatunk tetszőleges billentyűzet-kiosztást. Az emacs.bind az Emacs-ot utánozza.
A /usr/share/texmf/tex/generic/config/language.dat file-ban engedélyezni kell a magyar elválasztást, utána bárhonnan adjuk ki a következő parancsot:
initex latex.ltx \\dump
A keletkezett latex.fmt file-t másoljuk a /usr/share/texmf/web2c/ könyvtárba.
A LyX file-okból a lyxdb2all shell scripttel közvetlenül tudunk HTML és PDF file-okat generálni. A lyxdb2all elvégzi a LyX -> DocBook SGML átalakítást a docbook-utils programjai segítségével. Közben kijavít néhány hibát, főleg a magyar nyelv kezelésével kapcsolatban.
A LyX 1.1.6-os és az 1.2.0-ás verziója nem egyformán exportál SGML-be, ezért a lyxdb2all scripten is módosítani kell. A script közepe táján megjelöltem azokat a sorokat, amelyeken változtatni kell. A script mostani verziója 1.2.0-ás LyX-re van beállítva, ezzel tehát változtatás nélkül használható.
Használat: lyxdb2all [kapcsolók] <filenéveleje>
[kapcsolók]:
-w|--htmldsl <file> a HTML konverzióhoz használt stíluslap
-p|--printdsl <file> a HTML konverzióhoz használt stíluslap
(A két stíluslapot kötelező megadni, és
nem használható a '#', mint az openjade-nél.)
-c|--css <file> a HTML-hez használt CSS stíluslap
-f|--fonthack a typewriter font -> tag helyettesítés bekapcsolása
-t|--typewritertag <tag> a typewriter fonthoz helyettesítendő DocBook tag
-r|--htmlprefix <dir> a generált HTML file nevek prefixe
-h|--help ez a segítség
<filenéveleje>:
az eredeti LyX file neve a ".lyx" végződés nélkül
Pl.: lyxdb2all -p mydocbook-print.dsl -w mydocbook-html.dsl mydoc
a mydoc.lyx-ből létrehozza a mydoc.pdf, *.html file-okat. |
A LyX-ben “typewriter” fontra állított szövegeket lecseréli a -t-vel megadott DocBook elemre. Ez egy elég csúnya kavarás, néhány esetben hibásan működik. (Az egyik hiba a < és > karakterekkel kapcsolatos: ezeket ne használjuk typewriter fonttal!) Egy-egy szóra általában jó, de nagyobb blokkokon keresztül nem tanácsos állítgatni a typewriter-t. A DocBook-ban csak egyféle karakterformázás van, az <emphasis>. Nincsenek fontok, bold, stb. Viszont van helyettük sok tartalmi elem, pl. a <filename> és a <classname>, amiket általában más fonttal kell formázni megjelenítéskor, de ezeket az elemeket a LyX-ből nem lehet megadni. Ezzel a trükkel a LyX-ben a typewriter fontot használhatjuk arra, hogy valamelyik elemet jelöljük. Ha a -t-vel nem adunk meg semmit, akkor a lyxdb2all <filename> elemet fog behelyettesíteni.
lyxdb2all -p mydocbook-print.dsl -w mydocbook-html.dsl -f -c ../mycss.css -r hasznos_ hasznos |
A hasznos.lyx file-ból létrehozta az index.html, hasznos_*.html, és hasznos.pdf file-okat a megadott .dsl stílusfile-ok alapján. A HTML file-ok megjelenését pedig tovább módosítja a mycss.css.
| Tovább | ||
| CVS jegyzetek |