如何将章节编号放入 LaTeX 中章节标题的右侧?

如何将章节编号放入 LaTeX 中章节标题的右侧?

我是 LaTeX 新手,所以需要你们的帮助。

我想知道如何更改章节样式,以便将章节编号放入 LaTeX 中的章节标题右侧,尤其是回忆录类。因此,我希望它显示为 [章节编号] 章节标题 [章节编号]

例如,假设一个章节有三个部分,如第一部分、第二部分和第三部分。那么它们应该像这样出现:

1. section one 1.
1. section two 2.
1. section three 3.

有人能帮我做这件事吗?

答案1

如果你这样做不是希望章节编号位于章节标题的右侧在目录中(参见 BernS 的回答),您可以使用 titlesec 包来重新定义节标题布局:

\documentclass{memoir}

\usepackage{lipsum}

\usepackage[explicit]{titlesec}
% \titleformat{<command>}[<shape>]{<format>}{<label>}{<sep>}{<before>}[<after>]
\titleformat{\section}[hang]{\normalfont\Large\bfseries}%
    {\thechapter.}{4pt}%
    {#1 \arabic{section}.}

\begin{document}
\tableofcontents
\chapter{Chapter}
\section{Section one}
\lipsum[1]
\section{Section two}
\lipsum[2]
\section{Section three}
\lipsum[3]
\end{document}

感谢 Raphink 的回答我的问题关于我正确阅读文档时遇到的问题。请考虑对他的回答投赞成票。;-)

答案2

可以手动重新定义\section(和\section*,假设这有意义)命令来实现这一点。目前

  • \section{<sec title>}生产<chapnum> \quad <sec title> \quad <secnum>;并且
  • \section*{<sec title>}生产<chapnum> \quad <sec title>

前者在目录中生成通常的条目,因为手动重新定义\section{...}不包括 的重新定义\thesection。此外,对节的引用将默认引用为<chapnum>.<secnum>(或更具体地说是\thechapter.\arabic{section})。但是,如果需要,可以更改此行为以及节命令的行为。

基本的重新定义来自Vincent Zoonekynd 的 LaTeX 页面关于部分内容。这是一个最小的例子:

\documentclass{memoir}
\usepackage[margin=15mm]{geometry}% Page layout
\usepackage{lipsum}% Dummy text

% Taken from http://zoonek.free.fr/LaTeX/LaTeX_samples_section/0.html
\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}%
  \noindent
  \begingroup
  \leavevmode\Large\bfseries\raggedright
  \thechapter\quad 
  #2
  \quad\arabic{section}
  \par
  \endgroup
  \vskip 2ex\nobreak
  \addcontentsline{toc}{section}{%
    \protect\numberline{\thesection}% ToC entry
    #1}%
  }
\def\unnumberedsectionwithtwoarguments[#1]#2{%
  \ifhmode\par\fi
  \removelastskip
  \vskip 3ex\goodbreak
%  \refstepcounter{section}%
  \noindent
  \begingroup
  \leavevmode\Large\bfseries\raggedright
  \leavevmode\Large\bfseries\raggedright
  \thechapter\quad 
  #2
%  \quad\arabic{section}
  \par
  \endgroup
  \vskip 2ex\nobreak
  \addcontentsline{toc}{section}{%
%    \protect\numberline{\thesection}% ToC entry
    #1}%
}
\makeatother

\begin{document}
\chapter{First chapter} \lipsum[1]
\section{First section} \lipsum[2]
\section{Second section} \lipsum[3]
\section{Third section} \lipsum[4]
\section{Final section} \lipsum[5]
\end{document}

...以及相关输出:

手册部分样式

我用的是geometry包裹只是为了布局目的(所以 MWE 适合一页)和lipsum包裹用于虚拟文本。

答案3

以下内容应该看起来像您想要的那样(如文中所述,所以“[章节]”。标题[部分]。”):

\documentclass{memoir}
\usepackage{lipsum}
\usepackage[utf8x]{inputenc}

\newcommand\secstore{}
\newcommand\mythesection{\arabic{chapter}.}

\newcommand\mysection[1]{%
    \let\secstore\thesection%
    \let\thesection\mythesection%
    \section{#1 \arabic{section}.}%
    \let\thesection\secstore%
}%


\begin{document}
    \chapter{Test}

    \mysection{This is section 1}
    \lipsum[1]

    \mysection{This is section 2}
    \lipsum[2]

    \mysection{This is section 3}
    \lipsum[3]
\end{document}

如果您希望它与示例中的“[section]. 标题 [section].”相同,则应更改上面的以下命令:

\newcommand\mythesection{\arabic{section}.}

无论如何,也可以保存和重载,\section这样就不需要使用了\mysection

以下是上述解决方案提供的输出:

输出

相关内容