名前: 北見 けん 日時: 2006-05-26 22:14:46 IPアドレス: 211.128.71.*
>>42990 > この状況からうまく復帰する方法はないでしょうか。 某所でヒントを頂きましたのでご報告します。 ヒントなど読みたくないという場合はこの下を見ないことをおすすめします。 まず状況の整理から。 “a”のカテゴリコードが変わってしまったために、カテゴリーコードを 元に戻すために必要な \catcode というコントロールシークエンスに アクセスできなくなっている、という状況です。 \catcode にアクセスするために使えそうな他の手段としては \csname/\endcsname が ありますが、これもその名前の中に“a”を含むのでアクセスできません。 他にも使えそうなプリミティブがありますが、どれも“a”抜きではアクセスでき ないものばかりです。 ここで私はお手上げだったわけですが、頂いたヒントは次のようなものです(よね?)。 そこで、利用手段を探す範囲をプリミティブから定義済みのマクロにまで広げます。 定義済みのマクロで、展開すると \catcode あるいは \csname といったトークンが 得られて、且つ、“a”を使わずにアクセスできるような名前のものを利用します。 この条件で latex.ltx や plain.tex の中を探すと、うってつけのマクロが見つかります。 同好の士のために、とりあえず報告はここまでにしておきます。 今回は“a”の場合について問題にしていましたが、“\catcode”を構成する 他のアルファベットでも同様の問題が起こります。 一覧すると a, c, d, e, o, t です。 それぞれ事情が違うようで、これについても示唆していただきました。
この書き込みへの返事: