我正在尝试绘制一个简单的矩形并将其放置在页面底部。由于我对 tikz 还很陌生,所以我不太清楚该怎么做。假设我希望它看起来像这个硬编码的三角形:
\tikz \fill[blue] (3,3) -- (18, 3) -- (19,4) -- cycle;
现在,我发现我需要使用节点来获取相对于页面的坐标。所以我必须定义节点并存储坐标,对吗?
\node (A) at (current page.south west) {};
\node (B) at (current page.south east) {};
\coordinate (cA) at (A) ;
\coordinate (cB) at (B);
所以我的问题是,我不知道如何指定第三个坐标,因为它们与页面无关。例如,我想要的是三角形具有给定长度的“高度”(假设为 2 厘米...)
\draw[line width=1mm] (cA) -- (cB) -- (??) -- cycle;
答案1
您缺少的关键见解是,要指定相对坐标,您可以使用++
。例如,(current page.south east)
如果您想从此点向上绘制一条 2 厘米的线,只需写入(current page.south east)--++(0,2cm)
。这意味着,从y
上一个坐标向方向移动 2 厘米,方向不变x
。
为了回到页面上方 2cm 处的坐标,(current page.south west)
我使用了-|
命令,它告诉 Ti钾Z 找到两个坐标之间的直角交点。请注意,还有一个相反的版本|-
,在本例中将返回坐标(current page.south east)
。
总而言之,这个矩形所需的路径是(current page.south west) -- (current page.south east) --++(0,2cm) -| (current page.south west) -- cycle
。所以在一个练习中,你现在已经学习了 Ti 中两个非常有用的绘图命令钾Z. 当然还有许多其他方法可以做到这一点,其中之一就是使用rectangle
John Kormylo 的回答中所示的方法。
此外,如果您希望此“页脚”出现在每一页上,那么您可以使用类似这样的方法。
我已经把 Ti钾我命名的命令中的 Z 代码\Footer
,然后使用该包atbegshi
按照说明使用该包公告/新闻通讯页面顶部和底部的 TikZ 页眉和页脚。
\documentclass[a4paper]{article}
\usepackage{tikz}
\usepackage{blindtext}
\usepackage{atbegshi}
\newcommand\Footer{%
\begin{tikzpicture}[remember picture,overlay]
\fill [remember picture,overlay,blue] (current page.south west) -- (current page.south east) --++(0,2cm) -| (current page.south west) -- cycle;
\end{tikzpicture}%
}
\pagestyle{empty}
\AtBeginShipout{\Footer}
\AtBeginShipoutFirst{\Footer}
\begin{document}
\blindtext[6]
\end{document}
答案2
不要忘记运行两次。注意:tikzpagenodes 将允许您访问页眉、页脚、文本和边距区域的位置。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\tikz[remember picture, overlay] \fill[blue] (current page.south west) rectangle ++(\paperwidth,2cm);
\end{document}