我正在努力使用 LaTeX,这是美国物理研究所的模板。我处理一个带有标题的文档:
\documentclass{aip-cp}
\usepackage[numbers]{natbib}
\usepackage{rotating}
\usepackage{graphicx}
只要我不输入以下命令,它似乎就可以正常工作:
\[
{\mathbf{sign}{(d)}}=
\begin{cases}
1, & \text{if the number of indices $k$ satisfying $d_k=a_k$ is even}, \\
-1, & \text{if the number of indices $k$ satisfying $d_k=a_k$ is odd}.
\end{cases}
\]
其中 pdf 文件编译失败,显示:Misplaced alignment tab character &
。
据我所知,解决此问题最常见的方法是插入\usepackage{amsmath}
。问题是,当我这样做时,编译再次失败,只是这次弹出以下错误:
LaTeX Error: Command \iint already defined. Or name \end... illegal, see p.192 of the manual
。
总而言之,无论使用
\usepackage{amsmath}
上述cases
命令,我都无法编译 pdf 文件。到目前为止,我尝试过的所有方法都无法解决问题。
如果有人遇到过这种情况,请分享经验并给出解决方法。
答案1
实际上,问题似乎是txfonts
由类的加载引起的。如果您将 .cls 文件的第 98 行替换为以下内容,即可解决:
\usepackage{txfonts,graphicx}
和
\usepackage{graphicx}
\AtBeginDocument{\usepackage{txfonts}}
这段代码可以顺利编译:
\documentclass{aip-cp}
\usepackage{mathtools}
\usepackage[numbers]{natbib}
\usepackage{rotating}
\DeclareMathOperator{\sgn}{\mathbf{sign}}
\begin{document}
\[
\sgn(d) =
\begin{cases*}
1, & if the number of indices $k$ satisfying $d_k=a_k$ is even, \\
-1, & if the number of indices $k$ satisfying $d_k=a_k$ is odd.
\end{cases*}
\]
\end{document}
添加:据我所知,txfonts
已被弃用,取而代之的是几个软件包newtxtext, newtxmath
。
答案2
这与课程无关aip-cp
。使用简单的文档
\documentclass{article}
\begin{document}
\[
{\mathbf{sign}{(d)}}=
\begin{cases}
1, & \text{if the number of indices $k$ satisfying $d_k=a_k$ is even}, \\
-1, & \text{if the number of indices $k$ satisfying $d_k=a_k$ is odd}.
\end{cases}
\]
\end{document}
错误是
! Misplaced alignment tab character &.
l.8 1, &
\text{if the number of indices $k$ satisfying $d_k=a_k$ is even}, \\
其次是
! Undefined control sequence.
l.8 1, & \text
{if the number of indices $k$ satisfying $d_k=a_k$ is even}, \\
事实上,cases
标准 LaTeX 中没有定义环境(它有一个\cases
由普通 TeX 继承的命令)。你必须添加
\usepackage{amsmath}
这也将提供\text
。
我还建议定义一个\sign
命令(看起来像一个操作员):
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\sign}{\mathbf{sign}}
\begin{document}
\[
\sign(d)=
\begin{cases}
1, & \text{if the number of indices $k$ satisfying $d_k=a_k$ is even}, \\
-1, & \text{if the number of indices $k$ satisfying $d_k=a_k$ is odd}.
\end{cases}
\]
\end{document}
但是,对于你的情况,类会加载txfonts
,这是一个很大的麻烦,因为它是一个过时的包,存在问题amsmath
。解决方案是加载amsmath
前班上。
\RequirePackage{amsmath}
\documentclass{aip-cp}
\DeclareMathOperator{\sign}{\mathbf{sign}}
\begin{document}
\[
\sign(d)=
\begin{cases}
1, & \text{if the number of indices $k$ satisfying $d_k=a_k$ is even}, \\
-1, & \text{if the number of indices $k$ satisfying $d_k=a_k$ is odd}.
\end{cases}
\]
\end{document}