使用 Geometry 包进行 TikZ 绘图

使用 Geometry 包进行 TikZ 绘图

我有以下测试文档:

\documentclass[11pt,a4paper,landscape]{article}

\usepackage[
    left=0.500cm,
    right=0.500cm,
    top=1.00cm,
    bottom=0.800cm,
]{geometry} % turning on showframe here makes
            % the thing even more puzzling (to me)
\usepackage{tikz}

\begin{document}
    
    \thispagestyle{empty}
    \begin{tikzpicture}
        \draw (0,0) rectangle (1,1);
        \draw (2,2) rectangle (3,3);
        \draw (4,4) rectangle (5,5);
        \draw (0,0) rectangle (27.9,20);
    \end{tikzpicture}

\end{document}

我不知道的第一件事,而且我在文档中也没有找到任何线索geometry,那就是边距(top, bottom, left, right)是否与旋转的页面(因为landscape)有关,还是与原始页面有关。

不管是哪种情况,我都尝试了:从横向页面的高度和宽度中减去 1cm。这确实有所不同,但我仍然无法得到我想要的结果:一个矩形,它距离顶部和底部恰好 0.5cm,距离右侧和左侧恰好 1cm 和 0.8cm。当前的矩形(27.9 和 20;我尝试了其他值)只是到达页面的最底部,并没有停在距离纸张边缘 0.5cm 的位置。

当然,我可以使用 TikZ 的页面锚点来做到这一点,但我不知道它们到底有多大,以及它们与几何边距有何关系,如果知道这些就好了。

答案1

我认为您错过的第一件事就是\noindent将整个 tikz 图片向右移动15pt,即~ 0.5cm

还有其他额外的间隙,例如\topskip在第一行之前添加的和lineskip。添加\vspace*{-\topskip}和之后\nointerlineskip,tikz 图片似乎已经到位

在此处输入图片描述

\documentclass[11pt]{article}

\usepackage[
    left=0.5cm,
    right=0.5cm,
    top=1cm,
    bottom=0.8cm,
    a4paper,
    landscape,
]{geometry} % turning on showframe here makes
            % the thing even more puzzling (to me)
\usepackage{tikz}

\thispagestyle{empty}

\begin{document}
\nointerlineskip\noindent%
\vspace*{-\topskip}%
\begin{tikzpicture}
    \draw (0,0) rectangle (1,1);
    \draw (2,2) rectangle (3,3);
    \draw (4,4) rectangle (5,5);
    \draw (0,0) rectangle (28.7,19.2);
\end{tikzpicture}
\end{document}

答案2

如果(正如我怀疑的那样)您只是想在一页上绘制一幅图画,而不是试图将其作为更大文档的一部分,那么您可以使用以下类更简单地完成此standalone操作:

\documentclass[tikz, border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}
    \draw (0,0) rectangle (1,1);
    \draw (2,2) rectangle (3,3);
    \draw (4,4) rectangle (5,5);
    \draw (0,0) rectangle (28.7,19.2);
\end{tikzpicture}
\end{document}

您可以编译它来生成:

在此处输入图片描述

如果您只是希望它是具有任意内容的 A4,那么请尝试类似这样的操作(没有边距,但是有一个不可见的 A4 框)。

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
    \draw (0,0) rectangle (1,1);
    \draw (2,2) rectangle (3,3);
    \draw (4,4) rectangle (5,5);
    \draw[draw=none] (0,0) rectangle (29.7,21);
\end{tikzpicture}
\end{document}

相关内容