使用 tikz,我从 A4 纸的一端到另一端画一条线,如下所示:
\begin{tikzpicture}
\draw (current page.south) -- (current page.north);
\end{tikzpicture}
生成的 pdf 有两页。第一页是空白的,另一页有我想要的垂直线。
此外,如果我连续画两条“极限线”,
\begin{tikzpicture}
\draw (current page.south) -- (current page.north);
\draw (current page.east) -- (current page.west);
\end{tikzpicture}
绘图后,产生了第二张空白页(因此结果是空白页-绘图-空白页)?!
我选择了memoir
包含以下geometry
套餐的课程:
\documentclass[oneside, english, 10pt, a4paper]{memoir}
\usepackage[a4paper, margin=0pt]{geometry}
我究竟做错了什么?
答案1
通常情况下,tikzpicture 中的所有内容都会被放入一个边界框中,然后 LaTeX 会像处理其他框一样处理该边界框。您唯一可以控制的就是基线。
使用overlay
类似于\smash{\rlap{...}}
将原点置于当前文本位置的基线处。它还会关闭边界框计算。
使用remember picture
将原点位置(在页面准备好发送之前是未知的)保存到辅助文件中。在下一次传递时,它会读取此值并能够确定锚点的位置(current page)
。它还会读取页面上每个其他 tikzpicture(使用)或 tikzmark 的原点位置remember picture
,并且能够确定它们的锚点的相对位置。
\documentclass[oneside, english, 10pt, a4paper]{memoir}
\usepackage[a4paper, margin=0pt]{geometry}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\draw (current page.south) -- (current page.north);
\draw (current page.east) -- (current page.west);
\end{tikzpicture}
\end{document}