titlesec \clearpage 在某一部分之前

titlesec \clearpage 在某一部分之前

我正在使用该titlesec包进行切片。我希望在将其放入以下字段\clearpage之前有一个\partformat

\titleformat{command}[shape]{format}{label}{sep}{before-code}{after-code}

然后它按照我的要求进行操作,但是如果文档的最前面部分(顺便说一下,这是命令后的第一个内容\maketitle),它将插入一个空白页。这是因为,引用titlesec 文档

{format}是应用于整个标题(标签和文本)的格式。此部分可以包含垂直材料(以及带有某些形状的水平材料),这些材料排版在标题上方的空间之后

请注意“标题上方空格之后”。因此\clearpage不应将其放入该format字段。

我可以使用以下方法做我想做的事情,但要使用部分,而不是部分

\newcommand{\sectionbreak}{\clearpage}

我知道还有其他类似的命令,例如subsubsectionsubsection,但我找不到一个part有效的命令。我该怎么做?

\documentclass{article}

\usepackage{titlesec}

\titleformat{\part}[display]{\clearpage\itshape\rmfamily\raggedright}{\LARGE Part     \thepart}{0mm}{\Huge}{}
\titlespacing*{\part}{0mm}{30mm}{30mm}

\begin{document}
\part{Part test}
test text
\end{document}

答案1

更合适的方法是\clearpage插入每一个 \part重新定义\part如下:

\let\oldpart\part% Store \part in \oldpart
\renewcommand{\part}{\clearpage\oldpart}% Insert \clearpage before every \part

用这个指定。\titleformat\part

答案2

最简单的解决方案似乎是声明\part属于top某一类;然后您可以根据需要使用\partbreak和定义它:\clearpage

\documentclass{article}
\usepackage{titlesec}

\titleformat{\part}[display]
  {\itshape\rmfamily\raggedright}{\LARGE Part \thepart}{0mm}{\Huge}{}
\titlespacing*{\part}{0mm}{30mm}{30mm}
\titleclass{\part}{top}
\newcommand\partbreak{\clearpage}

\begin{document}
\part{Part test}
test text
\part{Part test}
test text
\end{document}

相关内容