Megjegyzések, korlátok
A HTML formátumú megjelenítő
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 segítő lökések a feladatok és a megoldások között jelennek meg.
- A tanári kézikönyvek ugyanúgy témakörökre lebontva csoportosítva jelennek meg, mint a feladatgyűjtemények.
Mivel az egyes évfolyampárok tanári kézikönyveinek bevezetői nem tartoznak témakörhöz, ezek külön jelennek meg.
- A 120-nál több feladatot tartalmazó fejezetek automatikusan legfeljebb 120 feladatot tartalmazó oldalakon
jelennek meg, hogy a konvertálás során ne történjen időtúllépés (mert a PHP szkript nem futhat 30 másodpercnél tovább).
- Alapértelmezés szerint a tanári kézikönyvekben is megjelennek a feladatok, a segítő lökések és a megoldások.
- Alapértelmezés szerint (az M, S betűk helyett) linkek mutatnak a feladatgyűjteményben, ill. a tanári kézikönyvben
a feladathoz kapcsolódó többi szövegrészre. Ha "A keret és a linkek eltűntetése" linkre kattintunk, amellett, hogy
eltűnik a navigációs keret, ezek helyett a linkek helyett a feladasorszámok melletti betűk utalnak a feladathoz
tartozó szövegrészekre: S a segítő lökésre, M a megoldásra, valamint a tanári kézikönyvekben T a tanároknak szóló
megoldásra, J a megjegyzésre és D a didaktikai javaslatra. Ez a mód való kisebb részek nyomtatására,
bár nyomtatásra alapvetően a PDF fájlok ajánlottak.
- Az összes matkönyvnek egy, közös irodalomjegyzéke van.
- A megjelenítő feltételezi, hogy a t-vel kezdődő azonosítójú kötetek a tanári kézikönyvek,
és az x-szel kezdődő azonosítójúak a rendszert bemutató példák, amiket nem kell megjeleníteni.
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:
- A TTM által támogatott (La)TeX parancsok (a dokumentáció a TTM-mel együtt letölthető a http://hutchinson.belmont.ma.us/ttm oldalról)
közül azok, amelyek nem hivatkoznak az egyszerre konvertált részen (pl. egy feladathoz tartozó egy adott környezet) kívülre,
vagy más fájlra (mint pl. a \tableofcontents).
- A matkonyv.sty-ban definiált néhány egyszerű parancsmegfeleltetés (a definíciók átadása a TTM-nek):
\newcommand{\idezet}[2]{{{\em #1} \newline #2}}
\newcommand{\ov}{{\overline}}
\newcommand{\di}{{\displaystyle}}
\newcommand{\un}{{\underline}}
\newcommand{\kov}{{\Rightarrow}}
\def\oszt{{\mid}}
\def\noszt{{\nmid}}
\def\binom#1#2{{{#1}\choose{#2}}}
\def\qedsymbol{{\textsquare}}
\def\mathqed{{\quad\hbox{\qedsymbol}}}
A plusz { - } pár a TTM egy ritkán előforduló hibája miatt kell.
- \H (dupla vessző ékezet).
- Matematikai módban: nem okoz gondot a \Bbb és a \mathbb (általánosan használt halmazok neveihez),
de egyszerű nagybetűként jelenik meg.
- Matematikai módban: \not (negálás), MathML <mpadded> és <mphantom> elemekkel megoldva.
- Matematikai módban: \pmod támogatott (modulus megadása).
- \heading, \subheading parancsok.
- \footnote parancs, a lábjegyzet inline jelenik meg. (A TTM beépített lábjegyzetkezelésével közvetlenül
a feladat alá kerülne egy vízszíntes vonal és egy ronda, nagy és fölösleges "Footnotes:" felirat, ha pedig az egész oldal aljára
tenném a lábjegyzetet, nagyon sokat kéne görgetni.)
- \evenboxes, \evenboxesqq, \evenboxesqqd parancsok, de állandó helykihagyással, a cellák több sorba is törhetnek.
- \tabbing környezet, de csak a \= és a \> parancsok támogatottak.
A matkönyvekben jelenleg csak ezeket használják.
- A stuki csomag struktogramjai, táblázatokkal. Máshogy jelenik meg, mint latex-hel fordítva, de áttekinthető.
- \figure2 környezet másodosztályú ábrái. Feliratozás caption paraméterrel, számozás.
- Az \equation környezet egyenleteinek megfelelő számozása.
- Irodalomjegyzék a matbook.bib alapján, irodalmi hivatkozások \cite paranccsal
és a feladatok cite paraméterével, linkekkel.
- Címkézés \label paranccsal, a fejezetek, a feladatok és a hozzájuk tartozó egyéb környezetek,
és a figure2 környezetek label paraméterével.
- A címkékre való utalás \ref, \aref, \Aref parancsokkal, linkekkel.
A névelős parancsok csak akkor működnek megfelelően, ha az utalás céljának eleje szám, vagy betűkód.
Az egyetlen lehetséges hiba az f, l, m, n, r, s betűk valamelyikével kezdődő kötetazonosító, ahol az azonosító nem betűkód, hanem szó.
- A címkékre való utalás \pageref, \apageref, \Apageref parancsokkal, linkekkel.
Jobb híján ilyenkor a relatív hivatkozás jelenik meg, névelő nélkül.
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}
Tervek, lehetséges bővítések
- Kulcsszavas és/vagy szöveges kereső.
- Ha egy feladatgyűjteményben egy feladathoz több segítő lökés van, és nem látszanak a segítő lökések,
tehát a linkre kattintáskor új feladatablak jelenik meg, először csak az első segítő lökés látsszon,
majd egy 'Következő segítő lökés' linkre kattintgatva jelenjenek meg a további segítő lökések.
- A feladatok previousrefs paraméterének (előzmény-feladatok) megjelenítése.
- Stukik balra igazítása, \stukicentertrue kezelése.