我正在尝试实现此解决方案使用时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}