我正在使用它tex4ht
来转换 html 文档。
我配置了基于列表的新环境,例如用于 latex 到 pdf 输出。pdf 输出和标签对齐对于环境nomenclature
来说很好。nomenclature
梅威瑟:
\documentclass{article}
\makeatletter
\def\nomnoteslabel#1{\hspace\labelsep #1}%
\newenvironment{nomenclature}[1]{\list{}{%
\setlength{\labelwidth}{#1\p@}%
\setlength{\labelsep}{12\p@}%
\let\leftmargin\labelwidth%
\let\makelabel\nomnoteslabel
\setlength{\itemsep}{\z@}%
\rmfamily\fontsize{8\p@}{10\p@}\selectfont\raggedright}}%
{\endlist}%
\makeatother
\begin{document}
\begin{nomenclature}{30.5}
\item[\textit{x}*] Dimensional coordinates along the channel
\item[\(k_{\lambda}{_{1w}}\)] Radiation absorption coefficient at the wall
\item[\(e_{b{\lambda}_{1}}\)] Plank's function
\end{nomenclature}
\end{document}
我还尝试配置该my.cfg
文件以获取一些针对环境的定制编码nomenclature
。
我的配置文件
\Preamble{xhtml,mathml,NLM,-xtpipes,NoFonts,refcaption,DocBook}
\NewConfigure{nomenclature}{2}
\ConfigureEnv{nomenclature}
{\ifvmode\IgnorePar\fi\EndP\HCode{<def-list>}\ShowPar%
% \Configure{listings}
% {\Hcode{<def-item>}}
% {\Hcode{</def-item>}}
% {\Hcode{<term>}}
% {\Hcode{</term>}}
\bgroup
\Configure{HtmlPar}
{\EndP\HCode{<def><p>}}
{\EndP\HCode{<def><p>}}
{\HCode{</p></def>\Hnewline}}
{\HCode{</p></def>\Hnewline}}
}
{\egroup%
\ifvmode\IgnorePar\fi\EndP\HCode{</def-list>}\ShowPar%
\par}{}{}%
\begin{document}
\EndPreamble
但我没有得到所需的自定义 html 标签。我很难配置基于列表的环境。
我当前的输出:
<def-list>
  <italic>x</italic>*
Dimensional
coordinates
along
the
channel
  k*
Radiation
absorption
coefficient
at
the
wall
  e*
Plank’s
function
</def-list>
我所需的输出:
每个整体item
(例如\item[\textit{x}*] Dimensional coordinates along the channel
:)都应该被捕获<def-item></def-item>
每个item label
(例如:[\textit{x}*])都应该被捕获<term><italic>x*</italic></term>
每个item content
(例如Dimensional coordinates along the channel
:)都应该被捕获<def><p>Dimensional coordinates along the channel</def></p>
整个所需的编码如下所示:
<def-list>
<def-item><term>  <italic>x</italic>*</term>
<def><p>Dimensional
coordinates
along
the
channel</p></def></def-item>
<def-item><term>  k*</term>
<def><p>Radiation
absorption
coefficient
at
the
wall</p></def></def-item>
<def-item><term>  e*</term>
<def><p>
Plank’s
function</p></def></def-item>
</def-list>
如何自定义配置列表标签及其内容。请提供建议。
答案1
您可以使用\ConfigureList
而不是\ConfigureEnv
来列出环境。从tex4ht 信息:
Lists ----- \ConfigureList.....................5 #1 type of list (e.g., itemize, description, enumerate, list, trivlist) #2 before list #3 after list #4 before label #5 after label \DeleteMark removes latex’s label; to be placed at the end of #4 \AnchorLabel defines an anchor for \label in current item; to be placed in #5
所以我们只需稍微修改\ConfigureEnv
一下就可以配置项目:
\Preamble{xhtml,mathml,NLM,-xtpipes,NoFonts,refcaption,DocBook}
\Configure{textit}{\HCode{<italic>}}{\HCode{</italic>}}
\Configure{textbf}{\HCode{<bold>}}{\HCode{</bold>}}
\ConfigureList{nomenclature}
{\ifvmode\IgnorePar\fi\EndP\HCode{<def-list>}\ShowPar%
\bgroup
\Configure{HtmlPar}
{\EndP\HCode{<def><p>}}
{\EndP\HCode{<def><p>}}
{\HCode{</p></def>\Hnewline}}
{\HCode{</p></def>\Hnewline}}
\def\EndDefItem{}
}
{\EndDefItem\egroup%
\ifvmode\IgnorePar\fi\EndP\HCode{</def-list>}\ShowPar%
\par}{\EndDefItem\HCode{<def-item><term>}\def\EndDefItem{\HCode{</def-item>}}}{\HCode{</term>}}%
\begin{document}
\EndPreamble
唯一有趣的构造是,\EndDefItem
它在开头被定义为空nomenclature
,并且它被定义为在使用<def-item>
第一个之后关闭元素。请注意,您还需要在关闭环境之前使用,以便关闭最后一项。还请注意,您不需要,因为您不会在任何地方使用它。\item
\EndDefItem
\NewConfigure{nomenclature}
结果:
<def-list>
<def-item><term>
<italic>x</italic>* </term>
Dimensional
coordinates
along
the
channel
</def-item><def-item><term>
<!--l. 19--><math
xmlns="http://www.w3.org/1998/Math/MathML"
display="inline" ><mrow
><msub><mrow
><mi
>k</mi><msub><mrow
></mrow><mrow
><mi
>λ</mi></mrow></msub
></mrow><mrow
><mn>1</mn><mi
>w</mi></mrow></msub
></mrow></math> </term>
Radiation
absorption
coefficient
at
the
wall
</def-item><def-item><term>
<!--l. 20--><math
xmlns="http://www.w3.org/1998/Math/MathML"
display="inline" ><mrow
><msub><mrow
><mi
>e</mi></mrow><mrow
><mi
>b</mi><msub><mrow
><mi
>λ</mi></mrow><mrow
><mn>1</mn></mrow></msub
></mrow></msub
></mrow></math> </term>
Plank’s
function</def-item></def-list>
</body></html>