urlstyle、urlfont 和 newfontfamily 交互

urlstyle、urlfont 和 newfontfamily 交互

我正在使用 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}

在此处输入图片描述

相关内容