在重新定义 \section 时,在页面开头添加垂直空间时出现虚假空白

在重新定义 \section 时,在页面开头添加垂直空间时出现虚假空白

作为后续问题双面布局的全宽部分标题我还想询问新页面上的垂直间距。这个想法是,章节标题的顶部元素从页面中间某处开始,下一页上的文本块从同样低的位置开始。MWE

\documentclass{article}
\usepackage{changepage}
\usepackage[paperwidth=483pt, paperheight=682pt, left=40pt, top=40pt, textwidth=283pt, marginparsep=20pt, marginparwidth=100pt, textheight=51\baselineskip, footskip=40pt]{geometry}
\usepackage[explicit]{titlesec}%
\newdimen\mydimen
\mydimen=0pt
\titleformat{name=\section}%
{}%
{}%
{0pt}%
{%
  \thispagestyle{empty}%
  \vspace*{\mydimen}
  \begin{adjustwidth*}{0pt}{\dimexpr\marginparwidth+\marginparsep\relax}%
  %
  \begin{minipage}[t][.8\textheight]{\linewidth}
  x
  \end{minipage}
  \end{adjustwidth*}%
  }[\clearpage
  \vspace*{\mydimen}
  ]%
\begin{document}
\section{x}
x
\clearpage
\noindent x
\end{document}

直观上应该得到这样的结果:页面顶部的所有三个 x 都是垂直对齐的,也是水平对齐的。但似乎并非如此(不知为何)。我如何才能在这里对齐所有三个 x?

答案1

您不需要adjustwidth:只需定义一个足够宽的迷你页面并将其放在零宽度框中。

接下来,将的间距设置为零,\section除了最后一个必须为的-\baselineskip

\documentclass[draft]{article}
\usepackage[showframe]{geometry}

\usepackage[explicit]{titlesec}

\newlength\mydimen

\titleformat{name=\section}
  {}
  {}
  {0pt}
  {%
   \thispagestyle{empty}%
   \vspace*{\mydimen}%
   \makebox[0pt][l]{%
     \begin{minipage}[t][.8\textheight]{\dimexpr\textwidth+\marginparwidth+\marginparsep}
     x
     \end{minipage}%
   }
  }
  [\clearpage\vspace*{\mydimen}]
\titlespacing*{\section}{0pt}{0pt}{-\baselineskip}

\begin{document}
\section{x}
x
\clearpage
\noindent x
\end{document}

我看不出 的作用是什么\mydimen

相关内容