背景图像命令在双栏文章中有效,但在回忆录中无效

背景图像命令在双栏文章中有效,但在回忆录中无效

以下示例运行良好并正确放置了我选择的背景图像:

\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}

如果我从 切换articlememoir然后我收到以下错误:

! A <box> was supposed to be here.

另一方面,如果memoir不使用,它确实有效twocolumn

有人知道原因/解决方法吗?

答案1

因此,这是由于以其他方式memoir加载mparhacktwocolumn,边缘内容的放置并不总是可信的(因为确定我们是否在第一列或第二列的机制并不总是可信的)。

不幸的是,在模式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

相关内容