使用 csquotes 包中的 \enquote 命令在数学模式下引用

使用 csquotes 包中的 \enquote 命令在数学模式下引用

我正在使用包\enquote中的命令csquotes来设置引号。

当我在数学模式中手动调用引号

``<some math>''

或通过 enquote

\enquote{<some math>}

其呈现方式与文本模式不同。

以下是一个例子:

Quotes Math Mode

有人能解释为什么会发生这种行为吗?

为了手动调整引号,我发现这是 egreg 的解决方法

如何调整数学模式下 enquote 调用的引号?

这是一个 MWE,即上面的那个:

\documentclass[preview]{standalone}
\usepackage{csquotes}
\begin{document}
In text mode:\\
Quote by hand: ``Blub''\\
Quote by enquote: \enquote{Blub}

In math mode:\\
Quote by hand: $``a^2+b^2=c^2''$\\
Quote by enquote: $\enquote{a^2+b^2=c^2}$
\end{document}

答案1

LaTeX 发出一个错误和两个警告:

! Double superscript.
<recently read> ^

l.13 Quote by hand: $``a^2+b^2=c^2'
                                   '$
? 

LaTeX Warning: Command \textquotedblleft invalid in math mode on input line 15.

LaTeX Warning: Command \textquotedblright invalid in math mode on input line 15

此类错误和警告不应被忽视;这或许是一个令人悲伤的事实,\textquotedblleft在数学模式下会产生一个反斜杠,而\textquotedblright实际上会产生一个结束的双引号。

错误是因为'在数学模式中被解释为^{\prime},所以c^2'确实有一个双上标(反之c'^2则是合法的,因为c''^2)。

如果您想在数学模式下引用某些内容,则应该使用数学符号。

\documentclass{article}

\DeclareMathSymbol{\mlq}{\mathord}{operators}{'134}
\DeclareMathSymbol{\mrq}{\mathord}{operators}{'42}

\begin{document}

$\dots\mlq\dots\mrq\dots$

\end{document}

enter image description here

答案2

你已经回答了你自己:引用应该采用文本模式:

\documentclass[preview]{standalone}
\usepackage{csquotes}
\begin{document}
In text mode:\\
Quote by hand: ``Blub''\\
Quote by enquote: \enquote{Blub}

In math mode:\\
%Quote by hand: $``a^2+b^2=c^2''$\\
Quote by hand: ``$a^2+b^2=c^2$''\\

%Quote by enquote: $\enquote{a^2+b^2=c^2}$
Quote by enquote: \enquote{$a^2+b^2=c^2$}
\end{document}

enter image description here

相关内容