修改 Tufte-book 使每章的第一页不同

修改 Tufte-book 使每章的第一页不同

我刚刚接触 LaTeX,所以如果这个问题比较愚蠢,我深感抱歉。

我正在研究一个tufte-book在几个方面做了细微修改的课程。有一件事我还没想明白该怎么做,那就是我希望每章的第一页都是全宽的,而不是留有很大的边距注释空间。

tufte fullwidth环境要求我手动选择该页面上的文本,并且该环境还会对表格等产生粗略的影响。

我认为最好的方法可能是使用fancyhdr包,因为每章的第一页都有与其他章节不同的样式。但这似乎超出了fancyhdr的能力。

我该如何做呢?

谢谢。

答案1

以下是部分解决方案。请注意,第一页底部的段落在流到第二页时不会重新换行。这是因为 TeX 直到排版整个段落后才确定在哪里插入分页符。有几种可能的选项可以解决此问题:

  • 您可以通过插入来手动触发分页符\clearpage
  • 您可以尝试使用\parshape,但这很麻烦。在我完成文本编辑之前,我不会尝试这个。
  • 您可以尝试使用类似的包mdframed它测量页面上剩余的空间量,排版适合的段落部分,然后在下一页排版段落的剩余部分。\afterpage但这可能会干扰宏。

以下是一个示例文档:

\documentclass{tufte-book}

% Redefine the \chapter macro to use different
% page margins for the first page.
\usepackage{afterpage}
\makeatletter
\renewcommand{\chapter}{%
  \if@openright\cleardoublepage\else\clearpage\fi
  % Remove the margin notes area
  \newgeometry{%
    width={\textwidth+\marginparsep+\marginparwidth},
    marginparsep=0pt,
    marginparwidth=0pt,
  }%
  \thispagestyle{plain}%
  \global\@topnum\z@
  \@afterindentfalse
  % Restore the margin notes area
  \afterpage{\aftergroup\restoregeometry}%
  \secdef\@chapter\@schapter}
\makeatother

\usepackage{lipsum}% dummy text
\geometry{showframe}% visualize the margins

\begin{document}

\chapter{First chapter}

% Note how the paragraph at the bottom of the
% first page doesn't rewrap when it flows to
% the second page.
\lipsum[1-8]

\chapter{Second chapter}

% To work around that problem, we can manually
% insert a page break. Hackish, but it works.
\lipsum[1-4]
\clearpage
\lipsum[5-8]

\end{document}

相关内容