以下示例运行良好并正确放置了我选择的背景图像:
\documentclass[twocolumn]{article}
\usepackage{graphicx}
\usepackage{lipsum}
\AddToHook{shipout/background}{
\put(0in,-\paperheight){%
\includegraphics[width=\paperwidth,height=\paperheight]{imagefilename}}}
\begin{document}
\lipsum[1-5]
\end{document}
如果我从 切换article
到memoir
然后我收到以下错误:
! A <box> was supposed to be here.
另一方面,如果memoir
不使用,它确实有效twocolumn
。
有人知道原因/解决方法吗?
答案1
因此,这是由于以其他方式memoir
加载mparhack
包twocolumn
,边缘内容的放置并不总是可信的(因为确定我们是否在第一列或第二列的机制并不总是可信的)。
不幸的是,在模式mparhack
下与内核钩子的交互很糟糕twocolumn
。它也发生在book
你可以禁用mparhack
通过加载
\makeatletter
\disable@package@load{mparhack}{}
\makeatother
\documentclass[twocolumn]{memoir}
我需要重新考虑是否应该继续mparhack
以双列模式加载,而是让用户在需要时自行加载。
正如在关于该问题的其他帖子中提到的,这是由于mparhack
更改了宏而导致的,它们不应该更改。尤其\includegraphics
不喜欢这种更改。为了生存,mparhack
将图像存储在一个框中,然后使用该框。
\newsavebox\mybox
\sbox\mybox{\includegraphics....}
...
\usebox\mybox
答案2
虽然这不是答案,但也许可以帮助其他人找到答案。
% memimageprob.tex SE 636170
%\documentclass[twocolumn]{article}
\documentclass[twocolumn]{memoir}
%\documentclass{memoir}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{mwe} %% among other things, provides images
\AddToHook{shipout/background}{
\put(0in,-\paperheight){%
% \includegraphics[width=\paperwidth,height=\paperheight]{imagefilename}}}
%%% use an image available to everyone
\includegraphics[width=\paperwidth,height=\paperheight]{example-image-a}}}
\begin{document}
\lipsum[1-5]
\lipsum[6-10]
\end{document}
课堂上一切都进行得很顺利article
。
但\documentclass[twocolumn]{memoir}
输入Illegal unit of measure (pt inserted)
后就q
得到了所希望的两页 pdf。
一切处理顺利\documentclass{memoir}
,没有问题。
我从来没有得到过A <box> was supposed to be here
。