答案1
这titlesec
软件包内置了此功能。以下是示例:
\documentclass{article}
\usepackage{titlesec}
\titleformat{\section}[frame]
{\normalfont} {} {5pt} {\Large\bfseries\filcenter\thesection.\quad}
\begin{document}
\section{A section}
\end{document}
如果这不是您想要的,您可能应该结合使用该包mdframed
来修改您的章节,因为它提供了一个简单但功能强大的系统来修改所有章节标题。
答案2
通过重新定义整体,可以非常实际地修改分段表示\section
。Vincent Zoonekynd 的LaTeX 网站部分内容确实如此,并提供了 37 种不同的部分定义,包括标题框架。并不总是像使用包那样漂亮/干净(如其他答案中所述),但它确实让用户可以控制排版的每个细节。
以下是 MWE 形式的示例 31,经过修改以使用lipsum
:
\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/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{%
\fbox{%
\hbox to 1cm{\hss\bfseries\Large\thesection.\ }%
\vtop{%
\advance \hsize by -1cm
\advance \hsize by -2\fboxrule
\advance \hsize by -2\fboxsep
\parindent=0pt
\leavevmode\raggedright\bfseries\Large
#2
}%
}}\nobreak
\vskip 2mm\nobreak
\addcontentsline{toc}{section}{%
\protect\numberline{\thesection}%
#1}%
\ignorespaces
}
\def\unnumberedsectionwithtwoarguments[#1]#2{%
\ifhmode\par\fi
\removelastskip
\vskip 3ex\goodbreak
% \refstepcounter{section}%
\hbox to \hsize{%
\fbox{%
% \hbox to 1cm{\hss\bfseries\Large\thesection.\ }%
\vtop{%
% \advance \hsize by -1cm
\advance \hsize by -2\fboxrule
\advance \hsize by -2\fboxsep
\parindent=0pt
\leavevmode\raggedright\bfseries\Large
#2
}%
}}\nobreak
\vskip 2mm\nobreak
\addcontentsline{toc}{section}{%
% \protect\numberline{\thesection}%
#1}%
\ignorespaces
}
\makeatother
\pagestyle{empty}
\begin{document}
\section*{Introduction}
\lipsum[1]
\section{Suite}
\lipsum[2]
\section{Suite}
\lipsum[3]
\section{Fin}
\lipsum[4]
%\tableofcontents
\end{document}
答案3
如果你还需要版本\Section*
,那么定义必须扩展
\documentclass{article}
\usepackage{mdframed}
\makeatletter
\newcommand\Section[2][]{\begin{mdframed}[linewidth=5pt]%
\ifx\relax#1\relax\section{#2}\else\section[#1]{#2}\fi
\end{mdframed}}
\makeatother
\begin{document}
\Section{A section}
\end{document}