删除目录中的数字,但保留文本的位置

删除目录中的数字,但保留文本的位置

我正在尝试删除目录(以及章节)上的编号,但保留章节名称的位置,如下图所示:

在此处输入图片描述

然后它看起来就像这样:

在此处输入图片描述

我试过了\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}

该图显示了上述代码的结果

相关内容