我正在尝试使用该titlesec
包来实现这一点,但我不确定语法应该是什么......
\usepackage{titlesec}
\newcommand{\centeredsection}{\titleformat{\section}{\centering}}
感谢您的帮助。
答案1
如果希望所有章节标题居中,只需使用星号形式即可,\titleformat
如下所示:
\titleformat*{\section}{\centering\normalfont\Large\bfseries}
梅威瑟:
\documentclass{article}
\usepackage{titlesec}
\titleformat*{\section}{\centering\normalfont\Large\bfseries}
\begin{document}
\section{test}
Some text
\end{document}
输出:
相反,如果您尝试创建一个具有居中标题的新分段命令,则不能以这种方式完成(假设您正在使用该类article
):
\makeatletter
\newcommand\centeredsection{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\centering\normalfont\Large\bfseries}}
\makeatother
梅威瑟:
\documentclass{article}
\makeatletter
\newcommand\centeredsection{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\centering\normalfont\Large\bfseries}}
\makeatother
\begin{document}
\centeredsection{Centered section}
Some text
\section{Normal section}
Some text
\end{document}
输出:
答案2
这是这样做的titlesec
\documentclass{article}
\usepackage{titlesec,showframe}
\titleformat{\section}[block]
{\filcenter\Large
\normalfont\bfseries}
{\thesection}{0.5em}{}
\titlespacing*{\section}
{5pc}{*2}{*2}[5pc]
\begin{document}
\section{test}
Some text
\end{document}
和sectsty
:
\documentclass{article}
\usepackage{sectsty,showframe}
\sectionfont{\centering}
\begin{document}
\section{test}
Some text
\end{document}
如果你想定义一个居中的新部分命令,这不是办法。但下面是一个这样做的例子。
\documentclass{article}
\usepackage{showframe}
\usepackage{etoolbox}
\usepackage{letltxmacro}
%%make \section centered
\patchcmd{\section}{\normalfont}{\centering\normalfont}{}{}
%% assign \section to \centeredsection
\LetLtxMacro{\centeredsection}{\section}
%% revert \centering from regular section
\patchcmd{\section}{\centering\normalfont}{\normalfont}{}{}
\begin{document}
\centeredsection{Centered section}
Some text
\section{Normal section}
Some text
\end{document}