![子节和子子节表中的文本符号部分](https://linux22.com/image/416373/%E5%AD%90%E8%8A%82%E5%92%8C%E5%AD%90%E5%AD%90%E8%8A%82%E8%A1%A8%E4%B8%AD%E7%9A%84%E6%96%87%E6%9C%AC%E7%AC%A6%E5%8F%B7%E9%83%A8%E5%88%86.png)
如何在使用代码时在小节和小节前面获取节符号§
\documentclass{article}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\patchcmd{\l@section}% <cmd>
{#1}% <search>
{\S#1}% <replace>
{}{}% <search><replace>
\makeatother
\begin{document}
\tableofcontents
\section{A section}
\end{document}
然后我只得到了节的符号节,而不是子节和子子节的符号节。非常感谢您的任何帮助。
答案1
你可以扩展当前方法以涵盖目录中的小节和子小节级别的条目:
\usepackage{etoolbox}
\makeatletter
\patchcmd{\l@section}{#1}{\S#1}{}{}
\patchcmd{\l@subsection}{#1}{\S#1}{}{}
\patchcmd{\l@subsubsection}{#1}{\S#1}{}{}
\makeatother
但是,我不建议您使用\patchcmd
路线,因为它会弄乱目录中条目的对齐方式。相反,我建议您使用托克洛夫特包裹。
\documentclass{article}
\usepackage[titles]{tocloft}
\renewcommand\cftsecpresnum{\S} % see p. 10 of the package's user guide
\renewcommand\cftsubsecpresnum{\S}
\renewcommand\cftsubsubsecpresnum{\S}
\begin{document}
\tableofcontents
\section{A section}
\subsection{A subsection}
\subsubsection{A subsubsection}
\end{document}