我正在查看以下示例: 如何在 LaTeX 中声明动态变量名称? 和 动态条件变量
当我尝试创建动态变量时,似乎仍然会出错。这是一个最小(失败)示例,我认为这应该有助于展示我正在尝试做的事情。
\documentclass[12pt]{article}
\usepackage{amsmath}
%%%
% Create a variable
% And a subscript with that variable
\newcommand\mypartialordergenerator[2]{% {Basename}{subscript}
\expandafter\DeclareMathOperator{\csname #1\endcsname}{#2}
\expandafter\newcommand{\csname #1 A\endcsname}{A_{\csname #1\endcsname}}
}
%%%
% Should create
%
% \DeclareMathOperator{\para}{PARA}
% \newcommand{\paraA}{A_{\para}}
\mypartialordergenerator{para}{PARA}
\begin{document}
Neither \para nor \paraA works =/
\end{document}
我认为我基本上在使用这些命令时做了一些坏事\expandafter
。有什么想法吗?
谢谢
答案1
\expandafter\DeclareMathOperator{
尝试扩展{
,但显然没有成功。您需要扩展\csname
。只需删除那些括号即可。
#1
和之间的空格也A
应该删除。
\newcommand\mypartialordergenerator[2]{% {Basename}{subscript}
\expandafter\DeclareMathOperator\csname #1\endcsname{#2}%
\expandafter\newcommand\csname #1A\endcsname{A_{\csname #1\endcsname}}%
}