数学模式下的 UTF-8 字符

数学模式下的 UTF-8 字符

我是这个论坛和 LaTeX 的新手。这是我第一次使用它,我真的很喜欢它。但我遇到了一个问题,我在这个论坛上寻找解决方案,但没有找到任何东西(或者我不知道如何使用其他解决方案来处理我的情况)。

我正在使用 XeLateX 和 Mac OS X 的编辑器 Texpad,我无法在数学模式下使用 UTF-8 字符。我在这里读到,我不应该使用 babel 或 inputenc,而应该使用 polyglossia。我正在这样做,尽管我在正常模式下有西班牙语 UTF-8 字符,但在数学模式下却没有。让我们看一些代码:

\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{spanish}
\begin{document}
Algo de texto y una fórmula $á+b=\int_{\xi}^{\theta} f(x)\,dx$.
\end{document}

输出:

代码输出

如您所见,“ó”在数学模式之外有效,但“á”在数学模式中无效。也许我应该使用 mathspec 或 unicode-math 等软件包,但我真的不知道该怎么做。

如能得到帮助将非常感激,先谢谢了!

答案1

数学模式下的重音符号添加方式与文本模式下的重音符号添加方式不同;一般来说,数学中的重音字母与文本中的对应含义没有任何联系,因此ü在数学中是,而不是“带分音符的 u”。

如果您确实想在数学中使用重音字母,您可以为它们添加含义。

\documentclass{article}
\usepackage{xparse}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{spanish}

\ExplSyntaxOn
\NewDocumentCommand{\DeclareMathUnicode}{mm}
 {
  \cs_new_protected:cpn { mathutf_#1: } { #2 }
  \char_set_active_eq:Nc #1 { mathutf_#1: }
  \char_set_mathcode:nn { `#1 } { "8000 }
 }
\cs_generate_variant:Nn \char_set_active_eq:NN { Nc }
\ExplSyntaxOff

\DeclareMathUnicode{á}{\acute{a}}
% other needed declarations

\begin{document}
Algo de texto y una fórmula $á+b=\int_{\xi}^{\theta} f(x)\,dx$.
\end{document}

在此处输入图片描述

答案2

你可以试试\mathit

Algo de texto y una fórmula $\mathit{á}+b=\int_{\xi}^{\theta} f(x)\,dx$.

在此处输入图片描述

相关内容