在 tikz 节点标签中使用变量

在 tikz 节点标签中使用变量

是否可以在 LaTeX 文件中定义变量并在 tikz 标签中使用变量名?

我有一个网络图,我想在文件开头创建一个 IP 表,而不是在 latex 文件中编辑每个节点。网络图是通用的,我会经常更改 IP。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,fit}

def nameIP1 10.0.0.1
def nameIP2 192.168.0.1

\tikzset{block/.style={rectangle, draw}}

\begin{document}
\begin{tikzpicture}

\node[block] (nodeIP1) { nameIP1 };
\node[block] (nodeIP2) { nameIP2 };

\end{tikzpicture}
\end{document}

答案1

可以使用普通宏。宏名不能轻易使用数字,因此示例中使用AandB代替1and 2

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,fit}

\newcommand*{\nameIPA}{10.0.0.1}
\newcommand*{\nameIPB}{192.168.0.1}

\tikzset{block/.style={rectangle, draw}}

\begin{document}
\begin{tikzpicture}

\node[block] (nodeIP1) {\nameIPA};
\node[block] at (0, -1) (nodeIP2) {\nameIPB};

\end{tikzpicture}
\end{document}

结果

答案2

您可以定义一种风格:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,fit}

\tikzset{
  block/.style={rectangle, draw},
  nameIP1/.style={node contents=10.0.0.1},
  nameIP2/.style={node contents=192.168.0.1},
}

\begin{document}

\begin{tikzpicture}
\path (0,0) node [block,nameIP1] {};
\path (0,1) node [block,nameIP2] {};
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容