tikz 中的页面限制

tikz 中的页面限制

使用 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}

相关内容