在 moderncv 类中向地址命令添加第四个参数

在 moderncv 类中向地址命令添加第四个参数

我正在尝试向 moderncv 类中的 address 命令添加第四个参数。我在网上寻找解决方案,并尝试了一些方法,包括尝试编辑 moderncv 类文件,但没有任何方法可以正常工作。我最接近的方法是使用这种方法;如何在 moderncv 样式中添加新的地址行,它确实得到了我想要的最终结果,只是地址(国家)的最后一行和电话在同一行。它生成的代码和结果如下:

\documentclass[12pt,a4paper,sans]{moderncv}
\moderncvtheme[blue]{classic}
\usepackage[scale=0.75]{geometry}
\usepackage{etoolbox}

\makeatletter
\patchcmd{\makecvtitle}{\ifthenelse{\equal{\@addresscountry}{}}}%
{\ifstrempty{\@addresscountry}}{}{}
\makeatother

\firstname{John}
\familyname{Smith}
\title{Curriculum Vitae}
\address{42 Apartment complex}{Street}{City\\Country}
\mobile{0000000000}
\email{[email protected]}

国家和电话在同一线路上

有人能提供解决方案吗,最好是给命令添加第四个参数,但我想对上面的代码进行修改,将国家/地区移到自己的行上?任何帮助都非常感谢。

答案1

如果我理解正确的话,也许是这样的:

\documentclass[12pt,a4paper,sans]{moderncv}
\moderncvtheme[blue]{classic}
\usepackage[scale=0.75]{geometry}
\usepackage{etoolbox}

\makeatletter
\RenewDocumentCommand{\address}{mG{}G{}G{}}{%
  \def\@addressapartment{#1}\def\@addressstreetonly{#2}\def\@addresscity{#3}\def\@addresscountry{#4}%
  \def\@addressstreet{%
  \ifthenelse{\isundefined{\@addressapartment}}{}{\@addressapartment}%
  \ifthenelse{\isundefined{\@addressstreetonly}}{}{\makenewline\@addressstreetonly}%
  }}
\makeatother

\firstname{John}
\familyname{Smith}
\title{Curriculum Vitae}
\address{42 Apartment complex}{Street}{City}{Country}
\mobile{0000000000}
\email{[email protected]}

\begin{document}
    \makecvtitle
\end{document}

破解 moderncv 输出

相关内容