使用tikz/math
,我尝试定义一个包含 LaTeX 命令的字符串变量,因此包含反斜杠。目标是能够连接这样的字符串。
以下操作无效:
\documentclass[tikz]{standalone}
\usetikzlibrary{math}
\begin{document}
{\color{blue}test For Blue},
\tikzmath
{
let \a = \color{red}my red string;
print{\a};
}
\end{document}
我的猜测是tikzmath
试图将其解释\color
为关联数组并使用来访问它red
,因此失败。
这样的东西\text{my text}
也行不通。
我反而想tikz/math
传递给tikz
LaTeX 或包含这些反斜杠的字符串
这在国内有可能吗tikz/math
?
干杯,
答案1
我不确定你想要什么输出,所以有两个版本
\documentclass[tikz]{standalone}
\usepackage[T1]{fontenc}
\usetikzlibrary{math}
\begin{document}
{\color{blue}test For Blue},
\tikzmath
{
let \a = \string\color\string{red\string}my red string;
print{\a};
}
{\color{blue}test For Blue},
\tikzmath
{
let \a = \noexpand\color{red}my red string;
print{\a};
}
\end{document}
答案2
来自TikZ 手册,“56.2 转让”一节:
let 〈variable〉 = 〈expression〉 ;
此关键字无需求值即可赋值给变量。但是,可以使用 进行完全扩展。[...]
〈expression〉
〈expression〉
\edef
\edef
不遵守 LaTeX 的保护机制。因此需要低级别来防止在错误的时间\noexpand
扩展:\color
\documentclass[tikz]{standalone}
\usetikzlibrary{math}
\begin{document}
{\color{blue}test For Blue},
\tikzmath
{
let \a = \noexpand\color{red}my red string;
print{\a};
}
\end{document}