Tikz:文本高度 = paperheight 的节点导致分页。空格从何而来,如何消除?

Tikz:文本高度 = paperheight 的节点导致分页。空格从何而来,如何消除?

这个问题与我的问题相关在 tikz 节点周围绘制一个矩形,例如填满 a4 页面,会导致分页符 - 为什么?

迈克的回答很好,但是如果我使用参数text widthand text height(而不是minimum widthand minimum height),分页符会再次出现,正如您在以下屏幕截图中看到的那样:

在此处输入图片描述

以下 MWE 取自迈克的回答。我所做的修改就是替换minimumby text(并根据 percusse 的评论)\useboundingbox ...byoverlay参数,这更容易阅读,而且似乎没有什么区别)

\documentclass{article}

\usepackage[%
paperheight=210mm,
paperwidth=297mm,
margin=0cm,
]{geometry}

\usepackage[cam,a3,landscape,center]{crop}
\usepackage[main=english]{babel}
\usepackage{tikz}

\setlength{\parindent}{0pt}

\begin{document}
    \pagestyle{empty}%
    \begin{tikzpicture}%
    \coordinate (p);%
    \node[%
    fill=green,
    text height=210mm,%<-- 'text' instead of minimum causes the break - why?
    text width=297mm,
    anchor=west,
    inner sep=0pt,
    outer sep=0pt]%
    (backFlap) at (p) {%
        \huge Hello World!%
    };%
    % setting bounding box to prevent enlargement of picture by line width
%   \useasboundingbox (0,-0.5\paperheight) rectangle (\paperwidth,0.5\paperheight);%
    \draw[thick,black,overlay]
    (backFlap.north west) rectangle (backFlap.south east) {}%
    (backFlap.north east) -- (backFlap.south west) {}%
    (backFlap.north west) -- (backFlap.south east) {}%
    ;%
    \end{tikzpicture}%
\end{document}

我切换到文本高度的意图是:目前(使用minimum width... height)我使用节点内具有固定高度和宽度的 minipage 环境来定位文本内容。使用text height... width选项我想摆脱额外的 minipage 环境。这个想法正确吗?

答案1

Torbjørn T. 的分析是正确的,但是解决方法会放错文本。

由于问题出在左下角文本的深度,因此将其深度设为零:

\node[
fill=green,
text height=210mm,
text width=297mm,
anchor=west,
inner sep=0pt,
outer sep=0pt]
(backFlap) at (p) {%
    \raisebox{\depth}{\huge Hello Worldy!}%
};

完整代码

\documentclass{article}

\usepackage[
  paperheight=210mm,
  paperwidth=297mm,
  margin=0cm,
]{geometry}

\usepackage[cam,a3,landscape,center]{crop}
\usepackage[main=english]{babel}
\usepackage{tikz}

\setlength{\parindent}{0pt}

\begin{document}
\pagestyle{empty}

\begin{tikzpicture}
    \coordinate (p);
    \node[%
    fill=green,
    text height=210mm,
    text width=297mm,
    anchor=west,
    inner sep=0pt,
    outer sep=0pt]
    (backFlap) at (p) {%
        \raisebox{\depth}{\huge Hello Worldy!}%
    };%
    % setting bounding box to prevent enlargement of picture by line width
%   \useasboundingbox (0,-0.5\paperheight) rectangle (\paperwidth,0.5\paperheight);%
    \draw[thick,black,overlay]
    (backFlap.north west) rectangle (backFlap.south east) {}%
    (backFlap.north east) -- (backFlap.south west) {}%
    (backFlap.north west) -- (backFlap.south east) {}%
    ;%
    \end{tikzpicture}

\end{document}

输出

在此处输入图片描述

答案2

您提供的示例实际上只生成一页,但是如果您y向节点添加具有深度的字母(例如),则会得到分页符。节点的总高度为text height+ text depth。由于Hello world!深度为零,因此总高度为text height+ 0。

例如使用

text depth=30mm,
text height=180mm,

确保两者加起来等于 210 毫米。

相关内容