这是一个与以下内容相关的问题: https://tex.stackexchange.com/a/384959/88262
DeclareMathAlphabet
需要 4 个参数,其中第一个指定编码,第二个指定字体。但是,并非所有编码都与所有字体兼容。是否有一个列表列出要为哪种字体选择哪种编码?上面答案中的链接都失效了,查看 mathalpha 文档或mathalpha.sty
它本身都无济于事。
\documentclass{article}
\usepackage{mathalfa}
\DeclareMathAlphabet\mathzapf{T1}{pzc}{mb}{it}
\DeclareMathAlphabet{\mathchorus}{OT1}{cmtt}{m}{n}
\DeclareMathAlphabet\mathrsfso{U}{rsfso}{m}{n}
% \DeclareMathAlphabet\mathesstix{???}{esstix}{m}{n} % which encoding to choose?
% neither T1, OT1 or U work
\begin{document}
\[ \mathzapf{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathchorus{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathrsfso{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
% \[ \mathresstix{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\end{document}
答案1
你可能遇到了 XY 问题
如果您将 Zapf Chancery 和 Ralph Smith Formal Script Oblique 定义为数学字母,那么您几乎肯定希望前者为\mathcal
,而后者为\mathscr
。(但是,您可能只是以这种方式完成了 MWE 作为示例。)如果您发现自己在同一篇论文中使用的脚本字母实际上比这更多,那么您应该认真重新考虑您的符号。
你真正想要做的是加载你的\mathscr
和\mathcal
字母表mathalpha
,例如:
\usepackage[cal=zapfc, scr=rsfso]{mathalpha}
在这种情况下,你会想要
\usepackage[scr=esstix]{mathalpha}
它将加载以下命令:
\DeclareFontFamily{U}{esstixscr}{\skewchar \font =45}
\DeclareFontShape{U}{esstixscr}{m}{n}{
<-> \mathalfa@scrscaled esstixcal}{}
\DeclareMathAlphabet{\mathscr}{U}{esstixscr}{m}{n}
剩下的命令名为\mathchorus
,暗示它旨在设置 TeX Gyre Chorus,这是 Zapf Chancery 的克隆。但是,它实际上选择了 Computer Modern Sans Serif。这样做没什么用;如果您想使用 Chorus,请使用它而不是默认的 PostScript pzc
(在不同系统上可能是不同的字体),如果您想要 Computer Modern Sans Serif 作为非主要字母表的字母表,请将其用作\mathsf
。
字面答案
虽然字体编码通常在包文档中,但 LaTeX 的新字体选择方案 (NFSS) 会搜索名为 [encoding][family].fd 的文件。(在 Linux 等操作系统上,文件名中的编码为小写,但文档命令中的编码为大写。)
因此,您的示例对应于文件urfsfo.fd
、t1pzc.fd
和ot1cmss.fd
。
因此,您可以在 TeX 目录中搜索符合此命名方案的文件。例如,在 Ubuntu 命令行上,您可以使用以下命令搜索该pzc
系列 (Zapf Chancery) 或qzc
(TeX Gyre Chorus,实际上是 TeX 附带的克隆) 的所有编码:
find /usr/share/texlive/texmf-dist/ -name "*[pq]zc.fd" -print
如果你只是想检查某个特定的家族是否有特定的编码,你可以用 测试特定文件名是否在 TeX 数据库中kpsewhich
。例如,要确认cmr
有以下OML
编码:
kpsewhich omlcmr.fd
或者,所有现代文件管理器都有文件搜索功能。
实际上,通常可以先尝试 OML,如果不行,再尝试 OT1,如果还不行,再尝试 T1。几乎所有字体都带有 OT1 和 T1,但它mathdesign
是少数支持 OML 的软件包之一。
unicode-math
最后,如果您可以使用LuaTeX 或 XeTeX,这一切都会变得简单得多。