防止在节标题后出现段落中断

防止在节标题后出现段落中断

.cls我的论文文件中,我定义\subsection如下:

\newcommand{\subsection}[1]{%
  \pagebreak[2]
  \refstepcounter{subsection}
  \addcontentsline{toc}{subsection}{
    {\protect\makebox[0.3in][r]{\thesubsection.} \hspace*{3pt}#1}}
  \noindent
  \textbf{\thesubsection\space\space{#1}. }
}

然而,论文审查员告诉我,格式化小节标题的正确方法是让第一段与小节标题位于同一行。

我可以做这个工作,如果我的文件说

\subsection{A Subsection}
Lorem ipsum dolor sit amet...

排版为

3.1.1 A Subsection.  Lorem ipsum dolor sit amet...

但是,如果我在小节开头有一个空行,我无论如何都会得到一个段落。

\subsection{A Subsection}

Lorem ipsum dolor sit amet...

排版为

3.1.1 A Subsection.
    Lorem ipsum dolor sit amet...

有没有办法强制像第一个版本一样排版,即使命令后有一个空行\subsection?如果没有,至少有一种方法可以得到警告吗?

答案1

使用titlesec包重新定义您的部分:这是您的子部分样式的示例:

\usepackage{titlesec} % or RequirePackage[loadonly]{titlesec} in a cls file
\titleformat{\subsection}[runin]{\normalfont\bfseries}{\thesubsection.}{3pt}{}

请注意,如果您在类文件中执行此操作,则需要titlesec使用该[loadonly]选项进行加载,并使用它titlesec来定义您的类允许的所有分段命令。

答案2

避免段落中断的一种快速简便的方法是输入\par(这样您就处于垂直模式),然后将子节名称放入,\everypar而不是直接将其放入页面上。这样,子节名称就不会放到页面上,直到您输入一些让您回到水平模式的内容。例如,您可以使用

\newcommand{\mysubsection}[1]{%
  \par
  \pagebreak[2]%
  \refstepcounter{subsection}%
    \everypar={%
      {\setbox0=\lastbox}% Remove the indentation
      \addcontentsline{toc}{subsection}{%
        {\protect\makebox[0.3in][r]{\thesubsection.} \hspace*{3pt}#1}}%
      \textbf{\thesubsection\space\space{#1}. }%
      \everypar={}%
    }%
  \ignorespaces
}

然后说

\mysubsection{A new subsection}

Whatever whatever whatever

您就可以开始做生意了。

相关内容