TiKZ 图片在“图形”环境中位置不正确

TiKZ 图片在“图形”环境中位置不正确

此代码:

\documentclass{tufte-handout}
\usepackage{tikz}

\begin{document}


\title{Lorem ipsum}
\author{me}
\date{now}
\maketitle

Lorem ipsum dolor sit amet, blah blah blah...

\begin{figure}

\begin{tikzpicture}

\def\spiral#1{%
  \pgfmathparse{int(#1)}%
  \ifnum\pgfmathresult>0
    \draw [help lines] (0,0) rectangle ++(-1,1);
    \begin{scope}[shift={(-1,1)}, rotate=90, scale=1/1.6180339887]
      \spiral{#1-1}
    \end{scope}
    \draw [red] (0,0) arc (0:90:1);
  \fi
}

\tikz[scale=2]{\spiral{12}}
\end{tikzpicture}
\caption{The golden spiral.}
\label{ref:golden_spiral}

\end{figure}

Sed tortor tellus, &c., &c.

\end{document}

产生以下输出:

请看一下该图的奇怪位置。

显然,我希望图表位于文本中那个大空白处。我tikzpicture以前用过图表,效果很好,所以大概是图表中出现了问题,但我不明白是什么问题。我怎样才能让螺旋线回到它应该在的位置?

编辑:这篇早期文章表明重新调用tikz是问题所在。这是问题所在吗?如果是,我应该如何修改该行\tikz[scale=2]{\spiral{12}}?我尝试将其完全删除,但这只意味着图表根本没有出现。

答案1

您混淆了 的定义spiral和它的用法。将定义放在序言中。另外,第二个\tikz是不需要的。此外,没有&\它应该是\&c., \&c.并添加[htb]到环境选项中figure

\documentclass{tufte-handout}
\usepackage{tikz}

\def\spiral#1{%
  \pgfmathparse{int(#1)}%
  \ifnum\pgfmathresult>0
    \draw [help lines] (0,0) rectangle ++(-1,1);
    \begin{scope}[shift={(-1,1)}, rotate=90, scale=1/1.6180339887]
      \spiral{#1-1}
    \end{scope}
    \draw [red] (0,0) arc (0:90:1);
  \fi
}
\title{Lorem ipsum}
\author{me}
\date{now}
\begin{document}
\maketitle

Lorem ipsum dolor sit amet, blah blah blah...

\begin{figure}[htb]
\centering
\begin{tikzpicture}[scale=2]
\spiral{12}
\end{tikzpicture}
\caption{The golden spiral.}
\label{ref:golden_spiral}
\end{figure}

Or

\begin{figure}[htb]
\centering
\tikz[scale=2]{\spiral{12}}
\caption{The golden spiral.}
\label{ref:golden_spiral}
\end{figure}

Sed tortor tellus, \&c., \&c.

\end{document}

在此处输入图片描述

另外,我已经将标题元数据等放在了序言中。

相关内容