此代码:
\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}
另外,我已经将标题元数据等放在了序言中。