以下内容在 中不起作用tikz/math
:
\documentclass[tikz]{standalone}
\usetikzlibrary{math}
\begin{document}
\tikzmath
{
let \a = my black string ;
let \b = my red string ;
let \c{1} = \a{\noexpand\color{red}\b}\a;
print{\c{1}};
}
\end{document}
即使它将替换所有\c{1}
实例\c
。
对于关联数组,还有什么方法可以做到这一点吗?
干杯,
答案1
这是后续行动问题。显然\edef
使用得更频繁,而且\noexpand
被消耗了,\color
再次暴露。因此,更好的方法是使用通过 e-TeX 的 进行的稳健定义\protected\def
。包etoolbox
通过 提供了一个接口\robustify
:
\documentclass[tikz]{standalone}
\usetikzlibrary{math}
\usepackage{etoolbox}
\robustify\color
\begin{document}
\tikzmath
{
let \a = my black string ;
let \b = my red string ;
let \c{1} = \a{\noexpand\color{red}\b}\a;
print{\c{1}};
}
\end{document}