Re: Japanese variable names
さらなる自己フォロー…。
In article <051231165255.M0112769@hayabusa.ics.nara-wu.ac.jp>, I write:
> (2)はpLaTeXのバグでしょうかね。
どうやらそうじゃないようです。
日本語文字の中でも「ー」など記号文字は、「\」に続いて一文字だけで1マク
ロになる(「\_」などと同様)一方、それ以外のかな文字や漢字などは、「\」に
続いてそれらだけの連鎖で1マクロになるようです。
なので、例えば
> \def\キーワード{a}
> \def\endキーワード{c}
と書くと、「\キ」までがマクロ、その後ろの「ーワード」はマクロ「\キ」の引
数ということになり、
> \キーワード
はうまく動くけれど
> \begin{キーワード}
> b%
> \end{キーワード}
は「\キーワード」というマクロがないのでうまく動かない、ということになる
らしいです。一方、
\def\キワド{a}
\def\endキワド{c}
として
\begin{キワド}
b%
\end{キワド}
がうまく動くのは、「\キワド」が1つのマクロになるため。
\newenvironmentを使って
> \newenvironment{キーワード}{a}{c}
> \begin{キーワード}
> b%
> \end{キーワード}
だと、「\csname キーワード\endcsname」を展開したものを1マクロ名とする内
部処理が行われるので、「\キーワード」という1つのマクロが作られて期待通り
に動きます。
…というわけで、もしどうしても「キーワード」という環境を
\newenvironmentでなく\defを使って定義したければ
\expandafrer\def\csname キーワード\endcsname{…}
\expandafrer\def\csname endキーワード\endcsname{…}
のようにすればいいようです。
# 学内のシラバス作り用のクラスファイルを作ろうとして、はまっていたのでした。
nide@ics.nara-wu.ac.jp
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735