我想在 scrbook 的每个部分页面上都添加背景图像。找到了此解决方案:如何在 scrbook 中为每个章节页面赋予自己的背景图像?来自 @crf
链接的解决方案会设置页码,所以我尝试将页面样式设置为“空”。它几乎起作用了:背景图像出现,页码消失。不幸的是,现在它在部分页面的左上角写着“纯文本”。
我在这里做错了什么?
代码:
\documentclass{scrbook}
\usepackage[%
%automark,headsepline=.5pt
]{scrlayer-scrpage}
\usepackage[ngerman]{babel}
\usepackage{blindtext,graphicx,etoolbox}
\usepackage{eso-pic}
\usepackage{calc}
\makeatletter
\providecommand{\parthook}{}
\patchcmd{\scr@startpart}{\thispagestyle}{\parthook\thispagestyle{empty}}{}{}
\newcommand{\partimage}[2][]{% \parthook[<options>]{<image>}
\renewcommand{\parthook}{% Update \parthook
\AddToShipoutPictureBG*{% Add picture to background of THIS page only
\AtTextCenter{\put(-5cm,-150){\includegraphics[width=10cm,#1]{#2}}}
}% Insert image
\renewcommand{\parthook}{}}
}% Restore \parthook
\makeatother
\begin{document}
\partimage{example-image-a}
\part{The First Part}
\blindtext[1]
\end{document}
答案1
您正在\thispagestyle
用替换\parthook\thispagestyle{empty}
,但这样做无法工作,因为 `\thispagestyle 的原始参数仍然存在。您可以使用
\parthook\@firstoftwo{\thispagestyle{empty}}
从而吞噬这一论点。
另一方面,有一种更简单的方法来设置部分页面样式,即scrbook
:
\renewcommand{\partpagestyle}{empty}
完整代码。
\documentclass{scrbook}
\usepackage[%
%automark,headsepline=.5pt
]{scrlayer-scrpage}
\usepackage[ngerman]{babel}
\usepackage{blindtext,graphicx,etoolbox}
\usepackage{eso-pic}
\usepackage{calc}
\renewcommand{\partpagestyle}{empty}
\makeatletter
\providecommand{\parthook}{}
\patchcmd{\scr@startpart}{\thispagestyle}{\parthook\thispagestyle}{}{}
\newcommand{\partimage}[2][]{% \parthook[<options>]{<image>}
\renewcommand{\parthook}{% Update \parthook
\AddToShipoutPictureBG*{% Add picture to background of THIS page only
\AtTextCenter{\put(-5cm,-150){\includegraphics[width=10cm,#1]{#2}}}%
}% Insert image
\renewcommand{\parthook}{}%
}%
}% Restore \parthook
\makeatother
\begin{document}
\partimage{example-image-a}
\part{The First Part}
\blindtext[1]
\end{document}
不过,您可以通过使用 提供的适当钩子来避免修补scrbook
。
\documentclass{scrbook}
\usepackage[%
%automark,headsepline=.5pt
]{scrlayer-scrpage}
\usepackage[ngerman]{babel}
\usepackage{blindtext,graphicx,etoolbox}
\usepackage{eso-pic}
\usepackage{calc}
\renewcommand{\partpagestyle}{empty}
\providecommand{\parthook}{}
\AddtoDoHook{heading/postinit/part}{\parthook}
\newcommand{\partimage}[2][]{% \parthook[<options>]{<image>}
\renewcommand{\parthook}{% Update \parthook
\AddToShipoutPictureBG*{% Add picture to background of THIS page only
\AtTextCenter{\put(-5cm,-150){\includegraphics[width=10cm,#1]{#2}}}%
}% Insert image
\renewcommand{\parthook}{}
}%
}% Restore \parthook
\begin{document}
\partimage{example-image-a}
\part{The First Part}
\end{document}