\documentclass{article}
\usepackage{tikz}
\begin{document}
% DOES NOT WORK
%\tikz \foreach \p in {1,2,...,3} \draw (\p,0) ellipse (\p and 1);
%WORKS
\tikz \foreach \p in {1,2,...,3} \draw (\p,0) ellipse (1 and \p);
\end{document}
(1 and \p)
可以但是(\p and 1)
不行,为什么?
答案1
TeX 命令后的空格会被忽略,因此使用\p and 1
你会得到一个等价的,比如说1and 1
,你可以验证它是否给出了相同的错误。因此我们只需要恢复空格:
\tikz \foreach \p in {1,2,...,3} \draw (\p,0) ellipse (\p{} and 1);
请注意,正如 Jake 所提到的,此语法已被弃用(请参阅TikZ 手册)。
答案2
这个(<x radius> and <y radius>)
语法已经过时了,即使没有被弃用,至少也不再被鼓励。当前的方法是使用[x radius]
and [y radius]
:
\documentclass{article}
\usepackage{tikz}
\begin{document}
% WORKS with current syntax
\tikz \foreach \p in {1,2,...,3} \draw (\p,0) ellipse [x radius=\p, y radius=1];
%WORKS
\tikz \foreach \p in {1,2,...,3} \draw (\p,0) ellipse [x radius=1, y radius=\p];
\end{document}
答案3
\documentclass{article}
\usepackage{tikz}
\begin{document}
\tikz \foreach \p in {1,2,...,3} \draw (\p,0) ellipse (\p cm and 1 cm);
\tikz \foreach \p in {1,2,...,3} \draw (\p,0) ellipse (1 cm and \p cm);
\end{document}
我想是解析器出了问题!Jake 的评论很好,现在最好x radius
使用y radius