使用预定义命令或与 \draw bend right 协调

使用预定义命令或与 \draw bend right 协调

我在使用预定义命令时遇到了这个问题draw。有什么解决办法吗?这是一个最小(不)工作示例:

\documentclass{article}
\usepackage{tikz}

\newcommand{\Ve}{(1,1)}
\begin{document}
    \begin{tikzpicture}
        \draw (1,0) to[bend right] (1,1) ; %works
        \draw   \Ve to[bend right] (1,0) ; %works
        \draw (1,0) to[bend right] \Ve ;   %doesn't work
    \end{tikzpicture}
\end{document}

产生的错误:

Latex Error: ./untitled.tex:9 Package tikz Error: (, +, coordinate, pic, or node expected. Latex Error: ./untitled.tex:9 Package pgf Error: No shape named is known.

答案1

您需要括号。使用\draw指定的路径,例如,应绘制两个点。起始和结束位置的坐标指定为圆括号。[看:2.3 直线路径构建,第 31 页]

定义:点位置

  • 以厘米为单位:(1,0)(1,1)

    这些位置是在特殊的坐标系中指定的,其中最初一个单位为1cm。[参见2.2.1 在 LATEX 中设置环境第 29-30 页]

  • 在 pt:(1pt,0pt)(1pt,1pt)-> 中位置是在具有单位的特殊坐标系内指定的pt
  • 在极坐标中:(0:1)(45:{sqrt(2)})-> 极坐标:1分别sqrt(2)(作为半径)在方向上0分别 45度(角度)。要计算{sqrt(2)}(获得正确的半径),您需要\usetikzlibrary{calc}。参见2.15 指定坐标,p37ff。
  • 使用宏:(\Va)and (\Ve)-> TikZ 解析器通过明确查找输入流中的字符来理解坐标和节点(及其名称)(。因此,如果括号隐藏在宏内,解析器首先无法找到括号,然后会扩展宏,这将为时已晚。而是使用\newcommand{\Va}{1,0}and定义您自己的命令\newcommand{\Ve}{1,1}(来自 @JLDiaz 评论的提示)

但我更喜欢并推荐:

  • 坐标为:(A)(B)-> 定义两个坐标(名称:A)使用\coordinate命令。例如\coordinate (A) at (1,0);\coordinate (B) at (1,1);

解决方案:

在此处输入图片描述

梅威瑟:

\documentclass{article}
\usepackage{tikz}
%\usetikzlibrary{calc}
%\newcommand{\Ve}{1,1}
\begin{document}
    \begin{tikzpicture}
    \coordinate (VE) at (1,1);
   %\coordinate (VE) at (45:{sqrt(2)});
        \draw (1,0) to[bend right] (1,1);
        \draw   (VE) to[bend right] (1,0);
        \draw (1,0) to[bend right] (VE) ;
    \end{tikzpicture}
%    \begin{tikzpicture}
%        \draw (1,0) to[bend right] (1,1);
%        \draw (\Ve) to[bend right] (1,0);
%        \draw (1,0) to[bend right] (\Ve) ;
%    \end{tikzpicture}
\end{document}

相关内容