![如何将 tikz 元素放置在自定义纸张几何图形中,以达到所有四个角,并带有边距](https://linux22.com/image/450801/%E5%A6%82%E4%BD%95%E5%B0%86%20tikz%20%E5%85%83%E7%B4%A0%E6%94%BE%E7%BD%AE%E5%9C%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BA%B8%E5%BC%A0%E5%87%A0%E4%BD%95%E5%9B%BE%E5%BD%A2%E4%B8%AD%EF%BC%8C%E4%BB%A5%E8%BE%BE%E5%88%B0%E6%89%80%E6%9C%89%E5%9B%9B%E4%B8%AA%E8%A7%92%EF%BC%8C%E5%B9%B6%E5%B8%A6%E6%9C%89%E8%BE%B9%E8%B7%9D.png)
我正在尝试为一份文档设计一个封面,该文档的页面将打印在 8.5"x11" 信纸上,作为 17"x11" 文档。我在几何图形中添加了在线找到的有关出血的边距(即每边 0.125" 的边框)。但由于某种原因,输出是错误的,通过编译此 MWE 可以看出:
我是否认为这一切都可以通过几何选项进行管理?如果是这样,哪些选项我没有正确使用?
以下是 MWE 的代码:
\documentclass[12pt]{article}
\usepackage{tikz}
\usepackage[paperwidth=11in,paperheight=17in,layoutwidth=10.75in,layoutheight=16.75in,left=0.125in,right=0.125in,top=0.125in,bottom=0.125in,bindingoffset=0in, landscape=true, marginparwidth=0in, marginparsep=0in]{geometry}
\begin{document}
\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}]
\draw[draw=black] (0,0) rectangle ++(1in,1in) node[pos=.5] {NW};
\draw[draw=black] (15.75in,0) rectangle ++(1in,1in) node[pos=.5] {NE};
\draw[draw=black] (0,9.75) rectangle ++(1in,1in) node[pos=.5] {SW};
\draw[draw=black] (15.75in,9.75) rectangle ++(1in,1in) node[pos=.5] {SE};
\end{tikzpicture}
\end{document}
以下是这个输出中令我惊讶的几个方面:
- 南北颠倒(四个基本方位分别用东北、西北、东南和西南的缩写来表示)。
- 顶部边距看起来是正确的,但左边距看起来是预期边距的两倍(或更多)
- 纸张的宽度似乎不正确,因为我希望东边的方块完全可见,并有 0.125 的额外边距。
- 而宽度似乎太短,高度似乎太长,因为我预计最南边的盒子应该位于完全底部......
也许我的问题出在 tikz 坐标系上,而不是几何体上?无论如何,我希望能够使用 tickz 确认我对边距位置的理解,因为我的书封面的元素将用 tikz 绘制。谢谢!
答案1
有几件事:
- 您可以使用节点
current page.north wast
...current page.south west
用 Ti 绘制矩形钾Z. 这些正好位于角落,因此如果您想尊重边距,请使用相对坐标。 - 太大
tikzpicture
了,所以你需要overlay
它。
像这样:
\documentclass[12pt]{article}
\usepackage{tikz}
% if you want to change the margin
\newlength{\mymargin}
\setlength{\mymargin}{0.125in}
\usepackage
[
paperwidth=11in,paperheight=17in,layoutwidth=10.75in,layoutheight=16.75in,
left=\mymargin,right=\mymargin,top=\mymargin,bottom=\mymargin,
bindingoffset=0in,landscape=true,marginparwidth=0in,marginparsep=0in
]{geometry}
\begin{document}
\begin{tikzpicture}[remember picture,overlay,every node/.style={inner sep=0,outer sep=0}]
\draw[draw=black] (current page.north west) ++ ( \mymargin,-\mymargin) rectangle ++( 1in,-1in) node[pos=.5] {NW};
\draw[draw=black] (current page.north east) ++ (-\mymargin,-\mymargin) rectangle ++(-1in,-1in) node[pos=.5] {NE};
\draw[draw=black] (current page.south west) ++ ( \mymargin, \mymargin) rectangle ++( 1in, 1in) node[pos=.5] {SW};
\draw[draw=black] (current page.south east) ++ (-\mymargin, \mymargin) rectangle ++(-1in, 1in) node[pos=.5] {SE};
% only to show the paper
\draw[red, line width=2mm] (current page.north west) rectangle (current page.south east);
\end{tikzpicture}
\end{document}
答案2
哦,和 Juan Castaño 的答案几乎一样......
编辑: 但我不知道我迟到了 13 分钟(显然是我的网络拥塞,因为我在加载之前没有看到答案...)。现在我扩展了我的原始答案并进行了一些猜测,OP 想要做什么 ;-)
不太清楚您想在哪里放置框。在页面边框还是在文本区域边框?另外,您的几何定义对我来说也不清楚:
- 为什么
layoutwidth=10.75in
比页边距定义的宽度小得多? - 您的盒子应该指定什么:
- 只是页面的一个角落?结果如下(我增加了 marin 的大小,这样框就更明显了):
(红线表示文本区域边框)
\documentclass[12pt]{article}
\newlength{\pagemargin}
\setlength{\pagemargin}{0.25in}
\usepackage[paperwidth=11in,paperheight=17in,
layoutwidth=10.75in,layoutheight=16.75in,
margin=\pagemargin, bindingoffset=0in,
landscape=true,
marginparwidth=0in, marginparsep=0in
]{geometry}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
remember picture, overlay,
]
\draw (current page.north west) rectangle
++( \pagemargin,-\pagemargin) node[midway] {NW};
\draw (current page.north east) rectangle
++(-\pagemargin,-\pagemargin) node[midway] {NE};
\draw (current page.south west) rectangle
++( \pagemargin, \pagemargin) node[midway] {SW};
\draw (current page.south east) rectangle
++(-\pagemargin, \pagemargin) node[midway] {SE};
\end{tikzpicture}
\end{document}
- 文本区域的边框?在这种情况下,MWE 可以是:
\documentclass[12pt]{article}
\newlength{\pagemargin}
\setlength{\pagemargin}{0.25in}
\usepackage[paperwidth=11in,paperheight=17in,
layoutwidth=10.75in,layoutheight=16.75in,
margin=\pagemargin, bindingoffset=0in,
landscape=true,
marginparwidth=0in, marginparsep=0in
]{geometry}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{tikz}
\usepackage{tikzpagenodes}
\begin{document}
\begin{tikzpicture}[
remember picture, overlay,
]
\draw (current page text area.north west)
rectangle ++(-\pagemargin,+\pagemargin) node[midway] {NW};
\draw (current page text area.north east)
rectangle ++(+\pagemargin,+\pagemargin) node[midway] {NE};
\draw (current page text area.south west)
rectangle ++(+\pagemargin,-\pagemargin) node[midway] {SW};
\draw (current page text area.south east)
rectangle ++(+\pagemargin,-\pagemargin) node[midway] {SE};
\end{tikzpicture}
\end{document}
- 或者您可能希望文本区域从页面的左边距到右边距。在这种情况下,您需要删除第一个示例中的
geometry
选项layoutwidth=10.75in,layoutheight=16.75in,
。结果将是:
- 我想知道,这个矩形的用途是什么。一些文档类,如回忆录,有显示选项
crop mark
,否则您可以使用庄稼 用于定义裁剪标记(无论它们标记什么)的包。