如何在章节编号之前显示章节标题

如何在章节编号之前显示章节标题

默认样式是先有节号,然后是节标题,但我希望反过来。还没有找到不会给我带来奇怪错误的解决方案,所以任何帮助我都会很感激。

答案1

您可以使用titlesec包裹:

\documentclass{article} 
\usepackage[explicit]{titlesec}

\titleformat{\section}{\normalfont\Large\bfseries}{}{0em}{#1\ \thesection}

\begin{document}

\section{A Test Section} 
\section{Another Test Section} 

\end{document}

在此处输入图片描述

如果需要的话,可以对其他部分单元进行类似的重新定义。

答案2

在 ConTeXt 中你可以使用

\setuphead[alternative=command, command=\swap]
\unexpanded\def\swap#1#2{#2\space#1}

\starttext
\startTEXpage[offset=5mm]
\chapter{A chapter}
\section{A section}
\subsection{A subsection}
\stopTEXpage
\stoptext

这使

在此处输入图片描述

答案3

以下是标准类的一个例子(MWE)report。代码复制自文森特·祖尼金德并进行了修改。-class 的代码book略有不同:

\documentclass{report}

\makeatletter
\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright
    \normalfont
    \interlinepenalty\@M
    \Huge \bfseries #1 \quad
    \ifnum \c@secnumdepth >\m@ne
      \Huge\bfseries
      \thechapter
      \par\nobreak
    \fi
    \vskip 40\p@
  }}
\def\@makeschapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright
    \normalfont
    \interlinepenalty\@M
    \Huge \bfseries  #1\par\nobreak
    \vskip 40\p@
  }}
\makeatother

\begin{document}
\chapter*{Test}
\chapter{Introduction}
\end{document}

如果您使用article-class 并且只需要\section,这里有更多来自同一来源的代码,稍加修改即可满足您的需要:

\documentclass{article}
\usepackage{lipsum}

\makeatletter
\def\section{\@ifstar\unnumberedsection\numberedsection}
\def\numberedsection{\@ifnextchar[%]
  \numberedsectionwithtwoarguments\numberedsectionwithoneargument}
\def\unnumberedsection{\@ifnextchar[%]
  \unnumberedsectionwithtwoarguments\unnumberedsectionwithoneargument}
\def\numberedsectionwithoneargument#1{\numberedsectionwithtwoarguments[#1]{#1}}
\def\unnumberedsectionwithoneargument#1{\unnumberedsectionwithtwoarguments[#1]{#1}}
\def\numberedsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
  \vskip 3ex\goodbreak
  \refstepcounter{section}%
  \hbox to \hsize{%
    \vtop{\parindent=0pt \leavevmode\Large\bfseries\raggedright #2\quad\thesection\par}%
    }
  \vskip 2ex\nobreak\noindent%
  \addcontentsline{toc}{section}{%
    \protect\numberline{\thesection}%
    #1}%
  \ignorespaces}
\def\unnumberedsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
  \vskip 3ex\goodbreak
  \hbox to \hsize{%
    \vtop{\parindent=0pt\leavevmode\Large\bfseries\raggedright #2\par}%
    }
  \vskip 2ex\nobreak\noindent%
  \addcontentsline{toc}{section}{%
    #1}%
  \ignorespaces}
\makeatother

\pagestyle{empty}
\begin{document}
\lipsum[1-2]
\section*{Introduction}
\lipsum[3-4]
\section{Introduction}
\lipsum[5-6]
\end{document}

无论如何,它清楚地表明了由于titlesec和,生活变得多么简单secstyle

相关内容