为什么省略号(\p 和 1)不起作用?

为什么省略号(\p 和 1)不起作用?
\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

相关内容