我正在尝试使用lwarp
软件包来比较其与 tex4ht 在大文件上的性能。
我有一个小问题,但我无法通过搜索找到答案。
我只想\begin{dmath*}
在使用 lualatex 进行编译时使用环境,因为带有 mathjax 的 lwarp 无法处理该breqn
包。但我不知道如何告诉它类似以下内容
\iflwarp% is there similar command??
\begin{align*}.....\end{align*}
\else
\begin{dmath*}.....\end{dmath*}
\fi
与我使用 tex4ht 时的操作类似
\ifdefined\HCode
\begin{align*}.....\end{align*}
\else
\begin{dmath*}.....\end{dmath*}
\fi
现在,当我编译dmath
环境时,数学运算不会显示在 HTML 中,因为 mathjax 不了解此环境。它只知道align
环境。
这是 MWE
\documentclass{book}
\usepackage[mathjax]{lwarp}
\usepackage{amsmath}
\usepackage{breqn}
\begin{document}
\begin{dmath*}
y = \sin x
\end{dmath*}
\end{document}
使用编译
lualatex foo.tex
lualatex foo.tex
lwarpmk html
上述当然不起作用
如何处理?如何仅在使用时运行某些 Latex 代码lualatex
,并在使用时运行其他代码lwarp
?我还发现其他一些包和命令在中不起作用lwarp
,所以我需要能够为其他目的执行这种类型的条件,而不仅仅是为了上面的例子。
参考lwarp 包
在上述文件第 233 页,我看到\warpHTMLonly {⟨contents⟩}
Only process the contents if producing HTML output.
但是如何使用上述代码来完成其他部分呢?
更新
我发现下面的方法有效。但我不确定这是否是正确的方法。
\documentclass{book}
\usepackage[mathjax]{lwarp}
\usepackage{amsmath}
%use breqn with lualatex only
\ifbool{warpingHTML}{}{\usepackage{breqn}}
\begin{document}
\ifbool{warpingHTML}
{
\begin{align*}
y = \sin x
\end{align*}
}
{
\begin{dmath*}
y = \sin x
\end{dmath*}
}
\end{document}
现在使用
lualatex foo.tex
lualatex foo.tex
lwarpmk html
给出网页
所以它成功了。那么这是在 lwarp 中执行条件判断的推荐方法吗?
答案1
这对我有用:
\documentclass{book}
\usepackage[mathjax]{lwarp}
\usepackage{amsmath}
\begin{warpprint}
\usepackage{breqn}
\end{warpprint}
\begin{document}
\begin{warpHTML}
\begin{align*}
y = \sin x
\end{align*}
\end{warpHTML}
\begin{warpprint}
\begin{dmath*}
y = \sin x
\end{dmath*}
\end{warpprint}
\end{document}
本手册第 7.10 节对此进行了记录。
还存在一个warpMathJax
替代环境,用于替代那些与 MathJax 不能很好兼容但可以用于 SVG 数学的构造。