我想用它tikz
来绘制文档的背景baposter
。这个想法是排版一个可以以不同尺寸打印的文档,例如 A0 和 A4(至少)。
我不清楚 tikz 使用的是什么坐标。我准备了以下示例:
\documentclass[a0paper,portrait]{baposter}
\usepackage{tikz}
\begin{document}
\background{
\begin{tikzpicture}[remember picture,overlay]%
\draw[black,line width=20pt] (current page.south east) rectangle (current page.north west);
\draw[thick,green,line width=1mm] (0,0) rectangle (0,1) ;
\draw[thick,blue,line width=1mm] (1,0) rectangle (1,3) ;
\draw[thick,red,line width=1mm] (3,0) rectangle (3,30) ;
\draw[thick,yellow, line width=2mm] (current page.south west) rectangle (0.5, 0.5);
\end{tikzpicture}
}
\begin{poster}{
background=user,
eyecatcher=false,
boxColorOne=white
}
{} % eye catcher
{
\bfseries\sffamily TITLE
}
{
AUTHOR
}
{} % logo
\headerbox{intro}{name=problem,column=0,row=0,headershape=smallrounded,
headerborder=none,textborder=none}{
content
}
\end{poster}
\end{document}
其输出为:
我有三个问题:
- 如何
tikz
修复原点 (0,0)?在这种情况下,点(0,0)
不在左下角。我需要弄清楚如何使用shift
命令选项吗?还是有更简单的方法? - 我如何才能获得所选纸张尺寸的范围
x
和值(在这种情况下)?y
a0paper
- 我可以使用标准化坐标,即
[0,1]
,对于两个轴吗?
有谁能帮助我吗?
答案1
TiKZ
不固定原点。origin
仅在 内有效tikzpicture
。图片完成后,它会作为常规字符放置在它应该去的地方。
您可以shift
从某个原点获取坐标([shift={(2cm,3cm)}]current page.center)
,或者使用前一点的相对坐标++
。
纸张尺寸固定为\papaerwidth
和\paperheight
。您可以使用这些值来确定比例位置。
下面的代码中有一些例子:
\documentclass[a0paper,portrait]{baposter}
\usepackage{tikz}
\usepackage{lmodern}
\begin{document}
\background{
\begin{tikzpicture}[remember picture,overlay]%
\draw[black,line width=20pt] (current page.south east) rectangle (current page.north west);
\draw[thick,green,line width=1mm] ([shift={(1cm,1cm)}]current page.south west) rectangle ++(.2*\paperwidth,.3*\paperheight) ;
\draw[thick,blue,line width=1mm, shift=(current page.center)] (-2,-2) rectangle (2,2);
\draw[thick,red,line width=1mm] (3,0) rectangle (5,20) ;
\draw[thick,yellow, line width=2mm] (current page.south west) rectangle (0.5, 0.5);
\end{tikzpicture}
}
\begin{poster}{
background=user,
eyecatcher=false,
boxColorOne=white
}
{} % eye catcher
{
\bfseries\sffamily TITLE
}
{
AUTHOR
}
{} % logo
\headerbox{intro}{name=problem,column=0,row=0,headershape=smallrounded,
headerborder=none,textborder=none}{
content
}
\end{poster}
\end{document}