我希望重新定义,\nameref
以便将其输出以斜体打印。但是,我显然做错了什么,因为我收到一条错误消息
\nameref 未定义。\renewcommand{\nameref}
梅威瑟:
\documentclass{article}
\usepackage{hyperref}
\let\namerefOld\nameref
\renewcommand{\nameref}[1]{\textit{\namerefOld{#1}}}
\begin{document}
\section{A}
\label{sec:A}
bla bla foo bar
\section{B}
yada yada yada \nameref{sec:A}
\end{document}
这里的问题是什么?我希望它能正常工作,按照这个问题。在前言中不加and 也可以
使用,或者直接用 包围它,这样可以得到所需的输出。不过,我不想用 包围每个出现的。\nameref
\let
\renewcommand
\textit{...}
\nameref
\textit
答案1
\nameref
在序言中没有定义,所以你无法在那里捕捉到它的定义。你要么必须移动
\let\namerefOld\nameref
\renewcommand{\nameref}[1]{\textit{\namerefOld{#1}}}
之后\begin{document}
或写
\AtBeginDocument{
\let\namerefOld\nameref
\renewcommand{\nameref}[1]{\textit{\namerefOld{#1}}}
}
在序言中。