moderncv.cls,如何使用电子邮件等变量

moderncv.cls,如何使用电子邮件等变量

也许我遗漏了一些非常简单的东西,但我无法从 moderncv 类访问变量。例如,如果我用 分配变量 email,我无法在文档内部调用它,尽管它是在 moderncv.cls 文件中定义的。但是,如果我发出,我会得到所需的结果。\email{[email protected]}\@email\newcommand*{\email}[1]{\def\@email{#1}}\renewcommand{\email}[1]{\def\@email{#1}}

平均能量损失

\documentclass[11pt,a4paper,sans]{moderncv}       

\moderncvstyle{casual}                            
\moderncvcolor{blue}                             

\usepackage[scale=0.75]{geometry}

%\renewcommand{\email}[1]{\def\@email{#1}} % Activate to make email variable work

\name{John}{Doe}            
\email{[email protected]}
\begin{document}

\makecvtitle
Email is: \@email

\end{document}

没有使用 renew 命令的结果:

在此处输入图片描述

使用 renew 命令的结果:

在此处输入图片描述

答案1

\@email是一个隐藏命令(或者应该是隐藏的,因为它以 开头\@。为了访问这样的\@....命令,您需要一\makeatletter...\makeatother对。)

.sty.cls文件中应该没有\makeatletter...\makeatother对,\@....等等命令可以直接在那里访问!

最好将这对包裹在访问宏中,\retrieveemail而不是\@email直接使用。

\documentclass[11pt,a4paper,sans]{moderncv}       

\moderncvstyle{casual}                            
\moderncvcolor{blue}                             

\usepackage[scale=0.75]{geometry}

%\renewcommand{\email}[1]{\def\@email{#1}} % Activate to make email variable work

\makeatletter
\newcommand{\retrieveemail}{\@email}
\makeatother

\name{John}{Doe}            
\email{[email protected]}
\begin{document}

\makecvtitle

Email is: \retrieveemail

\end{document}

相关内容