Hyperref: изменить шрифт всех ссылок, включая сноски

Hyperref: изменить шрифт всех ссылок, включая сноски

Я хотел бы изменить шрифт всех ссылок, созданных hyperref, например, на sffamily. Для этого я использовал etoolboxпакет для исправления \Hy@colorlinkкоманды следующим образом:

\usepackage{etoolbox}
\makeatletter
\patchcmd{\Hy@colorlink}{\begingroup}{\begingroup\sffamily}{}{}%
\makeatother

Это работает для всех типов ссылок, кроме сносок. Я понятия не имею, почему так происходит. Ниже для вашего удобства приведен минимальный рабочий пример.

Заранее спасибо за вашу помощь!

\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{etoolbox}

% This throws an error
%\AtBeginDocument{%
%    \makeatletter
%    \patchcmd{\Hy@colorlink}{\begingroup}{\begingroup\sffamily}{}{}%
%    \makeatother
%}

\begin{document}
\makeatletter
\patchcmd{\Hy@colorlink}{\begingroup}{\begingroup\sffamily}{}{}%
\makeatother

\tableofcontents

\section{A section}\label{sec:toto}

\begin{enumerate}
    \item Pageref: page~\pageref{sec:toto}.
    \item All links have the new font except footnotes: One\footnote{One} two\footnote{Two} three.\footnote{Three}
\end{enumerate}

\end{document}

введите описание изображения здесь

решение1

Стандартная команда для создания сносок содержит команду \normalfont. Если ее удалить, то работает.

\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{etoolbox}
\makeatletter
 \AtBeginDocument{%
    \patchcmd{\Hy@colorlink}{\begingroup}{\begingroup\sffamily}{}{}%
    \patchcmd{\@makefnmark}{\normalfont}{\selectfont}{}{}%
}
\makeatother
\begin{document}

\tableofcontents

\section{A section}\label{sec:toto}

\begin{enumerate}
    \item Pageref: page~\pageref{sec:toto}.
    \item All links have the new font except footnotes: One\footnote{One} two\footnote{Two} three.\footnote{Three}
\end{enumerate}

\end{document}

введите описание изображения здесь

Связанный контент