我正在使用 a0poster 包创建尺寸为 90x100 cm^2 的海报。要将文本放在页面上,我使用\textblock
命令。现在,我想将几个块组合在一起。显而易见的选择是使用tikz
。然而,这失败了。例如,考虑以下
\begin{tikzpicture}
\node (a) at (0,0) {a};
\node (b) [left=50cm of a] {b};
\node (c) [right=10cm of a] {c};
\end{tikzpicture}
a
当我在文本块内应用它时,它不会c
出现在页面上。当我在文本块外使用它时,节点位置会以不可预测的方式发生变化。如果我尝试使用
\begin{tikzpicture}
\node (a) at (current page) {a};
\node (b) [left=50cm of a] {b};
\node (c) [right=10cm of a] {c};
\end{tikzpicture}
结果基本相同,主要特点是位置不是恒定的。事件使用current page.center
不是恒定的,这对我来说是一种缓冲。
那么,我如何在海报上的两个定点之间画一条线呢?
答案1
我认为这并不复杂。您必须使用适当的坐标和remember picture,overlay
选项:
\documentclass{a0poster}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{blindtext}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\draw[red,line width=5pt] (20,-20) -- (40,-20); %% one line
\draw[green,line width=5pt] (50,-40) -- (50,-80); %% another line
\draw[blue,line width=5pt] ($(current page.north west)+(40cm,-50cm)$) -- ($(current page.north west)+(80cm,-50cm)$); %% one more line
\end{tikzpicture}
\Blinddocument
\end{document}
另一个例子:
\documentclass{a0poster}
\usepackage{tikz}
\usetikzlibrary{calc,positioning}
\usepackage{blindtext}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\node (a) at ($(current page.north west)+(90cm,-50cm)$) {a};
\node (b) [left=50cm of a] {b};
\node (c) [right=10cm of a] {c};
\draw[red,line width=5pt] (a) -- (b); %% one line
\draw[green,line width=10pt] (a) -- (c); %% one line
\end{tikzpicture}
\Blinddocument
\end{document}