如何改变 cleveref 包中交叉引用的样式?

如何改变 cleveref 包中交叉引用的样式?

我想改变使用包生成的交叉引用(章节、部分、图形、公式等)的样式cleveref,例如,在引用的项目周围加上括号并使用粗体表示数字。

\documentclass[14pt,a4paper]{extreport}
\usepackage[left=2.00cm, right=1.50cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{hyperref}  
\hypersetup{colorlinks=true,citecolor=red, linkcolor=blue}
\usepackage{cleveref}
\usepackage{tcolorbox}
\begin{document}
\chapter{First  Chapter}\label{ch:chapter 1}
\section{Section One}\label{sec:section one}
\lipsum[1]
\section{Section Two}\label{sec:section two}
\begin{align}
r =& \sqrt{x^2 + y^2}\label{eq:equation 1}\\[2ex]
z =& \sqrt[3]{1 - 2r^2}\label{eq:equation 2}
\end{align}
see \cref{sec:section one} in \cref{ch:chapter 1}\\
\Cref{eq:equation 1} is the governing equations, \cref{eq:equation 2} is the second equation.
\end{document}

答案1

如果数字周围的括号应以粗体显示,添加说明

\crefdefaultlabelformat{#2\bfseries\upshape(#1)#3}          
\creflabelformat{equation}{#2\bfseries\upshape(#1)#3}

加载后cleveref

如果只应将数字而不是周围的括号以粗体显示,请发出说明

\crefdefaultlabelformat{#2(\textbf{\textup{#1}})#3}
\creflabelformat{equation}{#2(\textbf{\textup{#1}})#3}

\upshape观察/的使用,\textup确保数字(以及括号(如果需要))始终以直立字体形状排版。

完整的 MWE(最小工作示例)以粗体显示数字和周围的括号:

在此处输入图片描述

\documentclass[14pt,a4paper]{extreport}
\usepackage[left=2cm, right=1.5cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amsfonts,amssymb,graphicx,xcolor}

\usepackage{hyperref}  
\hypersetup{colorlinks=true,linkcolor=blue}

\usepackage{cleveref}
\crefdefaultlabelformat{#2\bfseries\upshape(#1)#3}
\creflabelformat{equation}{#2\bfseries\upshape(#1)#3}

\usepackage{tcolorbox}

\begin{document}
\chapter{First  Chapter}\label{ch:chapter 1}
\section{Section One}\label{sec:section one}
\section{Section Two}\label{sec:section two}
\begin{align}
r =& \sqrt{x^2 + y^2}\label{eq:equation 1}\\[2ex]
z =& \sqrt[3]{1 - 2r^2}\label{eq:equation 2}
\end{align}

See \cref{sec:section one} in \cref{ch:chapter 1}.

\Cref{eq:equation 1} is the governing equation, and  \cref{eq:equation 2} is the second equation.
\end{document}

附录回应 OP 的后续评论:使用说明

\crefdefaultlabelformat{(#2\textbf{\textup{#1}}#3)}
\creflabelformat{equation}{(#2\textbf{\textup{#1}}#3)}

如果只有交叉引用的数字,而不是周围的括号,应该以粗体呈现并制成超链接目标(因此,hyperref在有效设置下,以蓝色呈现)。

答案2

对于括号,将其放在序言中\crefdefaultlabelformat{#2(#1)#3},其中#1代表所引用的项目,如 cleveref 中所述文档

\documentclass[14pt,a4paper]{extreport}
\usepackage[left=2.00cm, right=1.50cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lipsum}
\usepackage{hyperref}  
\hypersetup{colorlinks=true,citecolor=red, linkcolor=blue}
\usepackage{cleveref}

\crefdefaultlabelformat{#2(#1)#3}


\begin{document}
\chapter{First  Chapter}\label{ch:chapter 1}
\section{Section One}\label{sec:section one}
\lipsum[1]
\section{Section Two}\label{sec:section two}
\begin{align}
r =& \sqrt{x^2 + y^2}\label{eq:equation 1}\\[2ex]
z =& \sqrt[3]{1 - 2r^2}\label{eq:equation 2}
\end{align}
see \cref{sec:section one} in \cref{ch:chapter 1}\\
\Cref{eq:equation 1} is the governing equations, \cref{eq:equation 2} is the second equation.
\end{document}

在此处输入图片描述

相关内容