我正在尝试使用pgffor
定义如下所示的新命令\boldsymbol\mathsf
。
\documentclass{article}
\usepackage{pgffor,amsmath}
\newcommand\makemathsfbf[1]{
\foreach\a\b\c in{#1}{
\expandafter\gdef\csname\a\b\c\expandafter\endcsname\expandafter{%
\expandafter\boldsymbol{\mathsf\expandafter{\a}}
}
}
}
\makemathsfbf{AAA,BBB,...,ZZZ} % {AAA,BBB, CCC, DDD, ..., ZZZ}
\begin{document}
$\AAA$ % = $\boldsymbol{\mathsf A}$
\end{document}
我想用上面的命令,即\AAA
,来替换\boldsymbol{\mathsf A}
等等。但是我无法让它工作。我应该如何修改它?
答案1
没有办法定义循环 AAA ... ZZZ 你需要 A, ....Z 但是 pgf for 循环在这里并没有真正的帮助我会使用
\documentclass{article}
\usepackage{bm,amsmath}
\makeatletter
\count@=1
\loop
\expanded{\noexpand\bmdefine\csname\@Alph\count@\@Alph\count@\@Alph\count@\endcsname
{\noexpand\mathsf{\@Alph\count@}}}
\ifnum\count@<26
\advance\count@\@ne
\repeat
\begin{document}
$\mathsf{A}+\AAA$
$\mathsf{G}+\GGG$
\end{document}
答案2
这将运行,但您需要想出一种方法来生成 {AAA,BBB,...,ZZZ}。也许吧\Alph{\i}\Alph{\i}\Alph{\i}
。
\documentclass{article}
\usepackage{amsmath}
\usepackage{pgffor}
\makeatletter
\newcommand\makemathsfbf[1]{
\def\mylist{#1}
\foreach \abc in \mylist {
\expandafter\protected@xdef\csname\abc\endcsname{
\boldsymbol{\mathsf{\abc}}
}
}
}
\makeatother
\makemathsfbf{AAA,BBB,ZZZ} % {AAA,BBB, CCC, DDD, ..., ZZZ}
\begin{document}
$\AAA$
\end{document}