重新定义回忆录部分以允许图像

重新定义回忆录部分以允许图像

我正在准备一本包含 的书memoir。这本书有三个部分。我想将部分标题凸起并在标题正下方插入一张图片。我能够将部分标题凸起到页面的上部并添加图片,但图片落在以下(通常是空白的)页面上(见下面的最小示例)。

我怎样才能使图像出现在与零件标题相同的页面上,并直接出现在其下方?

以下是最小示例:

\documentclass[12pt,letterpaper]{memoir} %
\usepackage[T1]{fontenc}
\usepackage{eso-pic}
\usepackage[english]{babel}
\usepackage[demo]{graphicx}


\makeatletter
\renewcommand*{\beforepartskip}{\null\vskip-2cm}
\renewcommand*{\afterpartskip}{\par\vskip-5cm%
\@afterindentfalse\@afterheading}
\makeatother


\begin{document}

% \frontmatter
%
%
% \mainmatter

\part{This is the first part}
\AddToShipoutPicture*{%
% By default, eso-pic's zero coordinate is in the lower left corner
\put(\LenToUnit{3.5in},\LenToUnit{5.5in}){%
\includegraphics[height=25mm,keepaspectratio]{figs/PA-500942}%
}
}

\part{This is the second part}

\end{document}

答案1

使用与此问题相同的技术将图形添加到零件页面这样做更容易memoir

\includegraphics首先,我们定义一个命令来设置每个部分的图像名称。此命令采用与包中的命令相同的参数graphicx。然后我们将图像添加到memoir\printparttitle命令中。您可以使用\vfil命令来根据需要更改垂直间距。

\documentclass{memoir}
\usepackage[demo]{graphicx}
\makeatletter
% define a user command to choose the image
% this command also creates an internal command to insert the image
\def\@partimage{}
\newcommand{\partimage}[2][]{\gdef\@partimage{\includegraphics[#1]{#2}}}
\renewcommand{\printparttitle}[1]{\parttitlefont #1\vfil\@partimage\vfil\gdef\@partimage{}}
\makeatother
\begin{document}
\partimage{foo.png}
\part{A part}
\partimage[width=\textwidth]{bar.png}
\part{Another part}
\end{document}

第一部分页面的输出

答案2

这不是答案,而是我对@Alan Munn 答案的评论的后续。我将其作为答案,以便可以包含代码示例。

我的问题不是我使用了该subfiles软件包,而是我没有总是在部件页面中添加图像。这是一个简化的示例:部件页面包含一个图像,并且其工作方式与宣传的一致(实际上与 Alan 的示例相同):

\documentclass{memoir}
\usepackage[demo]{graphicx}

\makeatletter
% define a user command to choose the image
% this command also creates an internal command to insert the image
\newcommand{\partimage}[2][]{\gdef\@partimage{\includegraphics[#1]{#2}}}
\renewcommand{\printparttitle}[1]{\parttitlefont #1\vfil\@partimage\vfil}
\makeatother

\begin{document}
\partimage{foo.png} % this works beautifully!
\part{A part}
Lorem ipsum.
\end{document}

但是,如果我注释掉\partimage命令,因为我不想向零件页面添加任何图像:

...
\begin{document}
%%%%% \partimage{foo.png}
\part{A part}
Lorem ipsum.
\end{document}

然后我收到以下错误:

! Undefined control sequence.
\printparttitle ...ttitlefont #1\vfil \@partimage 
                                                  \vfil 
l.15 \part{A part}

这可能是因为\printparttitle期望一个\partimage,或者在我看来是这样(如果我错了,请纠正)。

由于我是 LaTeX 新手,我无法提出一个优雅的解决方案。可能的破解方法:可以\partimage{some_dummy_image.jpg}使用 10x10 像素白框作为虚拟图像来调用。或者可以重写命令\partimage,使其在调用时不执行任何操作\partimage{}(由于缺乏知识,我无法做到这一点)。

总结:如果你总是用图像装饰零件页面。

相关内容