在 moderncv 中添加第二个签名

在 moderncv 中添加第二个签名

我希望能够在 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:最小工作示例)。

相关内容