如何使用 lwarp 执行条件代码?

如何使用 lwarp 执行条件代码?

我正在尝试使用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 数学的构造。

相关内容