10 如何局部的插入空白页?

发布于 2024-12-26 23:56:29
配置:Windows11; TeXLive2024; VSCode; XeLaTeX

问题背景

在学位论文中会有这么一种要求:中文摘要单页打印,英文摘要及其往后部分双面打印。

对此,想通过在中文摘要部分穿插生成空白页的方式,实现“又单又双”的效果。

问题描述

如何在局部穿插生成空白页?

已尝试过的方案

  1. 使用 atbegshi 宏包:
    tse 上的一个方案(来源),但其只能对全文生效、无法设置作用域。

    更确切的:无法在某个位置stop。其提供的 \AtBeginShipoutDiscard 命令会吞掉往后的所有内容。
  2. 使用钩子 \shipout
    不懂怎么写它对 page 的控制...

MWE

\documentclass{article}
\usepackage{lipsum,zhlipsum}

\begin{document}

% 中文摘要部分间隔生成空白页
\begin{abstract}
\zhlipsum
\end{abstract}

% 英文摘要及其往后则恢复正常
\begin{abstract}
\lipsum
\end{abstract}

% ...

\end{document} 

查看更多

关注者
0
被浏览
246
Sagittarius Rover
我要成为TikZ糕手/(ㄒoㄒ)/~~

Thanks to deepseek(AI论坛秀了属于是),我在他给的答案基础上修改了一下,应该可以满足需求:

\documentclass[fontset=ubuntu]{ctexart}
\usepackage[margin=1in]{geometry}
\usepackage{lipsum,zhlipsum}
\usepackage{atbegshi}
\newif\ifinsertblankpage
\insertblankpagefalse

\let\oldabstract\abstract
\let\endoldabstract\endabstract
% 定义英文摘要环境
\newenvironment{enabstract}{%
  \renewcommand\abstractname{Abstract}
  \oldabstract
}{%
  \endoldabstract \newpage
}
% 定义中文摘要环境,并启用插入空白页
\newenvironment{cnabstract}{%
  \renewcommand\abstractname{摘要}
  \insertblankpagetrue % 启用插入空白页
  \oldabstract
}{%
  \endoldabstract \newpage
  \insertblankpagefalse % 关闭插入空白页
}
% 页面输出钩子:在中文摘要的每一页后插入空白页
\AtBeginShipout{%
  \ifinsertblankpage
    \AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox % 输出当前页
    \AtBeginShipoutOriginalShipout\null % 输出空白页
  \fi
}

\begin{document}

% 中文摘要部分:每一页后自动插入空白页
\begin{cnabstract}
\zhlipsum[1-8] % 生成多页中文摘要
\end{cnabstract}

% 英文摘要及其往后部分:正常双面打印
\begin{enabstract}
\lipsum[1-12] % 生成多页英文摘要
\end{enabstract}

\end{document}

上述代码的效果是:
image.png

不过上面的代码会报一个警告:

LaTeX: Ignoring void shipout box.
               The shipout box was voided by hook code.

应该是\AtBeginShipoutOriginalShipout\null导致的,不过你原问题中atbegshi宏包作者Heiko Oberdiek都用了类似的实现,想来不是什么问题。

2 个回答
LaTeXStudio
LaTeXStudio 6天前
这家伙很懒,什么也没写!

如果这样你还不如自己直接 \newpage\null\newpage 自己随意插入空白页。你就一个地方加。最怕的是 你 摘要 是 chapter 定义的,那就要自己单独定义一个 Nchapter 啥的,也可以实现类似效果。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览