Moderncv - 最小文档中未定义的控制序列

Moderncv - 最小文档中未定义的控制序列

尝试在我的 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 --alltlmgr 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}

相关内容