我想在文本中使用 Helvetica 字体的希腊字母。当我编译英文版的代码时,我得到了正确的格式。我的意思是,当我编译以下代码时
\documentclass[12 pt]{article}
\usepackage{textgreek}
\usepackage{helvet}
\renewcommand\familydefault{\sfdefault}
%\usepackage{xepersian}
%\settextfont{Yas}
\begin{document}
\textPsi
\textlambda
\end{document}
我得到了我想要的结果
但是当我启用xepersian
包时,
\documentclass[12 pt]{article}
\usepackage{textgreek}
\usepackage{helvet}
\renewcommand\familydefault{\sfdefault}
\usepackage{xepersian}
\settextfont{Yas}
\begin{document}
\textPsi
\textlambda
\end{document}
我明白了
这不是我想要的。我使用xepersian
包时如何才能出现第一种情况?
答案1
这里的问题是,您试图将现代字体与 20 世纪 80 年代的传统 7 位字体编码结合起来,但实际上您根本没有在 Helvetica 中显示希腊字母。由于xepersian
加载了,您应该只加载现代希腊字体。使用 时,您还应该在命令或环境fontspec
中显示从左到右的文本。\lr
latin
xepersian
您喜欢的那个来自cbgreek
,并且 Computer Modern Unicode 中的字形基于此。选择Script=Greek
可获得看起来像现代希腊语的字形,Script=Default
选择 可获得看起来像经典 TeX 中的数学符号的字形。
如果您想要与文本字体更匹配的字体,Arial 与 Helvetica 相似,但(与 TeX Gyre Heros 不同)包含希腊字母,或者您可以尝试使用希腊字体协会提供的免费字体,例如 GFS Neohellenic。
\documentclass[12 pt]{article}
\tracinglostchars=2 % Warn you if a character is missing!
\usepackage[paperwidth=10cm]{geometry} % Solely to format the MWE on TeX.SX.
\usepackage{fontspec}
\usepackage{xepersian}
\defaultfontfeatures{Scale=MatchUppercase}
\settextfont{XB Yas}
\setlatintextfont{Arial}
\setlatinsansfont{Arial}
\deflatinfont\Greekfont[Script=Greek]{CMU Serif}
\DeclareTextFontCommand\textgreek{\Greekfont}
\newcommand\textPsi{Ψ}
\newcommand\textlambda{λ}
\begin{document}
\begin{latin}
Some text. \textPsi \textlambda
Greek font: \textgreek{\textPsi \textlambda}
\end{latin}
\rl{خشایارشا} \lr{\textgreek{Ξέρξης} Xerxes}
\end{document}
如果你需要greek
一个像 中的环境polyglossia
来显示完整的段落,你可以这样定义
\newenvironment{greek}{\begin{latin}\Greekfont}{\end{latin}}
尽管此时您确实想要加载一个支持连字模式的包。
不幸的是,fontspec
没有声明诸如\textAlpha
和 之类的宏\textbeta
。在这里,我在序言中声明了它们,但是如果您还加载了unicode-math
,则该包会将它们声明为\mupAlpha
、\mupbeta
等。
最后,如果您只需要希腊符号而不是单词,您可以加载您喜欢的数学字体并\(\Psi \lambda\)
在数学模式下使用。