我需要用电传打字机字体写希腊字母(具体来说,\mu
、\alpha
、\tau
),但将它们包裹在 中\mathtt
似乎不起作用。实际上,似乎没有一种字体类型适用于这些小写字母(\bm
但我可以用 加粗)。那么,我该如何用电传打字机字体输入这些希腊字母呢?
答案1
这很大程度上取决于主文档字体。对于 Computer Modern,您可以使用字体cbgreek
。不过,其他字体系列支持希腊语。请自行选择。
\documentclass{article}
\usepackage[LGR,T1]{fontenc} % to enable Greek encoding
\usepackage{amsmath}
\DeclareSymbolFont{ttgreek}{LGR}{cmtt}{m}{n}
%\SetSymbolFont{ttgreek}{bold}{LGR}{cmtt}{bx}{n} % there is no bold
\DeclareMathSymbol{\ttalpha}{\mathord}{ttgreek}{`a}
\DeclareMathSymbol{\ttmu}{\mathord}{ttgreek}{`m}
\DeclareMathSymbol{\tttau}{\mathord}{ttgreek}{`t}
\begin{document}
$\alpha\ne\ttalpha$
$\mu\ne\ttmu$
$\tau\ne\tttau$
\end{document}
答案2
命令\alpha
等\Beta
是在数学模式下定义的。默认文本字体也不包含直立的希腊小写字母。
默认情况下,LaTeX 可以理解 UTF-8 文档中的希腊字母,但该textalpha
软件包添加了诸如、等命令\textalpha
。\textBeta
您可以加载该alphabeta
软件包,以便\alpha
在文本或数学模式下使用诸如等命令。它还启用了\textalpha
、等。
在 LuaLaTeX 中,您可以选择支持希腊语的 Unicode 字体,并且每当您键入希腊字母时 LaTeX 就会切换到该字体:
\documentclass{article}
\tracinglostchars=2
\usepackage[english]{babel}
\usepackage[default]{fontsetup} % Select New Computer Modern Book
\babelprovide[onchar=ids fonts]{greek}
\usepackage{alphabeta}
\begin{document}
\texttt{αβγ\textdelta\textEpsilon\texttheta\textlambda}
\end{document}
如果需要使用 PDFLaTeX,可以这样做:
\documentclass{article}
\tracinglostchars=2
\usepackage[LGR,T1]{fontenc}
\usepackage[utf8]{inputenc} % The default since 2018
\usepackage{alphabeta}
\begin{document}
\texttt{αβγ\textdelta\textEpsilon}
\end{document}
这假设您只需要几个希腊符号来表示代码列表之类的内容。某些字体(例如 Computer Modern Unicode)对希腊数学符号和文本有不同的形式,您可以使用 OpenType 功能(例如希腊文脚本或数学希腊文)进行选择。如果您需要选择这些形式,或者输入带有正确连字和最终西格玛的实际希腊语单词,则需要为希腊语和英语设置单独的字体功能。
\documentclass{article}
\tracinglostchars=2
\usepackage[english]{babel}
\usepackage{fontspec,textalpha}
\babelprovide[onchar=ids fonts]{greek}
\babelfont{rm}
[Ligatures={Common,Discretionary}]{NewComputerModernBook}
\babelfont{rm}
[Ligatures={Common,Discretionary}]{NewComputerModernSansBook}
\babelfont{tt}
[Ligatures={Discretionary}]{NewComputerModernMonoBook}
\begin{document}
\texttt{αβγ\textdelta\textEpsilon\texttheta\textlambda}
\end{document}
在数学模式下,fontspec
将允许使用 Unicode 字体\mathtt
。如果您坚持使用 8 位引擎,\usepackage[OMLmathtt]{isomath}
将允许您加载\mathtt
包含希腊文的字体。TeX 可用的 OML 编码直立等宽字体很少,但我认为有这个选项,我想您可以自己从 Unicode 字体创建一个。
您还可以定义
\newcommand\vartt[1]{\textnormal{\ttfamily #1}}
允许在数学模式下使用文本模式希腊语,这可以支持 8 位 LGR 字体。如果您还加载了\usepackage{alphabeta}
,则可以使用\vartt{\alpha}
等等。
最后,mathastext
可以选择从 LGR 编码字体加载希腊数学字母。