pdflatex 的输入中有一些 utf8 符号 (ĉ ĝ ...),我在 preambula 命令中使用如下
\DeclareUnicodeCharacter{0109}{$\hat{c}$},
\DeclareUnicodeCharacter{011D}{$\hat{g}$}
以此类推,使用\hat
、\acute
、\grave
、\ddot
、\tilde
、\check
、 (以避免出现类似: 的消息 \bar
)。因此,我在数学模式下用适当的 latex 命令替换符号(utf8)。由于命令处于数学模式,因此是否会出现任何不良情况,我是否必须更改为使用文本模式命令?它有效,没有错误。我担心将来使用此序言,我会遇到麻烦吗?以下是全文的一部分:\breve
Unicode char \u8:ǹ not set up for use with LaTeX
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage{amstext}
\usepackage{cmap}
\usepackage[T1,T2A]{fontenc}
\usepackage[english,russian]{babel}
\usepackage{textalpha} % Greek symbols
%Latin Accents
\DeclareUnicodeCharacter{01F4}{$\acute{G}$}
\DeclareUnicodeCharacter{01F5}{$\acute{g}$}
\DeclareUnicodeCharacter{1E30}{$\acute{K}$}
\DeclareUnicodeCharacter{1E31}{$\acute{k}$}
\DeclareUnicodeCharacter{1E3E}{$\acute{M}$}
\DeclareUnicodeCharacter{1E3F}{$\acute{m}$}
\DeclareUnicodeCharacter{1E54}{$\acute{P}$}
\DeclareUnicodeCharacter{1E55}{$\acute{p}$}
\DeclareUnicodeCharacter{1E82}{$\acute{W}$}
\DeclareUnicodeCharacter{1E83}{$\acute{w}$}
% GREEK Symbols var
\DeclareUnicodeCharacter{03B5}{$\varepsilon$}
\DeclareUnicodeCharacter{03F0}{$\varkappa$}
\DeclareUnicodeCharacter{03C6}{$\varphi$}
\DeclareUnicodeCharacter{03D6}{$\varpi$}
\DeclareUnicodeCharacter{03F1}{$\varrho$}
\DeclareUnicodeCharacter{03C2}{$\varsigma$}
\DeclareUnicodeCharacter{03D1}{$\vartheta$}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
==
Acute: á ć é ǵ í ḱ ĺ ḿ ń ó ṕ ŕ ś ú ẃ ý ź Á Ć É Ǵ Í Ḱ Ĺ Ḿ Ń Ó Ṕ Ŕ Ś Ú Ẃ Ý Ź \\
α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω Α Β Γ Δ Ε Ζ Η Θ
Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
var греческие буквы
varepsilon ε
varkappa ϰ
varphi φ
varpi ϖ
varrho ϱ
varsigma ς
vartheta ϑ
\end{document}
答案1
您可以声明字符以用于文本或数学或两者
\DeclareUnicodeCharacter{0109}{\^c}
\DeclareUnicodeCharacter{0109}{\hat{c}}
\DeclareUnicodeCharacter{0109}{\ifmmode\hat{c}\else\^{c}\fi}
\DeclareUnicodeCharacter{0109}{\TextOrMath{\^{c}}{\hat{c}}}
但你建议的定义
\DeclareUnicodeCharacter{0109}{$\hat{c}$}
是两全其美的,它不能用于数学,因为但$
如果在文本中使用,它会做错事,使用数学字体而不是文本字体。
答案2
如果你真的(!)需要用数学字符来做,你可以使用
\DeclareUnicodeCharacter{0109}{\ensuremath{\mathrm{\hat{c}}}}
\ensuremath
确保您使用数学模式(无论您是否处于数学环境中)。
\mathrm
切换到直立数学字体并使其与普通文本一致。