TikZ,几何:tikzpicture 上的间隙

TikZ,几何:tikzpicture 上的间隙

我选择width=18cm, height=26cmgeometry.sty。
如果我将原点设置在page center并将节点定位在 处,(-0.5\textwidth, 0.5\textheight)则会在 tikzpicture 上出现间隙。

如何消除这个差距。

在此处输入图片描述

\documentclass[]{scrartcl}
\usepackage[showframe=true, width=18cm, height=26cm]{geometry}
\usepackage{tikz}
\usepackage{tikzpagenodes}
\usetikzlibrary{calc, matrix}
\pagestyle{empty}

\begin{document}
\begin{tikzpicture}[
  shift={(current page.center)},
  overlay,remember picture,
  nodes={inner sep=0pt,outer sep=0pt}
]
  \node[
    anchor=north west, 
    draw, red, 
    minimum width=1.0\textwidth,text width=1.0\textwidth-2mm,
    minimum height=6cm,text depth=6cm-4mm,
    align=left, 
  ] at (-0.5\textwidth, 0.5\textheight) (Textbox) {ABC};

  % Help
  \node[blue] at (0,0) {x};
  \draw[blue] (0,0) -- (0,0.5\textheight);
\end{tikzpicture}
\end{document}

答案1

解释

您通过纸张尺寸 ( ) 移动 tikz 坐标shift={(current page.center)},但将节点相对于文本区域尺寸放置 ( at (-0.5\textwidth, 0.5\textheight))。

  • 由于纸张尺寸和文本区域尺寸之间的左边距和右边距相同(在您的示例中),因此节点Textbox相对于纸张和文本区域都水平居中。
  • 由于两个尺寸之间的上下边距不同,节点Textbox相对于文本区域并不垂直居中。

解决方案

软件包tikzpagenodes提供了具有文本区域、边距区域以及页眉和页脚区域大小的额外节点。新节点current page text area是您的帮助:

\documentclass[]{scrartcl}
\usepackage[showframe=true, width=18cm, height=26cm]{geometry}
\usepackage{tikz}
\usepackage{tikzpagenodes}
\usetikzlibrary{calc, matrix}
\pagestyle{empty}

\begin{document}
\begin{tikzpicture}[
  % replace node "current page"
  shift={(current page text area.center)},
  overlay,remember picture,
  nodes={inner sep=0pt,outer sep=0pt}
]
  \node[
    anchor=north west, 
    draw, red, 
    minimum width=1.0\textwidth,text width=1.0\textwidth-2mm,
    minimum height=6cm,text depth=6cm-4mm,
    align=left, 
  ] at (-0.5\textwidth, 0.5\textheight) (Textbox) {ABC};

  % Help
  \node[blue] at (0,0) {x};
  \draw[blue] (0,0) -- (0,0.5\textheight);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容