修复目录中各部分与部分标题之间的间距

修复目录中各部分与部分标题之间的间距

我必须修复一个朋友用 latex 完成的作品。我几乎完成了所有工作,但有几个问题我无法修复,所以如果您能帮助我,我将不胜感激(一篇文章文档):

  • 他在目录中有 4 个深度部分,从部分到子部分。问题是它part采用罗马数字编号,在显示位置留下了一个大标题。我修复了编号,但我无法处理大标题。它显示如下:

    1
    
    Planteamiento
    
    
    1.1 Introducción
    
    (content)
    

    并且它期望的是这样的:

    1 Planteamiento
    
    1.1 Introducción
    
    (content)
    

    但我找不到重新排列部分标题的命令。我尝试将部分设置为节,将节设置为小节,将小节设置为小小节,将小小节设置为段落。但他也使用段落,我有点混乱。所以我认为最简单的方法是将其part作为“超级节”的形式包含。那么,是否有命令可以修复大部分标题?

  • 由于我在目录中添加了part编号,因此我必须修复章节编号以包含第一部分。但现在目录中的章节编号和章节名称之间没有空格。我该如何添加一些空格以使它们不那么接近?

编辑:这是我的 MWE:

\documentclass[12pt]{article}
\renewcommand{\thepart}{\arabic{part}}
\renewcommand{\thesection}{\thepart.\arabic{section}}
\renewcommand{\partname}{}

\makeatletter
\@addtoreset{section}{part}
\makeatother

\begin{document}
\tableofcontents
\newpage
\part{Big title}
\section{Lorem ipsum}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.

\section{Lorem ipsum 2}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.
\newpage
\part{Another big title}
\section{Section from big title 2}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.
\end{document}

答案1

\cftsetindents可以使用软件包中的修复来修复目录条目的问题tocloft;可以使用重新定义(或修补)来修复部分标题的问题\@part

\documentclass[12pt]{article}
\usepackage{tocloft}

\renewcommand{\thepart}{\arabic{part}}
\renewcommand{\thesection}{\thepart.\arabic{section}}
\renewcommand{\partname}{}

\makeatletter
\@addtoreset{section}{part}
\def\@part[#1]#2{%
    \ifnum \c@secnumdepth >\m@ne
      \refstepcounter{part}%
      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
    \else
      \addcontentsline{toc}{part}{#1}%
    \fi
    {\parindent \z@ \raggedright
     \interlinepenalty \@M
     \normalfont
     \ifnum \c@secnumdepth >\m@ne
       \huge\bfseries\thepart\hskip0.5em
     \fi
     \huge\bfseries #2%
     \markboth{}{}\par}%
    \nobreak
    \vskip 3ex
    \@afterheading}
\makeatother

\cftsetindents{section}{0em}{2.3em}
\cftsetindents{subsection}{2.3em}{3em}
\cftsetindents{subsubsection}{5.3em}{3.3em}

\begin{document}
\tableofcontents
\newpage
\part{Test part}
\section{Test section}
\subsection{Test subsection}
\subsubsection{Test subsubsection}

\part{Test part}
\section{Test section}
\subsection{Test subsection}
\subsubsection{Test subsubsection}

\end{document}

目录图片:

在此处输入图片描述

文档主体的图片:

在此处输入图片描述

如果您选择修补,则这是代码(代码稍微短一些):

\documentclass[12pt]{article}
\usepackage{tocloft}
\usepackage{etoolbox}

\renewcommand{\thepart}{\arabic{part}}
\renewcommand{\thesection}{\thepart.\arabic{section}}
\renewcommand{\partname}{}

\makeatletter
\@addtoreset{section}{part}
\patchcmd{\@part}{\Large}{\huge}{}{}
\patchcmd{\@part}{\partname\nobreakspace\thepart}{\thepart\hskip0.5em}{}{}
\patchcmd{\@part}{\par\nobreak}{}{}{}
\makeatother

\cftsetindents{section}{0em}{2.3em}
\cftsetindents{subsection}{2.3em}{3em}
\cftsetindents{subsubsection}{5.3em}{3.3em}

\begin{document}
\tableofcontents
\newpage
\part{Test part}
\section{Test section}
\subsection{Test subsection}
\subsubsection{Test subsubsection}

\part{Test part}
\section{Test section}
\subsection{Test subsection}
\subsubsection{Test subsubsection}

\end{document}

相关内容