htlatex ignore la valeur entre crochets dans l'instruction item lors de l'utilisation de itemize

Dec 14 2020

En Latex, j'ai les déclarations suivantes:

\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 produit la sortie correcte suivante:

htlatex (sortie HTML) génère des puces au lieu des valeurs définies entre les crochets de l'instruction d'élément:

Quelqu'un a-t-il une idée de la façon dont je peux obtenir la même sortie en html que celle indiquée en PDF?

Réponses

1 michal.h21 Dec 14 2020 at 20:35

TeX4ht supprime les étiquettes d'élément pour enumerateet itemizepar défaut, car HTML ne prend pas en charge les étiquettes personnalisées dans les éléments utilisés pour afficher les listes par défaut.

Il s'agit de la configuration par défaut de l' itemizeenvironnement:

\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}}

C'est un peu dense, mais la partie importante est la suivante:

   {\end:itm \global\def\end:itm{\EndP\Tg</li>}\DeleteMark}

La \DeleteMarkcommande supprime l'étiquette, nous pouvons donc la supprimer si nous voulons conserver l'étiquette. Nous devons également produire des éléments différents de <ul>et <li>, car ils ne prennent pas en charge les étiquettes personnalisées. Au lieu de cela, nous pouvons utiliser uniquement des <div>éléments simples et du CSS pour un rendu correct.

Ce fichier de configuration mycfg.cfgcontient une version modifiée de cette commande avec différentes balises HTML et CSS correspondant:

\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

Compiler en utilisant

make4ht -c myconfig.cfg filename.tex

Voici le document HTML rendu: