我尝试在数学模式中使用德语变音符号,但出现已知错误:LaTeX Warning: Command \" invalid in math mode on input line ##.
因此我想到两种可能的解决方案:
- 使用
\text
而不是\mathrm
。但这不是正确的解决方案,因为此文本将根据周围的文本而更改,而我尝试写入的文本(“Empfänger”,德语单词“接收器”)应作为字段变量的上标出现。 - 将字母替换
ä
为"a
。但这会导致 LaTeX 无法识别 的连字fä
。
由于我正在使用该lmodern
包,所以字母 ä 仍然显示,所以生成的 PDF 正是我所期望的。
对于这个仅仅是表面的问题,是否存在一些优雅而正确的解决方案?
我的代码如下:
\documentclass{scrartcl}
% Kodierung
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
% Sprache (neue deutsche Rechtschreibung)
\usepackage[ngerman]{babel}
% Mathematik
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}
% reference
Empfänger
% creates warning but is correct
\begin{align}
\mathrm{Empfänger}
\end{align}
% creates no warning but has no ligature
\begin{align}
\mathrm{Empf"anger}
\end{align}
\end{document}
答案1
加载ams
包时,您可以使用\textnormal
:
\documentclass{scrartcl}
% Kodierung
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
% Sprache (neue deutsche Rechtschreibung)
\usepackage[ngerman]{babel}
% Mathematik
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}
Test
\begin{align}
\textnormal{Empf"anger}
\end{align}
test
\itshape Test
\begin{equation}
\textnormal{Empf"anger}
\end{equation}
test
\end{document}
正如示例所示,这不受周围文本变化的影响。
答案2
在文本模式下,\"o
会生成一个小写字母 O,上面有两个点。任何大写或小写字母,或者有趣的是,数字以及一些字符都可以变音。此字符序列在数学模式下不起作用。
在数学模式中(在 之间$ $
)使用\ddot{o}
。同样,您可以用任何字母、数字或某些字符替换上述字符串中的 o。
仅供参考,例如使用 Windows 的字符映射 alt+0246 不起作用。从 MSWord 中复制和粘贴也不起作用。我试过了,但无济于事。
答案3
\mathrm
您不应该使用,而应该使用\text
在数学环境中编写文本。这不会对变音符号造成任何问题。
答案4
也许不是最优雅的解决方案,但绝对是独立于包的,即定义一个新命令:
\newcommand{\aumlaut}{\text{\textit{\"a}}}
例如,如果您有inputenc
,UTF-8
您当然可以ä
立即拥有。