我只需要一点语法方面的帮助。我正在使用 tex4ht,在环境empheq
中使用时出现错误align
。
我想在 pdflatex 和 htlatex 中构建这个 TeX 文件。我通常用\ifdefined\HCode
它来有条件地编译东西。但在这种情况下,它不起作用。
我需要有条件地使用empheq
或不使用,具体取决于是否使用 tex4ht 进行编译。
这是 MWE
\documentclass{article}
\usepackage{empheq}
\begin{document}
\ifdefined\HCode
\begin{align*}
\else
\begin{empheq}[box=\fbox]{align*}
\fi
%
\lambda_{spiral} & =-0.0551\\
\lambda_{rolling} & =-56.5025
%
\ifdefined\HCode
\end{align*}
\else
\end{empheq}
\fi
\end{document}
我试图避免在两个环境中重复所有方程式。下面这个可以工作
\documentclass{article}
\usepackage{empheq}
\begin{document}
\ifdefined\HCode
%
\begin{align*}
\lambda_{spiral} & =-0.0551\\
\lambda_{rolling} & =-56.5025
\end{align*}
%
\else
%
\begin{empheq}[box=\fbox]{align*}
\lambda_{spiral} & =-0.0551\\
\lambda_{rolling} & =-56.5025
\end{empheq}
%
\fi
\end{document}
我认为不应该像上面的第一种情况那样用条件来破坏环境?可能是因为 LaTeX 如何解析代码?我使用的是 TeX Live 2013。
答案1
使用以下方法获取条件环境的内容environ
:
\documentclass{article}
\usepackage{empheq,environ}
\NewEnviron{pdfORht}[3][]{%
\ifdefined\HCode %htlatex
\begin{#3}
\BODY
\end{#3}
\else% pdflatex
\begin{#2}[#1]{#3}
\BODY
\end{#2}
\fi%
}
\begin{document}
\begin{pdfORht}[box=\fbox]{empheq}{align*}
\lambda_{spiral} & =-0.0551 \\
\lambda_{rolling} & =-56.5025
\end{pdfORht}
\end{document}
当然,你可以自己摆弄界面。