在.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
您就可以开始做生意了。