更改 \url 使用的 & 符号

更改 \url 使用的 & 符号

对于普通文本,我用一些不同的东西替换了 & 符号,具体来说是从不同字体中获取的缩放 & 符号(因为某些原因)。也许不那么偷懒的方法是为此目的创建虚拟字体,但简单地重新定义宏\&就可以了 - 直到我开始使用该url包。我怎样才能\url使用我的自定义\&& 符号?

\documentclass{minimal}
\usepackage{url}
\urlstyle{same}

% Redefine \&:
\usepackage{graphicx}
\let\ampersand\&
% for the sake of this MWE:
\def\&{\scalebox{0.7}{\fontfamily{ptm}\selectfont\ampersand}}

\begin{document}
\begin{tabular}{ll}
Text: & Foobar \& Cie.\\
Bad url: & \url{https://example.com/page?x=1&y=2}\\
Manual fix: & \url{https://example.com/page?x=1}\&y=2\\
\end{tabular}
\end{document}

在此处输入图片描述

答案1

您可以将转换添加到内部列表中url

\documentclass{article}
\usepackage{url}
\urlstyle{same}

\makeatletter
\g@addto@macro\Url@OTnonTT{\do\&{\&}}
\makeatother

% Redefine \&:
\usepackage{graphicx}
\let\ampersand\&
% for the sake of this MWE:
\def\&{\scalebox{0.7}{\fontfamily{ptm}\selectfont\ampersand}}

\begin{document}
\begin{tabular}{ll}
Text: & Foobar \& Cie.\\
Bad url: & \url{https://example.com/page?x=1&y=2}\\
Manual fix: & \url{https://example.com/page?x=1}\&y=2\\
\end{tabular}
\end{document}

在此处输入图片描述

相关内容