使用 \patchcmd{\normalsize} 调整字体大小无法与 TL 2022 配合使用

使用 \patchcmd{\normalsize} 调整字体大小无法与 TL 2022 配合使用

我曾经使用 稍微调整字体大小\patchcmd{\normalsize}。请考虑以下代码:

\documentclass[11pt]{memoir}
\usepackage{etoolbox,lipsum}

\makeatletter
\patchcmd{\normalsize}{\@xipt}{{30pt}}{}{} % 30pt only for testing purpose!
\normalsize
\makeatother

\begin{document}
\lipsum
\end{document}

如果我使用 LuaLaTeX(或 XeLaTeX 或 pdfLaTeX)2021 或更早版本进行编译,文本会被调整大小;使用 TL 2022 则不会。

我正在使用 Overleaf,所以我想知道原因是否是 TL 2022 内部的变化(或错误),或者是其在 Overleaf 中的实现。

答案1

与此同时,\normalsize已经成为一个强大的命令,因此\patchcmd试图修补错误的命令,即“表面”命令,而不是具有真实代码的命令。

实际上,您不应该修补\normalsize:而是使用诸如之类的现代软件包fontsize

无论如何,您都可以使用 进行修补xpatch

\documentclass[11pt]{memoir}
\usepackage{xpatch,lipsum}

\makeatletter
\xpatchcmd{\normalsize}{\@xipt}{{30pt}}{}{} % 30pt only for testing purpose!
\makeatother

\begin{document}
\lipsum
\end{document}

注意,\normalsize修补之后就完全没用了,因为\normalsize(在修补后的版本中)会在开始文档中发出。

相关内容