htlatex ignora o valor entre colchetes na declaração do item ao usar itemize

Dec 14 2020

No Latex, tenho as seguintes afirmações:

\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 produz a seguinte saída correta:

htlatex (saída HTML) gera marcadores em vez dos valores definidos nos colchetes da declaração do item:

Alguém tem uma ideia de como posso obter a mesma saída em html mostrada em PDF?

Respostas

1 michal.h21 Dec 14 2020 at 20:35

TeX4ht remove rótulos de itens para enumeratee itemizepor padrão porque HTML não suporta rótulos personalizados em elementos que são usados ​​para exibir listas por padrão.

Esta é a configuração padrão para o itemizeambiente:

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

É um pouco denso, mas a parte importante é esta:

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

O \DeleteMarkcomando remove o rótulo, portanto, podemos removê-lo se quisermos manter o rótulo. Também precisamos produzir elementos diferentes de <ul>e <li>, pois eles não oferecem suporte a rótulos personalizados. Em vez disso, podemos usar apenas <div>elementos simples e alguns CSS para a renderização correta.

Este arquivo de configuração mycfg.cfgcontém uma versão modificada deste comando com diferentes tags HTML e CSS correspondente:

\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

Compilar usando

make4ht -c myconfig.cfg filename.tex

Este é o documento HTML renderizado: