Matkönyv, technikai információk

Különbségek a nyomtatott és a PS/PDF megejelenéshez képest

Mivel a HTML oldalakat nem kötik azok a méretbeli és elrendezésbeli megkötések, mint a nyomtatott köteteket, a HTML formátumú megjelenítő készítésekor néhány dologban nem követtem a matkönyvek beosztását.

A weblapként való megjelenítés korlátai

A LaTeX kód HTML-lé konvertálásának vannak korlátai. Egyrészt HTML egyszerűen nem alkalmas (és még a MathML sem) minden LaTeXben elkészíthető szöveg (, ábra stb.) megjelenítésére, másrészt a LaTeX jó minőségű konvertálását megvalósító program készítése nagyon sok munka. Ráadásul a matkönyvek sok speciális, csak a matkönyv projekthez kifejlesztett LaTeX parancsot használnak, amivel egy egyszerű konverter nem tud boldogulni. Ezért a PHP program a LaTeX fájlok speciális parancsait maga konvertálja, kigyűjti azokat a szövegrészeket, amik már csak szabványos (La)TeX parancsokat tartalmaznak, és ezeket átadja a TTM konverternek.
A HTML formátumú megjelenítő által támogatott (La)TeX parancsok, és ezek esetleges korlátozásai:

Olyan kód írása a tex fájlokban, ami csak latex fordítás esetén/csak a HTML formátumú megjelenítéskor látszik

A ttm által biztosított megoldások: Olyan kód beszúrása a tex fájlokba, amit csak a ttm kap meg (legegyszerűbb): %%ttm: kezdetű speciális megjegyzés a sor végéig. Ha nem akarunk utána szóközt, akkor a sor végére még egy % jelet kell tenni, hogy az újsort a ttm is megjegyzésként értelmezze.
Olyan kód beszúrása, amit csak a TeX kap meg:
1. megoldás: A használat helye elé (pl. a preamble-be) írjuk be a következő speciális parancsdefiníciót: \newcommand{\ttmdump}[1]{#1} Ezután a \ttmdump{Ezt csak a \TeX kapja meg.} parancsban a TeX egyszerűen beilleszti a kapcsos zárójelek közti szöveget, de a ttm felismeri, és átugorja.
2. megoldás (mindkét dologra): A használat helye elé (pl. a preamble-be) írjuk be a következő speciális feltételdefiníciót: \newif\ifttm Ez latexben alapból hamis, de a ttm felismeri, mint speciális feltételt, és mindig igaz. Így használható:
\ifttm Csak a ttm kapja meg.\fi
\ifttm\else Csak a \TeX kapja meg.\fi
\ifttm ttm\else\TeX\fi

tth-ban a hivtalos leírás szerint ugyanezek tth-val vannak, de kölcsönösen felismerik egymás speciális jelöléseit, ezért egy esetleges áttéréskor nem kell módosítni.
A ttm-ben/tth-ban a html környezetben (\begin{html} és \end{html} között) írt dolgok változatlanul kerülnek a html (illetve XHTML vagy MathML) kódba. Viszont hogy ezt (a LaTeX-ben nem létező környezetet) a LaTeX fordító ne kapja meg, olyan környezetbe kell írni, amit a LaTeX nem lát, pl.:
LaTeX kód %%ttm:\begin{html}<b>HTML kód</b>\end{html}
A html környezetet a ttm nem csak %%ttm: után értelmezi, ezért ha ilyet írnánk:
\LaTeX kód %%ttm:\begin{html}<b>HTML kód</b>
Még egy kis \LaTeX kód %%ttm:<b>még egy kis HTML kód</b>\end{html}

, akkor a HTML oldalra a Még egy kis \LaTeX kód, sőt a második %%ttm: is változtatás nélkül kerülne ki. A helyes megoldás:
\LaTeX kód %%ttm:\begin{html}<b>HTML kód</b>\end{html}
Még egy kis \LaTeX kód %%ttm:\begin{html}<b>még egy kis HTMLkód</b>\end{html}