以下 Latex 因神秘错误而无法构建,第一个错误是Argument of \\bred has an extra }
。
\documentclass{article}
\usepackage{xparse}
\usepackage{amsmath}
\newcommand{\restr}[2]{{\ifx\\#2\\ #1 \else #1|#2 \fi}}
\newcommand{\opensg}[2][]{\restr{\mathcal{T}\ifx\\#2\\ \else_{#2}\fi}{#1}}
\newcommand{\opens}[1][]{\opensg[#1]{}}
\NewDocumentCommand{\closureg}{ O{\opens} O{P} m }{\overline{#3}(#1)_{#2}}
\NewDocumentCommand{\closure}{ O{} O{P} m }{\closureg[{\opens[#1]}][#2]{#3}}
\newcommand{\bred}[2][\opens]{#2^{#1}}
\begin{document}
$\closure[{\bred[A]{B}}]{C}$
\end{document}
它可以用来$\closure[{\bred{B}}]{C}$
代替建造。
问题是什么?我怎样才能让可选参数[A]
在这里发挥作用?
答案1
这似乎是一组相当复杂的命令...无论如何,坚持下去\NewDocumentCommand
。
\documentclass{article}
\usepackage{amsmath}
\NewDocumentCommand{\restr}{mm}{#1\IfBlankF{#2}{|#2}}
\NewDocumentCommand{\opensg}{O{}m}{\restr{\mathcal{T}\IfBlankF{#2}{_{#2}}}{#1}}
\NewDocumentCommand{\opens}{O{}}{\opensg[{#1}]{}}
\NewDocumentCommand{\closureg}{ O{\opens} O{P} m }{\overline{#3}(#1)_{#2}}
\NewDocumentCommand{\closure}{ O{} O{P} m }{\closureg[{\opens[#1]}][#2]{#3}}
\NewDocumentCommand{\bred}{O{\opens}m}{#2^{#1}}
\begin{document}
$\closure[\bred[A]{B}]{C}$
\end{document}
xparse
自 2020 年 10 月起,无需加载。