如何在tikz中设置全球长度?

如何在tikz中设置全球长度?

我对以下问题感到困惑。

我想定义一个名为 \mywidth 的长度,并在我的文档中的 TikZ 图片中使用它。我尝试了以下方法,但没有奏效。首先,我在序言中添加了以下内容:

\newlength{\mywidth}
\setlength{\mywidth}{1cm}

然后在tikzpicture环境中,我尝试以下代码:

\draw (0cm,0cm) to [out=0, in=180] (\mywidth,1cm);

不起作用!我收到一个奇怪的错误:Missing \csendname inserted.

但是,如果我只是输入

\draw (0cm,0cm) to [out=0, in=180] (1cm,1cm);

那我确实做了什么?

答案1

实际上,这是一个错误inout它应该像您一样工作。--to\the\width到 TikZ 中的路径+相对坐标?“这也遇到了与to路径运营商有关的类似问题。

\documentclass{article}

\usepackage{tikz}

\newlength{\mywidth}
\setlength{\mywidth}{1cm}

\begin{document}

\begin{tikzpicture}
    \draw (0cm,0cm) -- (\mywidth,1cm); % Works!
    \draw (0cm,0cm) to (\mywidth,1cm); % Works!
    \draw (0cm,0cm) to [] (\mywidth,1cm); % Works!
    \draw (0cm,0cm) to [in=180] (\mywidth,1cm); % Error
    \draw (0cm,0cm) to [out=0]  (\mywidth,1cm); % Error
    \draw (0cm,0cm) to [out=0, in=180] (\mywidth,1cm); % Error
    \draw (0cm,0cm) to [in=180] (\the\mywidth,1cm); % Works
    \draw (0cm,0cm) to [out=0]  (\the\mywidth,1cm); % Works
    \draw (0cm,0cm) to [out=0, in=180] (\the\mywidth,1cm); % Works
\end{tikzpicture}

\end{document}

如果您需要一个因素,则.5需要\mywidth.5*\the\mywidth或使用\dimexpr\the\dimexpr.5\mywidth\relax\relax


还要注意\width,乳胶命令\height通常\depth\totalheight在内部使用以表示处理框的尺寸,因此应更好地避免\raisebox{<length>}{<content>}使用它们。\raisebox{.5\height}{Text}

相关内容