如何将文本块放置在背景图像上方?

如何将文本块放置在背景图像上方?

我正在尝试实现此解决方案使用时textpos,stextblock*似乎位于“背景”图像下方,而不是上方。可以解决这个问题吗?

一个简单的例子是:

\documentclass[a4paper,landscape]{article}

\usepackage{lipsum, tikz}

\usepackage[absolute]{textpos}

\usepackage{eso-pic}
\newcommand\BackgroundPic{%
  \put(0,0){
    \parbox[b][\paperheight]{\paperwidth}{
      \includegraphics[width=\textwidth]{somepic.png}
    }
  }
}

\begin{document}
\AddToShipoutPicture*{\BackgroundPic}

\textblockcolour{black}

\begin{textblock*}{10cm}(2cm, 2cm)
Invisible \lipsum[1]
\end{textblock*}

\end{document}

答案1

尝试

\usepackage[absolute,overlay]{textpos}

覆盖选项是为这种情况设计的,其中其他包使用相同的\shipout机制,并将内容放在该包生成的框的“顶部” textpos

[覆盖] 使用绝对定位模式时,文本块将放置在页面上的任何其他文本下方。这通常是您想要的,但如果您有页面内容,并且它们包含遮挡文本块的内容(例如,不透明颜色块),则定位的文本框会消失。在这种情况下,请指定选项 [覆盖],以要求定位的文本块覆盖任何其他页面内容,而不是被覆盖。

答案2

ConTeXt 解决方案:

\usemodule [visual]

\definelayer 
  [fullpage] 
  [x=0mm, y=0mm, width=\paperwidth, height=\paperheight]

\setlayer [fullpage]
  [hoffset=0mm,voffset=0mm]
  {\externalfigure[mill][height=\paperheight,page=1]}

\setupbackgrounds [paper] [background=fullpage]

\starttext
   \framed[background=color,backgroundcolor=yellow,align=normal]
     {\fakewords{60}{80}}
\stoptext

编译结果

答案3

我无法textblock*实现你的目标,因此我使用everypage包编写了一个替代方案\mytextblock}{width}{x-pos}{y-pos}{content}

背景是用 插入的\atxy{xpos}{ypos}{content}

当前实施仅支持每页一种文本块颜色。如果足够,请告诉我。

在 MWE 中,放置背景图像后,我放下两个文本块,第二个文本块(的\lipsum[3])位于的实际化身的正下方\lipsum[3],以便人们可以观察到尺寸匹配。

关于 real,我不清楚的一件事textblock是它应该覆盖还是隐藏在实际页面内容之下。在我的实现中,它隐藏在实际页面内容之下。如果这是不正确的行为,那么我的努力就白费了。

\documentclass[a4paper,landscape]{article}
\usepackage{lipsum,everypage,xcolor,graphicx}
\def\PageTopMargin{1in}
\def\PageLeftMargin{1in}
\newcommand\atxy[3]{%
 \AddThispageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+#1\relax}%
  \raisebox{\dimexpr\PageTopMargin+\voffset-#2\relax}{#3}}}}
\newsavebox\blockbox
\newcommand\mytextblock[4]{%
  \savebox\blockbox{\parbox[b]{#1}{#4}}%
  \atxy{#2}{#3}{%
    \textcolor{\themytextblockcolor}{\rule[-\ht\blockbox]{\wd\blockbox}{\ht\blockbox}}}%
}
\newcommand\mytextblockcolor[1]{\edef\themytextblockcolor{#1}}
\mytextblockcolor{black}
\begin{document}
\atxy{0pt}{\paperheight}{\includegraphics[width=\paperwidth]{example-image}}
\mytextblockcolor{green}
\mytextblock{10cm}{2cm}{2cm}{\lipsum[1]}
\mytextblock{\textwidth}{8.75cm}{12.65cm}{\lipsum[3]}

\lipsum[1-3]

\end{document}

在此处输入图片描述

相关内容