这个问题与我的问题相关在 tikz 节点周围绘制一个矩形,例如填满 a4 页面,会导致分页符 - 为什么?。
迈克的回答很好,但是如果我使用参数text width
and text height
(而不是minimum width
and minimum height
),分页符会再次出现,正如您在以下屏幕截图中看到的那样:
以下 MWE 取自迈克的回答。我所做的修改就是替换minimum
by 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 毫米。