Hasznos dolgok

Utolsó módosítás: 2003.07.20.

Dénes Pál (denespal@nir.hu)

Ez egy kis gyűjtemény néhány általam hasznosnak vélt dologról: jegyzetek, leírások, problémák és megoldások, scriptek, satöbbi...


Tartalom
LyX és DocBook magyarul
Hozzávalók
LyX
LaTeX: magyar elválasztás beállítása
Konvertálás
CVS jegyzetek
Telepítés
A CVS használata
Logolás és automatikus email commit-okról
Emacs
A viewcvs
PostgreSQL
Nyelvek, karakterkészletek -- magyar ékezetek kezelése
Cocoon jegyzetek
Beállítások
Tippek
Egyebek
XML szerkesztés Emacs-al
GPG

LyX és DocBook magyarul

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])

Hozzávalók

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

Az általam készített kiegészítések:

  • 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.)

LyX

A dokumentum beállításai

Egy új dokumentum írásakor az alábbiakat kell beállítani:

  1. Layout/Document/Document/Class: SGML (DocBook article vagy book)

  2. Layout/Document/Language/Language: magyar

  3. 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.

Billentyűzet-parancsok

Néhány hasznos rövidítés, hogy ne kelljen egeret használni: :)

Blokkok

M-p t

Title -- a dokumentum címe

M-p a

Abstract -- összefoglaló a dokumentum elején

M-p 1

Chapter -- fejezetcím

M-p 2

Section -- szakaszcím

M-p 3

Subsection -- 2. szintű szakaszcím

M-p 4

Subsubsection -- 3. szintű szakaszcím

M-p s

Standard -- normál szöveg

M-p d

Description -- leíró lista

M-p i

Itemize -- egyszerű lista

M-p e

Enumerate -- számozott lista

Karakterek

M-c s

SansSerif -- groteszk betűtípus (LyX-ben használható, de a DocBook-nál elveszik!)

M-c p

Typewriter -- írógép stílusú betűtípus (ilyen sincs a DocBook-ban, de lásd a lyxdb2all leírását!)

M-c r

Regular -- normál betűtípus

M-c e

Emphasis -- kiemelés (kurzív)

Emacs billentyűzet-parancsok

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.

LaTeX: magyar elválasztás beállítása

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.

Konvertálás

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.

Különböző LyX verziók!

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ó.

A lyxdb2all használata (lyxdb2all -h):

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.
Magyarázat a -f és -t kapcsolókhoz:

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.

Még egy példa: így készült ez a “Hasznos dolgok” leírás:

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.