如何为 TeX4ht 编写自定义配置

如何为 TeX4ht 编写自定义配置

我的文档中有一些宏,我想为它们创建自己的 HTML。我遵循这篇博文但我无法让它工作。

我把这段代码放在我的之前\begin{document}

    \def\one#1#2#3{#1space#2space#3}

    \NewConfigure{one}[4]%
         {\def\a@one{#1}\def\b@one{#2}%
          \def\c@one{#3}\def\d@one{#4}}

    % I can't understand this things too much - I'm not familiar with TeX
    \def\@temp#1#2#3{\a@one#1\c@one#2\d@one#3\b@one}  
       \let\one\@temp

    \Configure{one}
       {\Tg<span class="one">\Tg<code>}{\Tg</b>\Tg</span>}
       {\Tg</code>\Tg<em>}{\Tg</em>\Tg<b>} 

    \one{verbatim}{emphasize}{boldface}

并编译:htlatex mylatexfile.tex "xhtml"

我收到此错误信息:

    ! Use of \one doesn't match its definition.
    l.19         \one{
                      verbatim}{emphasize}{boldface}

我的问题是,例如,我有一个类似这样的宏:

    \newcommand{\myfunction}[2]{The title is: #1 an the body is \textit{#2} }

我想要将其翻译成:

    <div class="container">
       <div class="title"><!-- #1 goes here --></div>
       <div class="content"><!-- #2 goes here --></div>
    </div>

我怎样才能做到这一点?

答案1

tex4ht当您的宏保存在.sty文件中并且tex4ht这些宏的配置保存在名为该.sty文件的文件中(仅带有.4ht后缀)时,效果最佳。 在您的情况下,您可以将宏\myfunction放入mystyle.sty

\newcommand{\myfunction}[2]{The title is: #1 an the body is \textit{#2} }

现在该放什么mystyle.4ht?您需要声明插入的 html 标签的配置,重新定义\myfunction以插入这些标签并为配置提供默认值:

\NewConfigure{myfunction}{3}

\renewcommand\myfunction[2]{\a:myfunction#1\b:myfunction#2\c:myfunction}

\Configure{myfunction}{\HCode{<div class="container">\Hnewline
   <div class="title">}}{\HCode{</div>
   <div class="content">}}{\HCode{</div>
</div>}}

\NewConfigure这里使用了的简化形式,用{}括号中的数字声明命令\a:name,,\b:name...我们需要声明三个插入,在参数之前、之后和它们之间。

有关详细信息,请参阅我的tex4ht 教程。您可能还需要修改提供的配置,\Configure{myfunction}因为段落处理见控制<p>标签

相关内容