我正在使用双面书籍类,带有 titlesec 包和对我的部分标题样式的重新定义。
我希望我的部分标题位于右页,并在左页后面写上一小段简介文字。这段文字不是章节,也不是目录中引用的任何内容。
我试过 :
\documentclass[twoside,12pt,openright]{book}
\usepackage{titlesec}
\titleformat{\part}[frame]
{\bfseries\Huge}
{\filright\large\enspace{\partname}\enspace}
{40pt}
{\Large\filcenter\MakeUppercase}
\begin{document}
\makeatletter
\@openrightfalse
\part{part I}
bla bla bla
\@openrighttrue
\makeatother
\end{document}
但我的部分标题在左边。
如果我做 :
\documentclass[twoside,12pt,openright]{book}
\usepackage{titlesec}
\titleformat{\part}[frame]
{\bfseries\Huge}
{\filright\large\enspace{\partname}\enspace}
{40pt}
{\Large\filcenter\MakeUppercase}
\begin{document}
\part{part I}
\makeatletter
\@openrightfalse
bla bla bla
\@openrighttrue
\makeatother
\end{document}
部分标题后有一个空白页。
任何想法 ?
答案1
\part
强制显示空白页,但您可以重新定义它以添加一些文本,例如:
\documentclass[twoside,12pt,openright]{book}
\makeatletter
\def\@endpart{\vfil\newpage
\if@twoside
\if@openright
\null
\thispagestyle{empty}%
%<<<<<<<<<<<<<<<<<<<<
\vspace*{\fill}%
\begin{quote}%
\partnote
\end{quote}%
\vspace*{\fill}%
%<<<<<<<<<<<<<<<<<<<<
\newpage
\fi
\fi
\if@tempswa
\twocolumn
\fi}
\newcommand\partnote{}
\makeatother
\begin{document}
\renewcommand\partnote{This part is about something}
\part{pone title}
bla bla bla
\end{document}
使用 titlesec 时,定义需要移动并稍微调整:
\documentclass[twoside,12pt,openright]{book}
\usepackage{titlesec}
\titleformat{\part}[frame]
{\bfseries\Huge}
{\filright\large\enspace{\partname}\enspace}
{40pt}
{\Large\filcenter\MakeUppercase}
\def\@endpart{\vfil\newpage
\if@twoside
\if@openright
\null
\thispagestyle{empty}%
%<<<<<<<<<<<<<<<<<<<<
\vspace*{\fill}%
\begin{quote}%
\partnote
\end{quote}%
\vspace*{\fill}%
%<<<<<<<<<<<<<<<<<<<<
\newpage
\fi
\fi
\if@tempswa
\twocolumn
\fi}
\newcommand\partnote{}
\begin{document}
\makeatletter
\def\ttl@page@ii#1#2#3#4#5#6#7{%
\ttl@assign\@tempskipa#3\relax\beforetitleunit
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\@ifundefined{ttl@ps@#6}%
{\thispagestyle{plain}}%
{\thispagestyle{\@nameuse{ttl@ps@#6}}}%
\if@twocolumn
\onecolumn
\@tempswatrue
\else
\@tempswafalse
\fi
\vspace*{\@tempskipa}%
\@afterindenttrue
\ifcase#5 \@afterindentfalse\fi
\ttl@assign\@tempskipb#4\relax\aftertitleunit
\ttl@select{#6}{#1}{#2}{#7}%
\ttl@finmarks
\@ifundefined{ttlp@#6}{}{\ttlp@write{#6}}%
\vspace{\@tempskipb}%
\newpage
\if@twoside
\if@openright
\null
\@ifundefined{ttl@ps@#6}%
{\thispagestyle{empty}}%
{\thispagestyle{\@nameuse{ttl@ps@#6}}}%
%<<<<<<<<<<<<<<<<<<<<
\vspace*{\fill}%
\begin{quote}%
\partnote
\end{quote}%
\vspace*{\fill}%
%<<<<<<<<<<<<<<<<<<<<
\newpage
\fi
\fi
\if@tempswa
\twocolumn
\fi
\ignorespaces}%
\makeatother
\renewcommand\partnote{This part is about something}
\part{pone title}
bla bla bla
\end{document}
答案2
我找到了一种方法,虽然不确定它是否是最好的,但它确实有效。
\documentclass[twoside,12pt,openright]{book}
\usepackage{titlesec}
\titleformat{\part}[frame]
{\bfseries\Huge}
{\filright\large\enspace{\partname}\enspace}
{40pt}
{\Large\filcenter\MakeUppercase}
\titleformat{\part}{top}
\begin{document}
\part{part I}
\clearpage
bla bla bla
\end{document}
开始\titleformat{\part}{top}
一个页面并将标题放在顶部。使用我定义的格式,它的高度是我想要的高度。然后\clearpage
创建一个新页面,我可以在其中写简介。
不太干净,但是很高效。