如何在 tex4ht 中配置自定义命名列表环境?

如何在 tex4ht 中配置自定义命名列表环境?

我正在使用它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>
&#x00A0;    <italic>x</italic>*
      Dimensional
      coordinates
      along
      the
      channel
&#x00A0;    k*
      Radiation
      absorption
      coefficient
      at
      the
      wall
&#x00A0;    e*
      Plank&#8217;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>&#x00A0;    <italic>x</italic>*</term>
      <def><p>Dimensional
      coordinates
      along
      the
      channel</p></def></def-item>
<def-item><term>&#x00A0;    k*</term>
      <def><p>Radiation
      absorption
      coefficient
      at
      the
      wall</p></def></def-item>
<def-item><term>&#x00A0;    e*</term>
      <def><p>
      Plank&#8217;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&#x2019;s
      function</def-item></def-list>

</body></html> 

相关内容