![如何在数学表达式中书写亚美尼亚语?](https://linux22.com/image/281549/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%95%B0%E5%AD%A6%E8%A1%A8%E8%BE%BE%E5%BC%8F%E4%B8%AD%E4%B9%A6%E5%86%99%E4%BA%9A%E7%BE%8E%E5%B0%BC%E4%BA%9A%E8%AF%AD%EF%BC%9F.png)
我有这个用 xelatex 编译的代码。
\documentclass[a4paper]{article}
\usepackage{polyglossia}
\newfontfamily{\armenianfont}{DejaVu Serif}
\setmainlanguage{armenian}
\begin{document}
հայերեն english
$հայերեն english հայերեն$
\end{document}
里面的亚美尼亚语单词$$
不会出现在生成的 PDF 文件中。
我该如何纠正这个问题?
答案1
您必须定义一个符号字体并为亚美尼亚字母分配一个数学代码。
以下是可以执行的操作;代码必须位于命令之后,这一点很重要\newfontfamily
。您可以使用另一种字体,只要它具有所需的字形即可。最好的方法可能是使用完全不同的名称,也许指向相同的字体:
\documentclass[a4paper]{article}
\usepackage{polyglossia}
\newfontfamily{\armenianfont}{DejaVu Serif}
\newfontfamily{\armenianmathfont}{DejaVu Serif}
\ExplSyntaxOn
\DeclareSymbolFont{armenianletters}{\g_fontspec_encoding_tl}{\l_fontspec_family_tl}{m}{it}
\int_step_inline:nnnn { "531 } { 1 } { "556 }
{
\Umathcode #1 = "0 \symarmenianletters #1 % low level call
}
\int_step_inline:nnnn { "561 } { 1 } { "587 }
{
\Umathcode #1 = "0 \symarmenianletters #1
}
\ExplSyntaxOff
\setmainlanguage{armenian}
\begin{document}
Text: հայերեն english
Math: $հայերեն english հայերեն^2$
\end{document}