这段代码
\documentclass{article}
\usepackage{alphabeta}
\usepackage{amsmath}
\begin{document}
$α+β+γ=\alpha+\beta+\gamma$
\end{document}
只要我使用 pdfLatex 选项,它就可以在 MiKTeX-TeXworks 中完美运行。
但是当我使用 XeLaTeX 选项时,希腊字母会被忽略。
我想使用 XeLaTeX,并且能够在数学模式下直接写希腊字母。
这可能吗?
如果是,我应该如何修改上面的代码?
答案1
答案2
alphabeta
让 XeLaTeX 或 LuaLaTeX 完成其工作也不难。
\documentclass{article}
\usepackage{iftex}
\usepackage{amsmath}
\iftutex
\newcommand\DeclareUnicodeCharacter[2]{%
\begingroup\lccode`~="#1\lowercase{\endgroup\protected\def~}{#2}%
\catcode"#1=\active
}
\fi
\usepackage{alphabeta}
\begin{document}
$α+β+γ=\alpha+\beta+\gamma$
\end{document}
解释:包重新定义\alpha
为\TextOrMath{\textalpha}{\mathalpha}
,其中\mathalpha
是原始的\alpha
。所有其他希腊字母也一样。
之后确实如此
\DeclareUnicodeCharacter{03B1}{\alpha}
以便允许用户α
在文本或数学模式下输入字母。 之间的代码\iftutex
(使用 XeLaTeX 或 LuaLaTeX 时为 true,否则为 false)使希腊字母α
活跃起来并为它们提供定义,这与上面提到的\alpha
重新定义完全一样。alphabeta
当然,为了在文本模式下使用希腊字母,您需要一种支持它们的字体。
如果您打算只使用 XeLaTeX 或 LuaLaTeX,那么您显然可以省略\iftutex
和\fi
。