对于给定的 TikZ 图片,正确的坐标选择是什么?

对于给定的 TikZ 图片,正确的坐标选择是什么?

到目前为止,我在 TikZ 中编程的方式(但也许我遗漏了一些东西)我从未听说过告诉 TikZ 在打印页面上将坐标系的原点放在哪里的方法。但在很多情况下我都想这样做。例如,在下面的最小示例中,图片的一部分在右边距被吃掉了,我惊呼“为什么 TikZ 不将图形向左推一点,以便显示所有内容?”

TikZ 默认如何将坐标系转移到打印页面?这可能在手册的某处有解释,但我在索引中搜索时有点迷失,因为我不知道要查找哪个关键字。

任何帮助均感激不尽。

\documentclass[a4paper]{article}
\usepackage{tikz}

\begin{document}
\begin{center}
\begin{tikzpicture}
   \foreach \x in {0,2,4,6,8}  {
     \draw (2*\x,0) -- ++(1,1);
  }
  \end{tikzpicture}
\end{center}
\end{document}

答案1

任何 都tikzpicture被视为character中的。除非您强制执行(稍后解释),否则坐标和打印页面LaTeX之间没有固定的关系。tikzpicture

\documentclass{article}
\usepackage{tikz}
\begin{document}

This is an example
\begin{tikzpicture}
\draw (0,0) rectangle (2,2);
\end{tikzpicture}
with a \texttt{tikzpicture} inside.
\end{document}

在此处输入图片描述

您的示例太宽(超过 17 厘米)无法容纳\linewidth(您必须考虑左右页边距)并且其中一部分被吃掉了。

如果你不想担心页面尺寸,可以使用standalone根据您的示例,包/类会产生:

\documentclass[tikz,border=2mm]{standalone}

\begin{document}
\begin{tikzpicture}
   \foreach \x in {0,2,4,6,8}  {
     \draw (2*\x,0) -- ++(1,1);
  }
  \end{tikzpicture}
\end{document}

在此处输入图片描述

现在,可以使用命令将此外部图形 (pdf) 插入到文本中\includegraphics(可能在figure环境内)。它也可以包含tikzpicture\usepackage{standalone}主文档序言和中\input{your_file}。在这两种情况下,图形都将被视为字符。

也可以将 放置tikzpicture在固定位置,如第 17.13.2 节所述pgfmanual。另一个选择是使用类似 的包background

\documentclass[4paper]{article}
\usepackage{tikz}

\begin{document}
This is an example with
\begin{tikzpicture}[remember picture,overlay]
   \draw (current page.center) rectangle ++(2,2);
  \end{tikzpicture}
  a \texttt{tikzpicture} absolutely positioned.
\end{document}

在此处输入图片描述

相关内容