![使用 newlfm 类时,\fancy@reset、\f@ncyolh 和 \f@ncyorh 上出现未定义的控制序列错误](https://linux22.com/image/357629/%E4%BD%BF%E7%94%A8%20newlfm%20%E7%B1%BB%E6%97%B6%EF%BC%8C%5Cfancy%40reset%E3%80%81%5Cf%40ncyolh%20%E5%92%8C%20%5Cf%40ncyorh%20%E4%B8%8A%E5%87%BA%E7%8E%B0%E6%9C%AA%E5%AE%9A%E4%B9%89%E7%9A%84%E6%8E%A7%E5%88%B6%E5%BA%8F%E5%88%97%E9%94%99%E8%AF%AF.png)
我更新到了 TeXLive 2017,但无法正常newlfm.cls
工作。这是一个简单的例子:
\documentclass{newlfm}
\begin{document}
\begin{newlfm}
\end{newlfm}
\end{document}
\fancy@reset
LaTex 在、\f@ncyolh
和上抛出未定义的控制序列错误\f@ncyorh
。
是什么导致了错误?我遗漏了什么?
答案1
推测以下补丁(通过etoolbox
) 即可:
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@zfancyhead}{\fancy@reset}{\f@nch@reset}{}{}
\patchcmd{\@set@em@up}{\f@ncyolh}{\f@nch@olh}{}{}
\patchcmd{\@set@em@up}{\f@ncyolh}{\f@nch@olh}{}{}
\patchcmd{\@set@em@up}{\f@ncyorh}{\f@nch@orh}{}{}
\makeatother
该错误是由与包相关的变量硬编码引起的,该问题在更新版本中得到了更改fancyhdr
。通过将上述内容添加到您的序言中,旧fancyhdr
名称将取代新名称。