如何在 pdflatex 中获取这样的章节标题
titlesec 能用吗?
% hanging chapters
\usepackage{titlesec}
\titleformat{\chapter}[hang]
{\normalfont \Large \bfseries}{\chaptertitlename\ \thechapter}{1em}{}
答案1
首先尝试使用titlesec
。无法使其按照您想要的方式工作。然后从基础开始重新定义。
解决方案
\documentclass[a4paper,12pt,oneside]{book}
\usepackage{calc}
\makeatletter
\def\@makechapterhead#1{%
\vspace*{50\p@}
\setlength{\fboxsep}{1.0mm}
\setlength{\fboxrule}{1.0mm}\noindent\fbox{%
\setlength{\fboxsep}{2.0mm}%
\setlength{\fboxrule}{0.5mm}%
\framebox[\textwidth-15.0pt][c]{\hspace*{0.25\parindent}\bfseries\MakeUppercase{\@chapapp--\thechapter\hfill#1}\hspace*{0.25\parindent}}}
\par\nobreak
\vskip 40\p@}
\makeatother
\begin{document}
\chapter{Introduction}
\chapter{My Story of Boxed Chapters}
\end{document}
调整技巧
如果您需要调整属性,请参阅以下提示。
- 要更改框宽度,请
\textwidth
在 中 进行调整\framebox[\textwidth]
。现在我假设您希望框正好是文本宽度。如果您需要更宽,则需要使用 之类的东西\framebox[1.2\textwidth]
。 - 两者
\fboxsep
和\fboxrule
控制与内容的分离以及盒子的规则厚度。请将这些值设置为符合您喜好的值。 - 我随意将单词 CHAPTER 之前和章节名称之后的空格设置为
0.25\parindent
。如有需要,请更改这些。
输出
这是输出。
警告
正如您所知,您不会使用长章节名称。
答案2
这里建议使用框架绘图包:
\documentclass[10pt]{scrreprt}
\usepackage[tikz]{mdframed}
\mdfdefinestyle{chapter}{outerlinewidth=3pt,middlelinewidth=1.5pt,innerlinewidth=1pt,%
outerlinecolor=blue!70!black,middlelinecolor=white,innerlinecolor=blue!50!black}
\makeatletter
\renewcommand*{\@@makechapterhead}[1]{%
\chapterheadstartvskip
{%
\setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}%
\normalfont\sectfont\nobreak\size@chapter{}%
\begin{mdframed}[nobreak,style=chapter]
\chapterformat\hfill\size@chapter{#1}
\end{mdframed}\par%
}%
\nobreak\chapterheadendvskip
}
\makeatother
\begin{document}
\chapter{Introduction}
\end{document}
答案3
titlesec
.tss
允许您通过提供“样式文件”来定义自己的样式:
\documentclass{report}
\usepackage{filecontents,lipsum}% http://ctan.org/pkg/{filecontents,lipsum}
\begin{filecontents*}{chapframe.tss}
% Styles
% ~~~~~~
% 1:global 2:label 3:sep 4:style 5:after 6:left 7:right 8:title
% \ttl@<shape> and \ttlh@<shape> take the following eight
% arguments:
% {format}{label}{sep}{before}{after}{left}{right}{title}
% where before and after refer to the format.
% With the option explicit, #4 contains the title and #8 is
% empty.
\gdef\ttlh@chapframe#1#2#3#4#5#6#7#8{%
\noindent%
\setlength{\fboxrule}{3\fboxrule}% Thicker outer rule
\setlength{\fboxsep}{.5\fboxsep}% Thinner gap
\framebox[\linewidth]{%
\setlength{\fboxrule}{.5\fboxrule}% Thinner inner rule
\setlength{\fboxsep}{2\fboxsep}% Thicker gap
\framebox[\dimexpr\linewidth-\fboxrule-2\fboxsep]{%
#1\strut#2\hfill#4{#8}%
}%
}%
\par%
}
\end{filecontents*}
\usepackage{titlesec}% http://ctan.org/pkg/titlesec
\titleformat{\chapter}[chapframe]
{\normalfont \Large \bfseries}{\chaptertitlename~--~\thechapter}{1em}{}
\begin{document}
\chapter{Introduction}
\lipsum[1]
\end{document}
上面我已经定义/编写了chapframe.tss
将章节设置为双框架样式。
如果您使用包选项,则可能需要调整样式explicit
。