![如何检查文本模式](https://linux22.com/image/312948/%E5%A6%82%E4%BD%95%E6%A3%80%E6%9F%A5%E6%96%87%E6%9C%AC%E6%A8%A1%E5%BC%8F.png)
我需要检查在符号替换期间模式是否真的是文本。这来自这样的任务:我确实替换了下点符号(如 ạ),以避免在 pdflatex 中出现“ Unicode char \u8:ạ not set up for use with LaTeX
”之类的错误。文本如下:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{1EA1}{\d{a}}
\begin{document}
ạ
\end{document}
我想要更正确的文本,并且不出现任何可能的糟糕情况:
1)但我不知道如何检查文本模式
2)ifmmode
可以使用,但我不知道如何在数学模式下简单地替换下点符号。
有人可以帮忙吗?
答案1
对于数学模式下的“下点”重音,请使用以下accents
包:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,accents}
\DeclareUnicodeCharacter{1EA1}{%
\ifmmode
\underaccent{\dot}{a}%
\else
\d{a}%
\fi
}
\begin{document}
ạ $ạ$
\end{document}
但是,我会避免ạ
在数学模式下使用它,因为“带有下点重音的 a”在概念上与带有下点的拉丁小写字母 A 字符不同。
如果您加载该fixltx2e
包(当使用 LaTeX 版本 2015/01/01 时,它将是 TeX Live 2015 或 MiKTeX 的默认包),您可以使用以下命令简化代码\TextOrMath
:
%\RequirePackage{fixltx2e} % needed only for LaTeX prior to 2015/01/01
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,accents}
\DeclareUnicodeCharacter{1EA1}{%
\TextOrMath{\d{a}}{\underaccent{\dot}{a}}%
}
\begin{document}
ạ $ạ$
\end{document}