如何移动整个 tikzpicture?

如何移动整个 tikzpicture?

我有一个tikzpicture,用 进行四舍五入fbox,并嵌入 中minipage。是否可以更改小页面内整个图片的位置?例如,将图片向上移动 1 个单位,向右移动 1 个单位?我知道我们总是可以更改图片中每个元素的坐标(例如,将 (2,3) 更改为 (1,2)),但这显然不是一个好的解决方案。

答案1

水平位移可通过以下方式轻松获得,而垂直位移可使用以下方式\hspace[*]{<length>}管理:\raisebox{<length>}{<stuff>}graphicx包裹从以下最小示例中可以清楚看出,左侧的图像已被平移(+3em,+4em),而左侧的重复图形在定位/平移方面保持不变:

\documentclass{article}
\usepackage{tikz}%
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\usepackage{caption,subcaption}%
\usepackage{calc}% http://ctan.org/pkg/calc

​\begin{document}
\noindent\begin{minipage}[t]{0.48\linewidth}%
  \centering
  \fbox{%
    \begin{minipage}[t]{\linewidth-2\fboxsep-2\fboxrule}% Remove fbox rule/sep width
      \hspace*{3em}\raisebox{4em}{\begin{tikzpicture}% Moved (+3em,+4em)
        \draw (-1.5,0) -- (1.5,0);
        \draw (0,-1.5) -- (0,1.5);
        \draw (0,0) circle (1cm);
      \end{tikzpicture}}
    \end{minipage}}
  \captionof{figure}{picture1}\label{fig:picture1}
\end{minipage}\hfill
\begin{minipage}[t]{0.48\linewidth}%
  \centering
  \fbox{%
    \begin{minipage}[t]{\linewidth-2\fboxsep-2\fboxrule}% Remove fbox rule/sep width
      \begin{tikzpicture}
        \draw (-1.5,0) -- (1.5,0);
        \draw (0,-1.5) -- (0,1.5);
        \draw (0,0) circle (1cm);
      \end{tikzpicture}
    \end{minipage}}
  \captionof{figure}{picture2}\label{fig:picture2}
\end{minipage}

​\end{document}​​​​​​​​​​​​​

图片被移动了

答案2

作为一个非常晚的答案,您可以执行以下操作来控制 tikzpicture 上方、下方和左侧的间距(改编 Werner 的示例):

\fbox{%
  \begin{minipage}[t]{0.8\linewidth}
    \hspace*{0.2\linewidth}
    \rule[-2cm]{0pt}{6cm}
    \begin{tikzpicture}
      \draw (-1.5,0) -- (1.5,0);
      \draw (0,-1.5) -- (0,1.5);
      \draw (0,0) circle (1cm);
    \end{tikzpicture}%
    \begin{tikzpicture}[baseline]
      \draw (-1.5,0) -- (1.5,0);
      \draw (0,-1.5) -- (0,1.5);
      \draw (0,0) circle (1cm);
    \end{tikzpicture}%
    \begin{tikzpicture}[baseline={(0,-0.5)}]
      \draw (-1.5,0) -- (1.5,0);
      \draw (0,-1.5) -- (0,1.5);
      \draw (0,0) circle (1cm);
    \end{tikzpicture}%
  \end{minipage}%
}

这个想法如下:

  • hspace* 将 tikzpicture 向右移动(如 Werner 的回应一样)。
  • 不可见规则(或空宽度)确保小页面延伸(至少)到基线以下 2 厘米,到基线以上 4=6-2 厘米。
  • 默认情况下,tixpicture 会自行对齐,使得图片的最低点位于基线。
  • 可以使用基线选项更改此行为。只需添加基线即可移动 tikzpicture,使基线位于 y=0。否则,可以指定一个坐标(但只有该坐标的 y 分量才会起作用)。

在这个例子中,穿过第二个圆的水平线恰好位于基线。 代码输出

相关内容