我希望能够在 moderncv 包中的 \makeletterclosing 中添加另一个签名。我知道 \makeletterclosing 命令是在 moderncvbodyi.sty 文件中定义的,我可以手动添加第二个名称 (second~name):
\renewcommand*{\makeletterclosing}{
\@closing\\[3em]%
{\bfseries\@firstname~\@lastname second~name}%
\ifthenelse{\isundefined{\@enclosure}}{}{%
\\%
\vfil%
{\color{color2}\itshape\enclname: \@enclosure}}%
\vfil}
但是,我希望能够在我的文档而不是包文件中定义该名称,例如通过在我的 .tex 文档中添加以下内容:
\documentclass[]{moderncv}
\moderncvstyle{casual}
\moderncvcolor{blue}
\firstname{My}
\familyname{Name}
\begin{document}
\recipient{Stackexchange}{Community}
\date{\today}
\opening{Dear Stackexchange,}
\closing{Sincerely,}
\makelettertitle
Thank you for helping me.
\makeletterclosing
\end{document}
但是,我不知道在哪里以及如何实现变量 \2ndfirstname 和 \2ndlastname。我也不知道 \firstname 和 \lastname 在哪里定义。如果有人能指出正确的文件,我将不胜感激
答案1
假设您的代码片段有效,请尝试如下操作:
\renewcommand*{\makeletterclosing}[2][]{% <<== providing 2 parameters, and no option
\@closing\\[3em]%
{\bfseries\@firstname~\@lastname #2~#1}% <<==
\ifthenelse{\isundefined{\@enclosure}}{}{%
\\%
\vfil%
{\color{color2}\itshape\enclname: \@enclosure}}%
\vfil}
然后像这样的调用应该有效:
\makeletterclosing{Paul McCartney}
如果波浪符号“~”造成任何问题,请用普通空格替换它。我不认为完整的名称会导致换行 ;-)
暗示:遗憾的是,您的代码片段太短,不够好。如您所见,我不得不猜测,而不是在发布之前验证我的答案。在这里,最好将代码缩减到既能显示问题又能包含观察到的错误或问题(MWE:最小工作示例)。