使用 tikzpicture 向量長度指定節點維度

使用 tikzpicture 向量長度指定節點維度

我想建立一個帶有 的節點minimum width=αx,其中 x 是 tikzpicture 環境中指定的 x 座標向量的長度,例如\begin{tikzpicture}[x=0.1cm,y=2.5ex]。這可能嗎?

答案1

正如建議的這個答案,您可以定義變數來設定 x 和 y 比例以及節點的樣式,如下例所示:

\documentclass{article}
\usepackage{tikz}

\newcommand{\unitx}{1cm}
\newcommand{\unity}{1cm}

\tikzset{%
    box/.style 2 args = {%
        rectangle,
        draw,
        minimum width  = #1*\unitx,
        minimum height = #2*\unity
    },
    every tikzpicture/.append style = {
        x = \unitx,
        y = \unity
    }
}

\begin{document}

    \begin{tikzpicture}

        \node[box={2}{3}] at (0, 0) {Hello};

    \end{tikzpicture}

\renewcommand{\unitx}{5cm}
\renewcommand{\unity}{3cm}

    \begin{tikzpicture}

        \node[box={2}{3}] at (0, 0) {Hello};

    \end{tikzpicture}

\end{document}

這樣,您就可以為每個環境施加給定的比例,xy根據該比例tikzpicture為矩形節點定義樣式。minimum widthminimum height

比例儲存在\unitx\unity變數中,您可以在文件中的任何位置重新定義這些變數以變更比例。

如果您不想全域套用縮放,請刪除命令every tikzpicture的參數\tikzset並在本機套用縮放,如下例所示:

\documentclass{standalone}
\usepackage{tikz}

\newcommand{\unitx}{2cm}
\newcommand{\unity}{1cm}

\tikzset{%
    box/.style 2 args = {%
        rectangle,
        draw,
        minimum width  = #1*\unitx,
        minimum height = #2*\unity
    }
}

\begin{document}

    \begin{tikzpicture}[x = \unitx, y = \unity]

        \node[box={2}{3}] at (0, 0) {Hello};

    \end{tikzpicture}

\end{document}

相關內容