是否可以在 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
可以使用普通宏。宏名不能轻易使用数字,因此示例中使用A
andB
代替1
and 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}