名前: 北見 けん 日時: 2003-01-28 09:52:56 IPアドレス: 211.128.71.*
>>15770 こんにちは。 babel は導入していないので、試していなかったのですが、皆さんのレスを 読んでいて原因がわかってきたので、babel の代わりに {\catcode`\:=\active \global\let:\relax} \AtBeginDocument{\catcode`\:=\active} なんてやって、試してみています。 >\frenchspacingtrue, \frenchspacingfalse みたいな感じ。ないか... ありそうな気もしますね。 しかし、 tabular環境の引数に『:』を使えるように拡張したとして、 さらに地の文で『:』をアクティブにして別の機能を持たせてある。 こういう状況で、『:』の両方の機能を同時に使って、 \begin{tabular}{|c:c|} 見出し & :{マクロの引数} \\ \end{tabular} のようなものを処理しようとしたときに、 どのタイミングで『:』の機能を切り替えるかというのが、 結構厄介な問題ではないでしょうか。 『:』の機能を切り替えるとするなら、 おそらく tabular の内部処理を変更せざるをえなくなります。 トノさんが15735に書いていた方法は、『:』の機能を切り替えない方法で、 tabular環境の拡張方法や『:』の定義の仕方によらずに使えそうでうまいですね。 tabular環境の拡張方法にもよりますが、 依然として \@tfor と \if を用いているのなら、 上の例は \begin{tabular}{|c{\string:}c|} 見出し & :{マクロの引数} \\ \end{tabular} でもうまく処理できるかもしれません。 あるいは、\edef\dl{\string:} とでもしておいて、 \begin{tabular}{|c\dl c|} 見出し & :{マクロの引数} \\ \end{tabular} とすれば、ソースの変更も少なくすみます。(\dl は、DashLine のつもり) tabular の拡張方法によると書きましたが、arydshln なら以上の方法で動きました。
この書き込みへの返事: