我想創建一個多語言文檔,polyglossia
其中高棉語設定為主要語言,英語設定為另一種語言。我還提供了khmer-gloss.ldf
可用的高棉字體作為預設字體。所有偽代碼都出現在如下圖所示的框中,甚至標題也不顯示。我知道這是字體的問題,但我對polyglossia
包裝還很陌生。有人知道如何解決這個問題嗎?下面的程式碼只是一個範例。
\documentclass{article}
\usepackage{polyglossia}
\usepackage{amsthm}
\usepackage[linesnumbered,ruled]{algorithm2e}
\newfontfamily{\khmerfont}[Script=Khmer,BoldFont={Khmer OS Content},ItalicFont={Khmer OS Content},Scale=0.9]{Khmer OS Content}
\usepackage{fontspec}
\newfontfamily{\K}[Scale=0.90]{Khmer OS Content}
\newfontfamily{\T}[Scale=0.90]{Khmer OS Moul}
\setmainlanguage{khmer}
\setsansfont[Script=Khmer,Scale=0.95]{Khmer OS Content}
\setmonofont[Script=Khmer,Scale=0.95]{Khmer OS Content}
\setotherlanguage{english}
\begin{document}
អាល់កូរីតដើម្បីរកតួចែករួមធំបំផុត (\textenglish{PGCD})។
\begin{algorithm}
\begin{english}
\SetKwInOut{Input}{\textenglish{Input}}
\SetKwInOut{Output}{\textenglish{Output}}
\underline{function Euclid} $(a,b)$\;
\Input{Two non negative integers $a$ and $b$}
\Output{$\gcd(a,b)$}
\eIf{$b=0$}
{
return $a$\;
}
{
return Euclid$(b, a mod b)$\;
}
\caption{\textenglish{Euclid's algorithm for finding the greatest common divisor of two non negative integers}}
\end{english}
\end{algorithm}
\end{document}
我遇到的另一個問題是命令 \mod 也無法辨識。如果我寫這個
\eIf{$b=0$}
{
return $a$\;
}
{
return Euclid$(b, a \mod b)$\;
}
我收到錯誤“未定義的控制序列返回 Eucli$(b, a \mod ...”