提问于:
浏览数:
3629
`LaTeX`默认的样式是目录的`section`部分没有引导的,参考文献不加入目录。代码和样式如下
```tex
\documentclass[a4paper,zihao=-4,UTF8]{ctexart}
\usepackage[left=3.18cm,right=3.18cm,top=2.54cm,bottom=2.54cm]{geometry}%页面设置
\usepackage{zhlineskip}%行距
\usepackage{zhlipsum}
\usepackage{fontspec}
% \setCJKmainfont{Source Han Serif CN Light}%思源宋体
\setCJKmainfont{STSong}
% \usepackage[nottoc]{tocbibind}%增加目录内容,用[nottoc]可以取消输出目录本身
\usepackage[section]{placeins}%避免浮动体跨过\section等章节标题
\usepackage[]{hyperref}%%目录引用等超链接
\hypersetup{colorlinks=true}
\pagestyle{plain}
\usepackage{amsmath}
\usepackage[super]{gbt7714}%参考文献角标数字顺序编
% \usepackage{titlesec}
\begin{document}
\tableofcontents
\section{场}
\label{field}
\zhlipsum[1][name=xiangyu]{{$x^2+y^2=1$}\kaishu 试一下楷书,跳转到第 \ref{vec}}
\section{向量}
\label{vec}
\zhlipsum[1][name=xiangyu]
\subsection{三维坐标}
\subsubsection{积分}
\zhlipsum[1][name=xiangyu]
\section*{微分}
\addcontentsline{toc}{section}{摘要}
\begin{abstract}
这是摘要
\end{abstract}
随便引用一下\cite{emc}。
%\addcontentsline{toc}{section}{\hspace*{2em}参考文献}
\bibliography{ex}%生成参考文献
\end{document}
```
![](https://pics.latexstudio.net/data/images/201911/057c256e59da2c8.png)
要实现`section`部分加点并使参考文献加入目录我发现了两个方法
1. 利用`titletoc`宏包提供的`\titlecontents{hsectioni}[hlefti]{habove-codei}{numbered-entry-format}{numberless-entry-format}{filler-page-format}[below-code]`命令修改目录格式和`\addcontentsline{toc}{section}{内容}`增加目录内容。代码和效果如下,但是编号失去了超链接功能。参考网址[https://blog.csdn.net/l_changyun/article/details/87431805#comments](https://blog.csdn.net/l_changyun/article/details/87431805#comments)
![](https://pics.latexstudio.net/data/images/201911/58978d74c4e108f.png)
2. 利用`tocloft`宏包,可满足要求。参考网址[https://www.latexstudio.net/archives/2500.html](https://www.latexstudio.net/archives/2500.html)
代码和效果如下
```tex
\documentclass[a4paper,zihao=-4,UTF8]{ctexart}
\usepackage[left=3.18cm,right=3.18cm,top=2.54cm,bottom=2.54cm]{geometry}%页面设置
\usepackage{zhlineskip}%行距
\usepackage{zhlipsum}
\usepackage{fontspec}
% \setCJKmainfont{Source Han Serif CN Light}%思源宋体
\setCJKmainfont{STSong}
\usepackage[nottoc]{tocbibind}%增加目录内容,用[nottoc]可以取消输出目录本身
\usepackage[section]{placeins}%避免浮动体跨过\section等章节标题
\usepackage[]{hyperref}%%目录引用等超链接
\hypersetup{colorlinks=true}
\pagestyle{plain}
\usepackage{amsmath}
\usepackage[super]{gbt7714}%参考文献角标数字顺序编
\usepackage[titles]{tocloft}%给目录sec部分加点,用subfigure取消和subfigure宏包的冲突
% \renewcommand{\cftdot}{\$\cdot\$}
\renewcommand{\cftdotsep}{1.5}
\setlength{\cftbeforesecskip}{10pt}
\renewcommand{\cftsecleader}{\cftdotfill{\cftsecdotsep}}
\renewcommand{\cftsecdotsep}{\cftdotsep}
\makeatletter
\renewcommand{\numberline}[1]{%
\settowidth\@tempdimb{#1\hspace{0.5em}}%
\ifdim\@tempdima<\@tempdimb%
\@tempdima=\@tempdimb%
\fi%
\hb@xt@\@tempdima{\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb}
\makeatother
\begin{document}
\tableofcontents
% \ctexset{
% section = {
% % name = {第,节},
% number = \chinese{section},
% format += \raggedright,%会同时影响目录和参考文献等
% }
% }
\section{场}
\label{field}
\zhlipsum[1][name=xiangyu]{{$x^2+y^2=1$}\kaishu 试一下楷书,跳转到第 \ref{vec}}
\section{向量}
\label{vec}
\zhlipsum[1][name=xiangyu]
\subsection{三维坐标}
\subsubsection{积分}
\zhlipsum[1][name=xiangyu]
\section*{微分}
\addcontentsline{toc}{section}{摘要}
\begin{abstract}
这是摘要
\end{abstract}
随便引用一下\cite{emc}。
\bibliography{ex}%生成参考文献
\end{document}
```
![](https://pics.latexstudio.net/data/images/201911/f2733e22f37e4cd.png)
最后附上代码中的参考文献`ex,bib`
```tex
@book{emc,
title={工程电磁兼容},
author={路宏敏 and 余志勇 and 李万玉},
year={2010},
address = {西安},
publisher = {西安电子科技大学出版社},
pages = {303-308},
}
```
总结一下。方法1能定制目录,代码能理解,但是编号不再具有超链接功能,不知如何解决不知道大佬们有什么高招。方法2可以实现想要的功能,但是涉及用`\makeatother`修改内部代码,没有祖传代码的话自己写不出来.