![LaTeX 核心更新后,Typeface 返回致命的编码错误](https://linux22.com/image/459372/LaTeX%20%E6%A0%B8%E5%BF%83%E6%9B%B4%E6%96%B0%E5%90%8E%EF%BC%8CTypeface%20%E8%BF%94%E5%9B%9E%E8%87%B4%E5%91%BD%E7%9A%84%E7%BC%96%E7%A0%81%E9%94%99%E8%AF%AF.png)
多年来,我一直使用该typeface
软件包来加载我喜欢在文档中使用的字体,并防止出现与数学字体相关的错误。直到 2022 年 7 月左右,我的 MikTeX 发行版才允许使用该软件包。
然而,在 2022 年 7 月更新之后,该typeface
包不再起作用,并在包的代码中出现两个错误:
line 825 Missing control sequence inserted. ...ption}{rm,sf,tt,math,symbols,textfigures}
和
line 929 Missing control sequence inserted. ...fontencoding,inputencoding,textcomp,cmap}
这些行包含编码:(
\forcsvlist{\tf@reconfigurefontoption}{rm,sf,tt,math,symbols,textfigures}
第 825 行)和\forcsvlist{\tf@@pkgoptionsvalidation}{fontencoding,inputencoding,textcomp,cmap}
(第 929 行)。
现在,我可以通过以通常的方式加载字体包来避免这些致命错误。但这会导致gfsartemisia
与以下方法结合使用时出错chemfig
(请参阅问题Chemfig 在选择罗马字体和数学字体时出现问题)。在包含的 MWE 中,此选项被注释掉。
当将字体加载从 切换typeface
到usepackage{font}
选项时,会发生另一件奇怪的事情:第一个 lipsum 条目没有打印在gfsartemisia
而是打印在computer modern
... 虽然这并不重要,但真的很奇怪,因为人们会期望与 相同的结果\textrm{}
。
\documentclass[11pt]{article}
\usepackage[
typeface=gfsartemisia,
sanstypeface=tgheros:scale:0.9,
mathtypeface=mathdesign:charter,
]{typeface}
%\usepackage[charter]{mathdesign}
%\usepackage{gfsartemisia}
%\usepackage[scale=0.9]{tgheros}
%----- layout pakketten -----
\usepackage[a4paper,text={18.0cm,26cm},top=2.0cm,left=2.0cm]{geometry}
%----- aanvullende pakketten ----
\usepackage{lipsum}
\begin{document}
{\fontfamily{gfsartemisia}\selectfont \lipsum[1] }
\textrm{\lipsum[2-3]}
\textsf{\lipsum[4-5]}
\end{document}
答案1
该包\MakeUppercase
以“创造性”的方式使用。这在本地以仍然有效的方式定义它
\documentclass[11pt]{article}
\let\MakeUppercasesaved\MakeUppercase
\def\MakeUppercase#1{\expanded{\uppercase{#1}}}
\usepackage[
typeface=gfsartemisia,
sanstypeface=tgheros:scale:0.9,
mathtypeface=mathdesign:charter,
]{typeface}
\let\MakeUppercase\MakeUppercasesaved
%\usepackage[charter]{mathdesign}
%\usepackage{gfsartemisia}
%\usepackage[scale=0.9]{tgheros}
%----- layout pakketten -----
\usepackage[a4paper,text={18.0cm,26cm},top=2.0cm,left=2.0cm]{geometry}
%----- aanvullende pakketten ----
\usepackage{lipsum}
\begin{document}
{\fontfamily{gfsartemisia}\selectfont \lipsum[1] }
\textrm{\lipsum[2-3]}
\textsf{\lipsum[4-5]}
\end{document}
请注意,您会收到警告
LaTeX Font Warning: Font shape `T1/gfsartemisia/m/n' undefined
(Font) using `T1/cmr/m/n' instead on input line 26.
这就解释了为什么在这种情况下你会得到现代化的计算机
\textrm
用\T1/artemisia/m/n/10.95
所以 姓氏 artemisia
不是gfsartemisia
.