我想在同一个文档中同时使用这两个包hepparticles
和。但是包似乎不能很好地与配合使用。这是一个最小的不工作示例。breqn
hepparticles
breqn
\documentclass{article}
\usepackage{hepparticles}
\usepackage{breqn}
\begin{document}
This is the notation for an electron neutrino \HepParticle{\nu}{e}{}.\\
This is the notation for an electron anti-neutrino \HepAntiParticle{\nu}{e}{}.
\end{document}
使用 pdflatex 进行编译会显示希腊字母的奇怪符号\nu
,尽管下标“e”显示正常。
不使用时,该\HepParticle
命令工作正常breqn
。有没有办法可以同时使用包hepparticles
和breqn
?
答案1
一个真正最小的例子实际上并不需要hepparticle
:
\documentclass{article}
\usepackage{breqn}
\begin{document}
$\mathit{\nu}$
\end{document}
如果你尝试一下,你会看到和你的代码一样奇怪的符号,这是斜体字体的环形重音。事实上,最终\HepParticle{\nu}{e}{}
想要做的
\mathit{\nu}
这样的命令只会生成一个标准的 nu 字母,带有默认的 LaTeX 设置;hepparticles
使用它来将字母变为斜体,但不使用数学斜体。
但是,breqn
(或者,更好的是flexisym
)改变了 的含义,\nu
因此如果 是 的参数,它本质上会给出一个随机结果\mathit
。出于非常奇怪的原因,希腊字母被重新声明为flexisym
类型 7 而不是 0,因此它们遵循当前的数学组。
您可以修复\nu
,但其他字符可能也会有类似的问题。查看cmbase.sym
并复制有问题的定义,将其更改Var
为Ord
,就像我对 所做的那样\nu
。
\documentclass{article}
\usepackage{hepparticles}
\usepackage{breqn}
% Fix the wrong assignment to \nu
\DeclareFlexSymbol{\nu}{Ord}{greek}{17}
\begin{document}
Electron neutrino \HepParticle{\nu}{e}{}.
Electron anti-neutrino \HepAntiParticle{\nu}{e}{}.
\end{document}
这显然是 的一个错误flexisym
;但我通常建议不要使用它breqn
。这个想法不错,但根本行不通。
另一方面,至少这个例子似乎可以正常工作unicode-math
。使用 XeLaTeX 进行编译:
\documentclass{article}
\usepackage{hepparticles}
\usepackage{breqn}
\usepackage{unicode-math}
\begin{document}
Electron neutrino \HepParticle{\nu}{e}{}.
Electron anti-neutrino \HepAntiParticle{\nu}{e}{}.
\end{document}
答案2
现在有了一个 breqn 的替代方案:自动断线最近发布了一个软件包。它不如 breqn 复杂,例如,它要求您在可能的断点处放置换行符。但是,根据我的经验,它与其他软件包的冲突较少。