在限制区域使用其他字体将无法编译

在限制区域使用其他字体将无法编译

我试图更改文档中只有一个字符的字体,但它无法使用 lualatex 进行编译,我遗漏了什么?

\documentclass[11pt,a4paper,sans]{moderncv} 
\moderncvstyle{classic}
\moderncvcolor{blue}
\moderncvicons{awesome}

\newfontfamily\myfont[]{Arial}

\firstname{John}
\familyname{Doe}
\email{someName{\myfont @}me.com}

\begin{document}
\maketitle
\end{document}

答案1

问题在于,\email{x}最终

\href{mailto:x}{x}

并且\myfont第一个参数\href是错误的。您可以使用一些技巧来解决这个问题,但链接将无效。

\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{classic}
\moderncvcolor{blue}
\moderncvicons{awesome}

\newfontfamily\myfont[]{Arial}
\protected\def\myat{{\myfont @}}

\firstname{John}
\familyname{Doe}
\email{someName\myat me.com}

\begin{document}
\maketitle
\end{document}

在此处输入图片描述

这是一个更好的解决方法,可以生成有效的超链接。现在\email有一个可选参数用于指定格式说明,所以\maketitle可以

\href{mailto:[email protected]}{someName{\myfont @}me.com}

这是合法的。

\documentclass[11pt,a4paper,sans]{moderncv} 
\moderncvstyle{classic}
\moderncvcolor{blue}
\moderncvicons{awesome}

\usepackage{etoolbox}
\makeatletter
\patchcmd{\makecvtitle}
  {\emaillink{\@email}}
  {\expandafter\emaillink\@email}
  {}{}
\renewcommand{\email}{\@dblarg\fry@fix@email}
\def\fry@fix@email[#1]#2{\def\@email{[#1]{#2}}}
\makeatother

\newfontfamily\myfont[]{Arial}

\firstname{John}
\familyname{Doe}
\email[someName{\myfont @}me.com]{[email protected]}

\begin{document}
\maketitle
\end{document}

答案2

似乎您只是忘了加载fontspec,它是提供以下命令的包\newfontfamily

\documentclass{scrartcl}
\usepackage{fontspec}
\newfontfamily\myfont[]{Arial}

\begin{document}
someName{\myfont @}me.com
\end{document} 

相关内容