如标题所示,我想自定义参考文献的外观。目前我正在使用类似这样的内容:
(\hyperref[fig:figure_ref_name]{Figure \ref{fig:figure_ref_name}.A})
呈现效果:(图 1.A)
我想将此命令缩短为:
\fighref{figure_ref_name}
对于子图的情况,有一个可选参数,例如
\fighref{figure_ref_name, A}
并且没有 hyperref:
\figref{figure_ref_name,A}
我还想将其扩展到其他情况,例如(等式 1)等等......
答案1
与其重新发明轮子,我宁愿使用cleveref
包。此包将自动插入参考类型(图、表、部分等)以及编号。
要获取括号,您可以将其包装到一个简单的宏中。原则上,可以向此宏添加一个可选参数来插入 ( A
) \usepackage{etoolbox} \newcommand{\crefp}[2][]{(\cref{#2}\ifstrempty{#1}{}{.#1})}
,但我还是要避免重新发明轮子,使用类似subcaption
这样的包可以自动引用特定的子图。
\documentclass{article}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[capitalise,nameinlink]{cleveref}
\usepackage{subcaption}
\newcommand{\crefp}[1]{(\cref{#1})}
\renewcommand\thesubfigure{\Alph{subfigure}}
\begin{document}
\begin{figure}
\begin{minipage}[b]{.5\linewidth}
\includegraphics[width=\textwidth]{example-image}
\subcaption{A subfigure}\label{fig:1a}
\end{minipage}%
\begin{minipage}[b]{.5\linewidth}
\includegraphics[width=\textwidth]{example-image}
\subcaption{Another subfigure}\label{fig:1b}
\end{minipage}
\caption{A figure}\label{fig:1}
\end{figure}
\cref{fig:1}
\cref{fig:1a}
\crefp{fig:1}
\crefp{fig:1a}
\end{document}