为了排版物理学中的粒子,通常使用 hepnames 包。升级到 win10 PC 后,我发现符号不再打印 - 没有错误消息。
我使用 pdfLatex 并找到了相关主题
- luatex:如何让 XITS 字体与 lualatex 中的 unicode-math 和 hepnames 配合使用
- xetex:如何使用 unicode-math 设置 \boldmath 字体?
这是我的最小示例:
\documentclass{report}
\usepackage{hepnames}
\begin{document}
\begin{itemize}
\item $\Pneutron$ should give $\mathrm{n}$ %does not print
\item $\Pfermion$ should give an $f$ %prints
\item $\APnue$ should give $\bar{\nu}$ %does not print
\end{itemize}
\end{document}
这可能与斜体字体样式有关。使用
\usepackage[italic]{hepnames}
将打印以上所有示例。
然而,这对于软件包来说并不是一个好的修复,并且会将所有粒子符号排版为斜体。不幸的是,pdflatex 在编译期间不会抛出错误或警告。
有什么建议么?
马克,祝好
答案1
该hepnames
包依赖\updefault
于n
,但是已更改为up
,n
现在是\shapedefault
。
使固定:
\documentclass{report}
\usepackage{hepnames}
\usepackage{xpatch}
\makeatletter
\xpatchcmd\@HepConStyle
{\edef\@upcode{\updefault}}
{\ifdefined\shapedefault\edef\@upcode{\shapedefault}\else\edef\@upcode{\updefault}\fi}
{}{}
\makeatother
\begin{document}
\begin{itemize}
\item $\Pneutron$ should give $\mathrm{n}$ %does not print
\item $\Pfermion$ should give an $f$ %prints
\item $\APnue$ should give $\bar{\nu}$ %does not print
\end{itemize}
\end{document}