我有一个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 分量才会起作用)。