名前: calsh 日時: 2004-09-22 22:55:18 IPアドレス: 219.164.131.*
\usepackage{amsmath, amssymb, bm}とし、 \def\Ba{\bm{a}} … \def\Bz{\bm{z}}と計26個の定義を書き並べる事で \Ba … \Bzコマンドで太字のa … zが出せます。 これはこれで望む動作なのですが、この定義の仕方は泥臭く冗長であり、 \BA … \BZというように大文字についても同様に定義をする場合、 更に長くなってしまいます。 なので、定義を書き並べる泥臭さを回避するため、 \alph{カウンタ}と\@nameuseの\edef版を用いて次のように書いたところ、 組版時にエラーが出てしまいました: \newcounter{n} \setcounter{n}{1} \@whilenum \value{n} < 27 \do{ \expandafter\edef\csname B\alph{n}\endcsname{ \bm{\alph{n}} } \stepcounter{n} } そもそも\edef\hoge{\bm{huga}}と書いただけでもエラーが出るので、 エラーの原因は\edefによる定義文中に\bmを用いている事と思われます。 なんとかエラーを回避して\Ba … \Bzコマンドで 太字のアルファベットを出力したいのですが、どうにかならないでしょうか。 # 何故\edef中で\bm(や\{など)を使ってはいけないのかよく分からない… # \edefではなくて\defだと\Ba = \bm{\alph{27}}と展開されて # エラーになってしまうようなTeXのデータ処理の仕組みも良いとは思えない…
この書き込みへの返事: