htlatex ignoriert den Wert in Klammern in der item-Anweisung, wenn itemize verwendet wird
In Latex habe ich folgende Aussagen:
\begin{itemize}
\item[P)] Lorem ipsum dolor sit amet
\item[E)] Pellentesque interdum eros in erat
\item[Q)] Vestibulum ante ipsum primis
\end{itemize}
pdflatex erzeugt die folgende korrekte Ausgabe:

htlatex (HTML-Ausgabe) generiert Aufzählungszeichen anstelle der definierten Werte in den Klammern der item-Anweisung:

Hat jemand eine Idee, wie ich die gleiche Ausgabe in HTML wie in PDF erhalten kann?
Antworten
TeX4ht entfernt Elementbeschriftungen für enumerate
und itemize
standardmäßig, da HTML keine benutzerdefinierten Beschriftungen in Elementen unterstützt, die standardmäßig zum Anzeigen von Listen verwendet werden.
Dies ist die Standardkonfiguration für die itemize
Umgebung:
\ConfigureList{itemize}%
{\EndP\HCode{<ul \a:LRdir
class="\getClass{itemize}itemize\expandafter\the
\csname @itemdepth\endcsname">}%
\afterGetClass{itemize}%
\PushMacro\end:itm
\global\let\end:itm=\empty}
{\PopMacro\end:itm \global\let\end:itm \end:itm
\ifvmode \IgnorePar\fi
\EndP\HCode{</li></ul>}\ShowPar}
{\end:itm \global\def\end:itm{\EndP\Tg</li>}\DeleteMark}
{\HCode{<li class="\getClass{li}itemize">}\afterGetClass{li}}
Es ist ein bisschen dicht, aber der wichtige Teil ist folgender:
{\end:itm \global\def\end:itm{\EndP\Tg</li>}\DeleteMark}
Der \DeleteMark
Befehl entfernt das Etikett, sodass wir es entfernen können, wenn wir das Etikett behalten möchten. Wir müssen auch andere Elemente als <ul>
und produzieren <li>
, da sie keine benutzerdefinierten Beschriftungen unterstützen. Stattdessen können wir nur einfache <div>
Elemente und etwas CSS für das korrekte Rendern verwenden.
Diese Konfigurationsdatei mycfg.cfg
enthält eine geänderte Version dieses Befehls mit verschiedenen HTML-Tags und entsprechendem CSS:
\Preamble{xhtml}
\catcode`\:=11
\ConfigureList{itemize}%
{\EndP\HCode{<div \a:LRdir
class="custom-itemize"><div class="item-head">}%
\PushMacro\end:itm \global\let\end:itm=\empty}
{\PopMacro\end:itm \global\let\end:itm \end:itm
\ifvmode \IgnorePar\fi
\EndP\HCode{</div></div>}\ShowPar}
{\end:itm \global\def\end:itm{\EndP\Tg</div>\Tg<div class="item-head">}}
{\HCode{</div><div class="item-content">}}
\Css{.item-head{float:left;width:2em;clear:left;}}
\Css{.item-content{margin-left:2em;}}
\catcode`\:=12
\begin{document}
\EndPreamble
Kompilieren mit
make4ht -c myconfig.cfg filename.tex
Dies ist das gerenderte HTML-Dokument:
