hyperref + 词汇表 + \DeclareMathOperator + latex + dvips = 数学斜体而不是数学直立

hyperref + 词汇表 + \DeclareMathOperator + latex + dvips = 数学斜体而不是数学直立

让我们保存输入(我相信它代表一个最小的或者至少是一个相当小的工作示例)

\documentclass{article}
\usepackage{hyperref}
\usepackage[makeindex,nomain]{glossaries}%%% glossaries according to its documentation should be loaded after hyperref.
\DeclareMathOperator{\domain}{\gls{not:domain}} %%% the domain of a map
\newglossary[nlg]{notation}{not}{ntn}{Notation}
\makeglossaries
\newglossaryentry{not:domain}{type=notation, name={\(\mathrm{dom}\)}, text={dom}, sort={functionDomain}, description={The domain of a function}}
\begin{document}
\(\domain f\)
\printglossaries
\end{document}

在文件中mwe.tex。运行

pdflatex mwe && makeindex -s mwe.ist -t mwe.nlg -o mwe.not mwe.ntn && pdflatex mwe

结果是

pdflatex-makeindex 循环的 PDF 输出

请注意,“dom”第一次出现是直立的。

将相同的输入输入到

latex mwe && makeindex -s mwe.ist -t mwe.nlg -o mwe.not mwe.ntn && latex mwe && dvips mwe

产生以下 DVI 输出:

latex-makeindex 循环的 DVI 输出

请注意,“dom”的第一次出现是斜体。

在 Postscript 输出中第一次出现的“dom”也是斜体:

latex-makeindex 循环的 PS 输出,后跟 dvips

显然(参见第 40 页“数学写作入门”作者:Steve G. Krantz,另请参阅第 43 页第二版),PDF 和 PS 文件之间的格式差异(直立与斜体)是错误的™,对于错误™ 的定义来说,这是一个足够全面的定义。根据我自己的经验,我认为直立版本是意料之中的,而斜体版本则是意料之外的,需要修复错误。

所以,

  1. 谁是罪魁祸首?

  2. 怎样才能修复这个问题?

答案1

问题与词汇表无关,而与 dvips 路线上链接的建立方式有关:在这种情况下,hyperref 用框包围链接文本并切换回框内的数学。

您必须在\mathrm文本内部添加。

\documentclass{article}
\usepackage{hyperref}
\begin{document}

\(\mathrm{\href{xxx}{dom}}\quad \mathrm{\href{xxx}{\mathrm{dom}}}\)

\end{document}

使用 pdftex 输出

在此处输入图片描述

使用 dvips 输出

在此处输入图片描述

相关内容