如何让 \AddToShipoutPicture* 将图像置于页面顶部?

如何让 \AddToShipoutPicture* 将图像置于页面顶部?

我有一张 PDF 图像想要用作背景,如下所示:

  • 缩放至页面宽度
  • 位于页面顶部,与两个上角齐平
  • 文档的其余部分应按正常布局

图像并未覆盖整个页面。它更像是一条横幅。

我想到了以下几点:

\documentclass{article}
\usepackage{eso-pic}
\usepackage{mwe}

\begin{document}
  \AddToShipoutPicture*{%
      \parbox[t][\paperheight][t]{\paperwidth}{%
           \includegraphics[width=\paperwidth]{example-image}
      }
  }
  The quick brown fox jumped over the lazy dogs.
\end{document}

这几乎可行,只是图像位于页面底部。我也尝试过\parbox用包裹\put(0,0){...},但没有用。如果我用 替换\includegraphics,文本会呈现在页面的最左下角。

我怎样才能使图像与左上角齐平?

答案1

使用eso-pic的内部定位机制。在这种情况下\AtPageUpperLeft

在此处输入图片描述

\documentclass{article}

\usepackage{eso-pic,graphicx}

\begin{document}

\AddToShipoutPictureBG*{%
  \AtPageUpperLeft{%
    \raisebox{-\height}{%
      \includegraphics[width=\paperwidth]{example-image}%
    }%
  }
}
The quick brown fox jumped over the lazy dog.

\end{document}

由于图像位于基线上(一般情况下),因此\AtPageUpperLeft实际上会将图像放置在页面“上方”。但是,\raisebox{-\height}会将其放在实际页面上的可见位置。

答案2

在你的序言中尝试一下

\usepackage[pscoord]{eso-pic}

这可以放在任何地方,前言或文档中的任何位置,但在第一次使用该命令之前(据我所知,在任何编程环境中)

\newcommand\BackgroundPic{%
    \put(0,0){%
        \parbox[b][\paperheight]{\paperwidth}{%
            %           \vfill
            \centering
            \includegraphics[width=\paperwidth,height=\paperheight,%
            keepaspectratio]{../IMG/imagefilename.ext}%
            \vfill
}}}

然后在文档或titlepage环境中,这

\AddToShipoutPicture*{\BackgroundPic}

相关内容