我正在尝试删除目录(以及章节)上的编号,但保留章节名称的位置,如下图所示:
然后它看起来就像这样:
我试过了\setcounter{secnumdepth}{0}
,但它改变了部分名称的位置。 将\section*{name of the section}
其从目录中删除。
编辑:根据要求,序言(我已将其改为更小):
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{anyfontsize}
\usepackage{ragged2e}
\usepackage{tocloft}
\usepackage{titlesec}
\renewcommand{\cftsecleader}{\cftdotfill{1}}
\renewcommand{\cftsubsecleader}{\cftdotfill{1}}
\renewcommand{\cftsubsubsecleader}{\cftdotfill{1}}
\renewcommand{\cftdot}{-}
\renewcommand{\cfttoctitlefont}{\fontsize{12}{12}}
\renewcommand*\contentsname{\centerline{\textbf{SUMMARY}}}
\titleformat*{\section}{\fontsize{12}{12}\sffamily\bfseries}
\titleformat*{\subsection}{\fontsize{12}{12}\sffamily\bfseries}
\titleformat*{\subsubsection}{\fontsize{12}{12}\sffamily\bfseries}
\cftsetindents{section}{0em}{2.3em}
\cftsetindents{subsection}{0em}{2.3em}
\cftsetindents{subsubsection}{0em}{2.3em}
\renewcommand\cftsecnumwidth{35pt}
\renewcommand\cftsubsecnumwidth{35pt}
\renewcommand\cftsubsubsecnumwidth{35pt}
\renewcommand\cftbeforesecskip{0pt}
\renewcommand\cftsecafterpnum{\vskip0pt}
\renewcommand\cftsubsecafterpnum{\vskip0pt}
\renewcommand\cftsubsubsecafterpnum{\vskip0pt}
\renewcommand\cftsubsecfont{\bfseries}
\begin{document}
答案1
对于每个带星号的部分单元,手动添加内容条目以及前缀\numberline{}
:
\documentclass{article}
\usepackage{tocloft}
\renewcommand{\cftsecleader}{\cftdotfill{1}}
\renewcommand{\cftsubsecleader}{\cftdotfill{1}}
\renewcommand{\cftsubsubsecleader}{\cftdotfill{1}}
\renewcommand{\cftdot}{-}
\renewcommand{\cfttoctitlefont}{\fontsize{12}{12}}
\renewcommand*\contentsname{\centerline{\textbf{SUMMARY}}}
\cftsetindents{section}{0em}{2.3em}
\cftsetindents{subsection}{0em}{2.3em}
\cftsetindents{subsubsection}{0em}{2.3em}
\renewcommand\cftsecnumwidth{35pt}
\renewcommand\cftsubsecnumwidth{35pt}
\renewcommand\cftsubsubsecnumwidth{35pt}
\renewcommand\cftbeforesecskip{0pt}
\renewcommand\cftsecafterpnum{\vskip0pt}
\renewcommand\cftsubsecafterpnum{\vskip0pt}
\renewcommand\cftsubsubsecafterpnum{\vskip0pt}
\renewcommand\cftsubsecfont{\bfseries}
\begin{document}
\tableofcontents
\section{A section}
\subsection{A subsection}
\subsubsection{A subsubsection}
\section*{Another section}
\addcontentsline{toc}{section}{\numberline{}Another section}
\subsection*{Another subsection}
\addcontentsline{toc}{subsection}{\numberline{}Another subsection}
\subsubsection*{Another subsubsection}
\addcontentsline{toc}{subsubsection}{\numberline{}Another subsubsection}
\end{document}
这可以自动化,使用xparse
,例如。下面是如何对 进行操作\section
:
\usepackage{xparse}
\let\oldsection\section
\RenewDocumentCommand{\section}{s o m}{%
\IfBooleanTF{#1}%
{\oldsection*{#3}% \section*
\IfNoValueTF{#2}
{\addcontentsline{toc}{section}{\numberline{}#3}}% \section*{}
{\addcontentsline{toc}{section}{\numberline{}#2}}}% \section*[]{}
{\IfNoValueTF{#2}% \section
{\oldsection{#3}}% \section{}
{\oldsection[#2]{#3}}}% \section[]{}
}
类似方法也适用于其他部门单位。
答案2
我会等待更好的答案,但在 LaTeX 向导想出一些神奇的东西之前,您可以尝试这个(使用包titletoc
):
\documentclass{article}
\usepackage{titletoc}
\newlength{\mytocsep}
\setlength{\mytocsep}{1.5em}
\titlecontents{section}[0pt]{\addvspace{1pc}\bfseries}{\contentslabel{\mytocsep}}{}
{\titlerule*[0.5pc]{-}\contentspage}
\newcommand{\myunnumberedsection}[1]{\addcontentsline{toc}{section}{#1}%
\section*{#1}}
\begin{document}
\tableofcontents
\section{one}
\section{two}
\section{three}
\myunnumberedsection{No Numbered}
\section{Try again}
\end{document}
即我定义了一个名为 的新命令,\myunnumberedsection
它可以执行您要求的操作。调整 的值\mytocsep
以设置 ToC 中的水平分隔符。
答案3
您可以使用和命令KOMA-Script
来实现这一点。这里是 MWE。\addchap
\addsec
\documentclass[
toc=flat, % all numbers should be aligned left
toc=indenttextentries,
]{scrartcl}
\begin{document}
\tableofcontents
\noindent\rule{\textwidth}{1pt}
\section{section 1}
\subsection{subsection 1}
\subsubsection{subsubsection 1}
\section{section 2}
\addsec{section 3}
\addsec{section 4}
\end{document}