尝试在我的 TeX 安装上编译以下最小工作示例失败。
\documentclass{moderncv}
%\moderncvstyle{banking}
\begin{document}
Foo
\end{document}
日志文件重复出现以下错误八次:
! Undefined control sequence.
<argument> \@firstname
{}~\@lastname {}
l.6 \begin{document}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
无论我使用 pdflatex 还是 luatex 进行编译,错误都是一样的。我在 Linux Mint 中使用全新(完整)的 TeX Live 2016 安装和 tlmgr 修订版 41476,并使用 TeXstudio 作为编辑器。根据tlmgr update --all
我tlmgr update --self
的安装是最新的。
取消注释样式语句会导致出现额外的警告:
LaTeX Warning: You have requested package `moderncvheadiii',
but the package provides `moderncvheadiii'.
我在网上找到了一些关于这个问题的提及,但这个问题似乎已经被 moderncv 更新修复了(https://github.com/xdanaux/moderncv/issues/1)。
奇怪的是,我可以更新并重新编译较旧的 moderncv 文档(在另一个发行版上制作),没有任何问题。其他文档类似乎也能正常工作。
我该如何解决这样的问题?
编辑
感谢@Elad Den 指出我需要在文档的序言中定义名称。 和 都可以\name{}{}
工作\firstname{}
\familyname{}
,尽管我的编辑器无法识别前一个命令。 这确实让我可以毫无问题地进行编译。
不幸的是,从现在开始事情并不顺利。添加\recipients{}
、\opening{}
和工作正常,但添加会导致以下错误:\closing{}
\makeletterclosing
\makelettertitle
Undefined control sequence. \makelettertitle
You have requested package `moderncvheadiii', but the package provides `moderncvheadiii'.
You have requested package `moderncvbodyiii', but the package provides `moderncvbodyiii'.
值得注意的是,我做尽管我的日志文件中充斥着错误和警告,但我还是收到了(看似)正确的 pdf 输出。
我找到了一个对类似问题的引用,但是该线程中没有提供任何解决方案:moderncv 或 TexStudio 的问题:makelettertitle 未定义
答案1
看起来(因为这是一份简历)文档类需要\firstname{}
定义\familyname{}
。您可以将这些行添加到序言中,或者使用\name{}{}
命令
\documentclass{moderncv}
%\moderncvstyle{banking}
%\firstname{}
%\familyname{}
\name{}{}
\begin{document}
Foo
\end{document}