在下面的代码中,我希望当黄色框的行数增加时,其高度会自动增加。有什么办法吗?
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[overlay,remember picture]
\fill[yellow]([yshift=-4cm]current page.north west) rectangle
([yshift=-5cm]current page.north east) node[pos=.5, red,align=center] { Test\\ Foo\\Bar};
\end{tikzpicture}
\end{document}
答案1
这是一个解决方案
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[overlay,remember picture]
\node[fill=yellow, text=red, minimum width=\paperwidth, left, align=center, yshift=-4cm]
at (current page.north east){ Test\\ Foo\\Bar};
\end{tikzpicture}
\end{document}
答案2
不要绘制矩形,只需使用一个tikz
node
:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[overlay,remember picture]
\node
[fill=yellow,yshift=-4cm,align=center,text width=\paperwidth]
at (current page.north) { Test\\ Foo\\Bar};
\end{tikzpicture}
\end{document}
仅使用一个节点和一个位置也xshift
更有yshift
意义,可以更容易地设置与页面顶部的距离。
这使得TikZ
您可以完成所有尺寸调整,并简化代码以保持其清晰和可维护。
答案3
更新:在这种情况下,touhami 和 Ryan 提供的解决方案要简单得多(因此要好得多)。我留下这个答案,希望它能帮助遇到其他类似问题的人。
检查此解决方案是否具有您正在寻找的功能。这个想法是首先定义一个辅助节点 T,其中包含您要显示的文本。该辅助节点允许将黄色矩形的左上角定义为
[yshift=5pt]current page.west |- T.north
即文本上方 5pt 处的水平线与页面左边缘的交点(右下角也类似)。我将辅助节点中的文本设置为白色,但它无论如何都会被黄色矩形覆盖。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\def\mytext{Test\\foo\\bar\\baz\\foofoo}
\begin{tikzpicture}[overlay,remember picture]
\node[align=center,white] (T) at (0,0) {\mytext};
\fill[yellow]([yshift=5pt]current page.west |- T.north)
rectangle ([yshift=-5pt]current page.east |- T.south)
node[pos=.5, red,align=center] (T) {\mytext};
\end{tikzpicture}
\end{document}