需要在 pdflatex 中使用 utf8 自然希腊符号。对于现代字母,我使用包textalpha
,var 希腊符号,我通过替换来练习,但不知道如何正确地做到这一点。现在的文本是:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{textalpha}
% GREEK Symbols var
\DeclareUnicodeCharacter{03F0}{$\varkappa$}
\DeclareUnicodeCharacter{03D1}{$\vartheta$}
\usepackage{amssymb} % \for varkappa
\begin{document}
α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω Α Β Γ Δ Ε Ζ Η Θ
Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
ϑ ϰ
\end{document}
它可以工作,但如果文本只是
$ϑ ϰ$
它不起作用。因此在数学模式下,var 希腊符号的替换不起作用。
有人能帮助我吗?
问题实际上有 2 个:
- 是否有任何用于标准希腊符号的包可以代替同时用于文本和数学模式的 textalpha?
- 文本模式下的 var 希腊符号 的 latex 命令是什么?然后我们可以使用
\ifmmode
或\TextOrMath
来\DeclareUnicodeCharacter
确保文本正确。
它们处于数学模式:
\varepsilon
ε
\varkappa
ϰ
\varphi
φ
\varpi
ϖ
\varrho
ϱ
\varsigma
ς
\vartheta
ϑ
答案1
答案2
您的问题是您声明ϑ
的意思是$\vartheta$
。因此,只要您仅使用文本模式,TeX 就不会显示任何错误。
不幸的是,您的示例$ϑ$
将导致$$\vartheta$$
。因此,您最终将得到两个(空)内联数学部分和一个\vartheta
文本模式中的\vartheta
数学,这是不允许的。
作为快速修复,可以建议使用
\DeclareUnicodeCharacter{03F0}{\ensuremath{\varkappa}}
\DeclareUnicodeCharacter{03D1}{\ensuremath{\vartheta}}
\vartheta
无论是在数学模式还是文本模式下发布,此构造都会将数学运算放入其中。
一个更优的方法是使用希腊语,而不使用数学模式,如下图所示这个问题或其他地方。