标题说的差不多。最简单的描述,我有两个背景,一个用于奇数页(pageBGRight.png),另一个用于偶数页(pageBGLeft.png)。我的直觉是它需要某种形式的 If 语句,但我似乎以一种我无法理解的方式搞错了语法。如果有人能看一下,我将不胜感激。
哦,我正在使用较旧的“AddEverypageHook”,因为我使用的系统尚未安装最新版本的 Latex,而且我没有权限自行更新它。谢谢!
\AddEverypageHook{\ifodd\value{page}\relax{shipout/background}{%
\put (0in,-\paperheight){\includegraphics[width=\paperwidth,height=\paperheight]{pageBGRight}}%
}
\else
{shipout/background}{%
\put (0in,-\paperheight){\includegraphics[width=\paperwidth,height=\paperheight]{pageBGLeft}}%
}
\fi}
答案1
texdoc source2e
有 1,110 页的内容,你可能不知道。特别是这一篇:
然而,大多数用例一切尝试将一些图片或文本放入页面的背景或前景,今天只需使用
shipout/background
和shipout/foreground
挂钩即可完成,无需任何编码。
您在某种程度上使用了钩子,但实际上并不是这样,因为字符串并没有什么神奇之处shipout/background
,只是把它放在那里就是告诉 LaTeX 排版该字符串。
相反你应该可以写:
\AddToHook{shipout/background}{
\put(0in,-\paperheight){%
\ifodd\value{page}\relax
\includegraphics[width=\paperwidth,height=\paperheight]{pageBGRight}%
\else
\includegraphics[width=\paperwidth,height=\paperheight]{pageBGLeft}%
\fi
}
}
\ifodd
还请注意,我通过尽可能深入地移动到代码中来简化代码。
啊,但我知道你认为你被迫使用\AddEveryPageHook
。假设上述方法不起作用,source2e 文档说:
\AddEverypageHook{
⟨代码⟩}
≡\AddToHook{shipout/background}{\put(1in,-1in){
⟨代码⟩}}
因此,有了这些知识,我们可以替换\AddToHook{shipout/background}
,AddEveryPageHook
然后我们可能需要调整上面命令中的值\put
来修复定位。¹
- 如果没有至少一个脚注,这真的是我的答案吗?那么很好:鉴于我还没有尝试过你的代码,我认为你可能不得不调整即使在规范的 LaTeX 钩子版本中的值。
答案2
没关系,我解决了。我不得不从头开始,使用稍微不同的方法,但我成功了。对于那些感兴趣的人,这就是我所做的:
\backgroundsetup{
scale=1,
opacity=1,
angle=0,
color=black,
contents={%
\ifodd\value{page}
\includegraphics[width=\paperwidth]{pageBGRight.png}
\else
\includegraphics[width=\paperwidth]{pageBGLeft.png}
\fi}}
我不得不使用后台包,但是它完成了工作。