我的文档中有一些宏,我想为它们创建自己的 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>
标签