名前: 稲垣 日時: 2006-09-29 18:28:03 IPアドレス: 219.126.171.*
>>45179 Catalan を選んだのは,activeacute が定義されているが,ArabTeX と齟齬をきたす \es@quoting のような定義がないので,問題を切り分けるに当たって分かり易いと 考えたからです。却って混乱のもとになったとしたらお詫びします。 以下の記述は単なる思いつきで,嘘である可能性大です。お詳しい方のご教授を お願いします。 Spanish.ldf の定義は次のようになっています。 \def\es@activeacute{% \es@set@shorthand{'}% \addto\shorthandsspanish{\es@activate{'}}% \addto\es@reviveshorthands{\es@restore{'}}% \addto\es@select{\catcode`'=\active}% \declare@shorthand{spanish}{'a}{\@tabacckludge'a}% ……. この \es@activeacute は \ifes@LaTeXe %<<<<<< \@ifpackagewith{babel}{activeacute}{\es@activeacute}{} で,つまり,[activeacute,spanish]{babel} としたときに有効になり, Spanish 環境を抜ける際に \AtEndOfPackage で \catcode`\'=12 に戻すこと になります。 理屈は上のようなことかと思いますが,実際はアラブモードでエラーとなり,それを 防ぐために \catcode`\'=12 を改めて定義する必要があるようです。 今までの経験からしますと,アラブモードでエラーが出た場合,直前で変更した catcode があればそれをデフォルトの値に戻しておくと結構うまくいきます。 そうだとすると,spanish.ldf の場合,Spanish モードを抜けたとき,catcode が デフォルトに戻っていないのではないかと思います。Catalan の場合も同じです。
この書き込みへの返事: