我希望有可以在 align* 环境中使用的彩色文本生成宏。但是,这两者似乎有冲突。
这是描述该问题的 MWE。
\documentclass{article}
\usepackage{amsmath}
\usepackage[usenames,dvipsnames]{xcolor}
\newcommand{\src}[1]{\ensuremath{\color{RoyalBlue}{#1}}}
\newcommand{\letin}[3]{let~#1=#2~in~#3}
\newcommand{\letinsrc}[3]{\src{let}~#1=#2~\src{in}~#3}
\begin{document}
This is on a single line and it works
\begin{align*}
\src{\letin{x}{3}{x}}
\end{align*}
Here i want to break the text over multiple lines and it does not work
% \begin{align*}
% &
% \src{
% \letin{x}{3}{
% \\&
% x}
% }
% \end{align*}
This is how it should look like, but the issue is the extra usage of ``src'' inside the macro.
\begin{align*}
&
\letinsrc{x}{\src{3}}{
\\
&\
\src{x}
}
\end{align*}
\end{document}
直观地讲,我只想要一个宏来设置颜色,无论在哪里,以及一个用于构造的宏letin
。问题是,解决方法不是模块化的,它是……好吧,是一种解决方法,而不是解决方案。如果我有更多颜色,我必须定义多个版本,letinsrc
并且必须将每个参数包装在它们自己的 \src 中。这会导致大量嵌套的 \src,而我只希望在 align* 的开头有一个 \src。
另外,在letinsrc
命令中,我无法将参数包装在 \src 中,因为会有换行符和对齐符号,并且无法编译。
谢谢!