htlatex, itemize kullanırken öğe ifadesindeki parantez içindeki değeri yok sayar

Dec 14 2020

Lateks'te şu ifadelere sahibim:

\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 aşağıdaki doğru çıktıyı üretir:

htlatex (HTML çıktısı), öğe ifadesinin parantezlerinde tanımlanan değerler yerine madde işaretleri üretir:

PDF'de gösterilenle aynı çıktıyı html'de nasıl elde edebileceğime dair bir fikri olan var mı?

Yanıtlar

1 michal.h21 Dec 14 2020 at 20:35

TeX4ht varsayılan olarak enumerateve itemizevarsayılan olarak öğe etiketlerini kaldırır çünkü HTML varsayılan olarak listeleri görüntülemek için kullanılan öğelerdeki özel etiketleri desteklemez.

Bu, itemizeortam için varsayılan yapılandırmadır :

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

Biraz yoğun ama önemli olan şu:

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

\DeleteMarkKomut etiketi kaldırır, böylece biz etiketi tutmak istiyorsanız onu kaldırabilirsiniz. Biz de farklı unsurları üretmek gerekir <ul>ve <li>onlar özel etiketler desteklemez olarak. Bunun yerine, <div>doğru oluşturma için sadece düz öğeler ve biraz CSS kullanabiliriz .

Bu yapılandırma dosyası, mycfg.cfgbu komutun farklı HTML etiketleri ve karşılık gelen CSS ile değiştirilmiş bir sürümünü içerir:

\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

Kullanarak derleyin

make4ht -c myconfig.cfg filename.tex

Bu, işlenmiş HTML belgesidir: