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}
上述代码的效果是:
不过上面的代码会报一个警告:
LaTeX: Ignoring void shipout box.
The shipout box was voided by hook code.
应该是\AtBeginShipoutOriginalShipout\null
导致的,不过你原问题中atbegshi宏包作者Heiko Oberdiek都用了类似的实现,想来不是什么问题。
问 如何局部的插入空白页?