交叉引用格式选项

交叉引用格式选项

我有一个简单的问题;我正在写一份包含许多章节和图表的文档。交叉引用工作正常。到目前为止一切顺利。但是,当我引用某些内容时,我更希望图表和章节采用不同的格式。

例如,如果我引用某个部分(假设有适当的标签),我希望输出是:Section 4.3

当我引用一个图形时:Figure 4-3

我该如何处理?

先感谢您

答案1

您可以重新定义\p@figure以产生所需的格式(但这只会改变用于交叉引用的字符串的格式;用于标题的字符串将保持不变):

\documentclass{book}

\makeatletter
\renewcommand\p@figure{\thechapter-\arabic{figure}\expandafter\@gobble}
\makeatother

\begin{document}

\chapter{Test Chapter}
See figure~\ref{fig:test} in section~\ref{sec:test}...

\section{test}\label{sec:test}
\begin{figure}[!ht]
\caption{Test Figure}
\label{fig:test}
\end{figure}

\end{document}

在此处输入图片描述

并将其与cleveref包结合起来,您可以这样说:

\documentclass{book}
\usepackage{cleveref}

\makeatletter
\renewcommand\p@figure{\thechapter-\arabic{figure}\expandafter\@gobble}
\makeatother

\crefname{figure}{figure}{figures}
\Crefname{figure}{Figure}{Figures}

\begin{document}

\chapter{Test Chapter}
See \cref{fig:test} in \cref{sec:test}...

\section{test}\label{sec:test}
\begin{figure}[!ht]
\caption{Test Figure}
\label{fig:test}
\end{figure}

\end{document}

在此处输入图片描述

评论:

  1. 我仅[!ht]在此示例中用作放置说明符;我是不是推荐它的使用。
  2. 就个人观点而言,由于我们x.y使用不同的字符串引用对象,因此这种风格引入了一定程度的不一致性x-y。我建议您重新考虑这一改变。

为了保持一致性,我更愿意进行更改\thefigure,以便对象编号中使用的字符串和交叉引用中使用的字符串相同:

\documentclass{book}
\usepackage{cleveref}

\makeatletter
\renewcommand\thefigure{\mbox{\thechapter-\arabic{figure}}}
\makeatother

\crefname{figure}{figure}{figures}
\Crefname{figure}{Figure}{Figures}

\begin{document}

\chapter{Test Chapter}
See \cref{fig:test} in \cref{sec:test}...

\section{test}\label{sec:test}
\begin{figure}[!ht]
\caption{Test Figure}
\label{fig:test}
\end{figure}

\end{document}

在此处输入图片描述

相关内容