我正在用 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
包将很好地对生成的交叉引用进行排序和排版,而用户不必担心这些细节。
有关各种交叉引用命令和包的更多信息,特别是hyperref
和cleveref
包,请参见问题的答案交叉引用包:使用哪一个,哪些有冲突?
答案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}}
结果是:
案例 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}}