我试图更改文档中只有一个字符的字体,但它无法使用 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}