我正在使用 XeLaTeX 和 fontspec。我想将使用 \url 时显示的字体更改为 Courier 字体。
我不明白为什么“\renewcommand\UrlFont{\courierfont}”可以工作,而“\urlstyle{\courierfont}”或“\urlstyle{Courier}”却不行。使用 \courierfont 时,我收到错误“!Missing \endcsname inserted”和“!Extra \endcsname”。
输出:
梅威瑟:
\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{hyperref}
\newfontfamily{\courierfont}{Courier}
\begin{document}
\url{https://example.com/example}
\urlstyle{\courierfont}
\url{https://example.com/example}
\urlstyle{Courier}
\url{https://example.com/example}
\renewcommand\UrlFont{\courierfont}
\url{https://example.com/example}
\end{document}
答案1
预定义的 URL 样式很少。如果需要,您需要定义一个新的。
关键是定义\url@<name>style
将重新定义的宏\UrlFont
。
\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{hyperref}
\newfontfamily{\courierfont}{Courier}
\makeatletter
\newcommand{\url@courierstyle}{\def\UrlFont{\courierfont}}
\makeatother
\begin{document}
\url{https://example.com/example}
\urlstyle{courier}
\url{https://example.com/example}
\end{document}