在一些论文和书籍中,你会看到作者使用§1.3代替第 1.3 节。如何自动在节(或部分、章节等)编号前添加 § 符号?请提供关于此样式的任何有用提示。
也可以看看: 奇特的交叉引用
答案1
您可以使用cleveref
封装并重新定义\crefname{section}
:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{cleveref}
\crefname{section}{§}{§§}
\Crefname{section}{§}{§§}
\begin{document}
\section{foo}\label{sec:foo}
Some text.
\section{bar}
As explained in \cref{sec:foo}~\dots
\end{document}
答案2
hyperref
提供\autoref{<label>}
检查引用中使用的计数器并设置带有前缀的标签\<counter>autorefname
。这是一个小例子:
\documentclass{article}
\usepackage{hyperref}% http://ctan.org/pkg/hyperref
\renewcommand{\sectionautorefname}{\S}
\begin{document}
\section{A section}
See~\autoref{another-section}.
\section{Another section}\label{another-section}
\end{document}
答案3
经常被遗忘的是宏\p@<counter>
。如果 LaTeX 生成一个引用值,这不仅仅是。如果定义了一个新的计数器, 则定义为\the<counter>
空。但可以重新定义它以添加前缀,例如。因此不需要额外的包。\p@<counter>\the<counter>
\p@<counter>
\documentclass{article}
\makeatletter
\renewcommand*{\p@section}{\S\,}
\renewcommand*{\p@subsection}{\S\,}
\makeatother
\begin{document}
\section{Hello World}
\label{sec:hello}
\subsection{Subsection A}
\subsection{Subsection B}
\subsection{Subsection C}
\label{sec:C}
See \ref{sec:C} inside \ref{sec:hello}.
\end{document}
答案4
我花了一点时间才找到解决方案,所以我想分享一下。万一像我一样:
- 你不想使用包
cleveref
(参见lockstep 的回答)因为它与showonlyrefs
包的选项不兼容mathtools
- 你宁愿不做Heiko Oberdiek 的解决方案因为你想保持
\ref
和之间的区别\autoref
- 您喜欢这个
hyperref
包装,并且沃纳的解决方案但它不起作用,因为你正在使用 babel 包
这是修复方法,找到了这里:
\addto\extrasenglish{
\def\sectionautorefname{\S}
}
这是一个最小的工作示例:
\documentclass{article}
\usepackage[english]{babel}
\usepackage{mathtools}
\usepackage{hyperref}
\mathtoolsset{showonlyrefs=true}
\addto\extrasenglish{%
\def\sectionautorefname{\S}%
}
\begin{document}
\section{Foo}
Cf \autoref{sec:bar}.
\section{Bar}\label{sec:bar}
\end{document}