htlatex는 itemize를 사용할 때 item 문에서 괄호 안의 값을 무시합니다.

Dec 14 2020

Latex에는 다음과 같은 진술이 있습니다.

\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는 다음과 같은 올바른 출력을 생성합니다.

htlatex (HTML 출력)는 항목 문의 대괄호에 정의 된 값 대신 글 머리 기호를 생성합니다.

누구든지 PDF에서와 같이 html로 동일한 출력을 얻을 수있는 방법을 알고 있습니까?

답변

1 michal.h21 Dec 14 2020 at 20:35

TeX4ht는 대한 항목 레이블을 제거 enumerate하고 itemizeHTML은 기본적으로 표시 목록에 사용되는 요소에 사용자 정의 레이블을 지원하지 않기 때문에 기본적으로.

다음은 itemize환경 의 기본 구성입니다 .

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

약간 조밀하지만 중요한 부분은 다음과 같습니다.

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

\DeleteMark명령은 레이블을 제거하므로 레이블을 유지하려는 경우 제거 할 수 있습니다. 또한 맞춤 라벨을 지원하지 않기 때문에 <ul>및 와는 다른 요소를 생성해야합니다 <li>. 대신 <div>올바른 렌더링을 위해 일반 요소와 일부 CSS를 사용할 수 있습니다 .

이 구성 파일 mycfg.cfg에는 다른 HTML 태그와 해당 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

다음을 사용하여 컴파일

make4ht -c myconfig.cfg filename.tex

다음은 렌더링 된 HTML 문서입니다.