粗体交叉引用

粗体交叉引用

我正在用 LaTeX 写博士论文,有很多图表 - 文中引用了每张图表。所以我有:

\begin{figure}[h]
...
...
\label{fig:stuff}
\end{figure}

然后,在正文中:

blah blah blah this is shown in \ref{fig:stuff}, which indicates blah blah

我得到:

blah blah blah this is shown in Figure 2.7, which indicates blah blah

我想将“图 2.7”加粗 - 我正在加载带有labelfont=bf选项的 caption 包,以便它在图片本身的标题中加粗,但我还希望它在文本中加粗。我想我可以用

blah blah blah this is shown in \textbf{\ref{fig:stuff}}, which indicates blah blah

但理想情况下,我不想更改所有 71 个数字的多个引用......

有任何想法吗?

答案1

我想你想粗体交叉引用,使其在文本中突出。但是,从排版的角度来看,这是一种可疑的做法。我建议不要将交叉引用加粗,而是将它们制作成可以指定颜色的超链接。为此,首先加载超链接包中colorlinks设置选项。然后,使用包\autoref提供的命令hyperref创建指向交叉引用对象的彩色超链接。请注意,该\autoref命令可以称为完全动态的:它排版类型(如公式、图形、表格、章节等)以及数字交叉引用对象的。通过使用此\autoref命令,超链接“目标”(彩色部分)将非常明显,因为它由交叉引用的项目的类型和编号组成。

比 更灵活、更强大的交叉引用命令\autoref\cref聪明人包;我建议您加载cleveref包选项nameinlink集。(即使您使用\cref,我仍然建议您也加载hyperref带有colorlinks选项集的包。如果您同时加载hyperref cleveref,请务必hyperref先加载。)与 一样\autoref\cref是完全动态的;该nameinlink选项强制链接由项目类型和编号组成。与 不同\autoref\cref可让您创建对多种的同一类型的项目(例如,方程式)甚至不同类型的多个项目都可以在一个交叉引用命令中进行;该cleveref包将很好地对生成的交叉引用进行排序和排版,而用户不必担心这些细节。

有关各种交叉引用命令和包的更多信息,特别是hyperrefcleveref包,请参见问题的答案交叉引用包:使用哪一个,哪些有冲突?

答案2

只需重新定义\ref

\let\origref\ref
\def\ref#1{\textbf{\origref{#1}}}

答案3

Fallino 的答案几乎是正确的,但它只允许任何一个类型(“图形”、“表格”、“部分”...),或者标签为粗体。例如:

In \cref{sectionname} we review the initial conditions ...

根据前导码中的行导致不同的输出。

情况1

\usepackage[capitalize, nameinlink]{cleveref}
\crefdefaultlabelformat{#2\textbf{#1}#3}

结果是:

仅标签为粗体

案例 2

\usepackage[capitalize, nameinlink]{cleveref}
\crefname{section}{\textbf{Section}}{\textbf{Sections}}
\Crefname{section}{\textbf{Section}}{\textbf{Sections}}

结果是:

仅“Section”采用粗体。

案例 3

\usepackage[capitalize, nameinlink]{cleveref}
\crefdefaultlabelformat{#2\textbf{#1}#3} % <-- Only #1 in \textbf
\crefname{section}{\textbf{Section}}{\textbf{Sections}}
\Crefname{section}{\textbf{Section}}{\textbf{Sections}}

呈现出想要的外观

“部分”和标签编号均以粗体显示。

答案4

使用 Quarto,出于某种原因,我不得不混合使用上面的答案

header-includes:
- \usepackage[capitalise,noabbrev, nameinlink]{cleveref} # Allows \cref{} to cite latex table as "Table 3"
# Specify which cross-reference should automatically be bolded : Tables and Figures
# Use \cref{} ; For some reason this only works with this exact disposition :
# Only #1, nameinlink and each of the reference specified. namelink + #1#2#3 would give an error.
- \crefdefaultlabelformat{#2\textbf{#1}#3} # <-- Only #1 in \textbf
- \crefname{table}{\textbf{Table}}{\textbf{Tables}}
- \Crefname{table}{\textbf{Table}}{\textbf{Tables}}
- \crefname{figure}{\textbf{Figure}}{\textbf{Figures}} 
- \Crefname{figure}{\textbf{Figure}}{\textbf{Figures}}

相关内容