Re: 表中の一部のカラム内のフォント変更

名前: 北見 けん
日時: 2002-12-28 02:51:42
IPアドレス: 202.248.114.*

>>14390 >>>14385 >》 すみません。遊ぶのに夢中で、現実的な解決策を考えることに気が回りませんでした。 > >とんでもありません。#14382 の書込みが批判がましく思われるなら、私の >文章力不足というものです。ご容赦ください。 こちらこそとんでもありません。14385は単なる自戒の言葉です。 批判されたと思って書いたのではありませんので、気になさらずに。 また、しっぽ愛好家さんと並べられると面映いです。 と、以上で書きたいことは終わってしまったのですが、 これだけでは他の方には無益なコメントになってしまうので、 前のを少し改良したものを載せておきます。 今度のだと、 ソースの記述もむやみに複雑とはならずに、 \global は使わないのでネストも可能で、 フォントの変更も“行単位”より細かくできる、 ようになっているので、ぐっと実用性が増したかと思います。 14385に >私の場合、 > i) ソースの \begin{document} 以降はなるべく変更しない。 >ii) \global はなるべく使わない(あとを濁さずということ) >というのをしばりにして、詰め将棋ならぬ「詰めTeX」を楽しんでいます。(^-^) と書きました。 i)として、今回の場合にはグルーピングにブレイス({})を使いたいというわけで、 ブレイスをアクティブ文字にしていましたが、そうすると、 マクロの引数などにブレイスが使えなくなってしまいます。 i)のしばりはゆるめるとして、グルーピングには \beginfontgroup と \endfontgroup を 使うことにしました。 ソースの記述は少し面倒になりますが、守備範囲が広がるとともに、 マクロ定義もシンプルになるメリットがあります。 さらに、14368で >>要は & をアクティブにして,然るべき処理(ここではグループの終了・開始と >>使用フォントの設定)を行わせるということですね. >グループの終了・開始はやっていませんでしたね.失礼しました. と指摘されたように、グルーピングはやっていなかったのですが、ここも変更して、 自前のグルーピング機能(フォントに関するもののみ)を実装しました。 アラインメント特有の細切れのグルーピングから独立させるために骨を折りましたが、 何とか、ネストも可能なグルーピングが実現できました。 下の例では、フォントグループをネストしていて、グループを抜けたときに、 フォントの復帰がうまくいっているのが見て取れます。 しかし、内側の \LARGE のところで、ゴシックではなくなっています。 これは、NFSS のフォント属性を保存していないからです。 NFSS への対応も可能だとは思いますが、このあたりは詳しくないので、 どなたか詳しい方にフォローしていただきたいところです。 \documentclass{jarticle} \def\fontsettings{\the\font\the\jfont\the\tfont} \def\resetTab{\catcode`\&=4\relax} \def\beginfontgroup{\saveCurrentFont\setFontGroupTab} \def\endfontgroup{\resetTab\restoreFont} \def\fontstack{} \catcode`\&=13 \def\setFontGroupTab{\catcode`\&=13\let&\fontGroupTab} \resetTab \makeatletter \def\fontGroupTab{% \let\@elt\relax \edef\\{&\fontsettings\def\noexpand\fontstack{\fontstack}}% \\\setFontGroupTab} \def\saveCurrentFont{% \begingroup \let\@elt\relax \edef\\{\endgroup\def\noexpand\fontstack{\@elt{\fontsettings}\fontstack}}% \\} \def\restoreFont{% \begingroup \let\@nil\endgroup \def\@elt##1##2\@nil{\@nil\def\fontstack{##2}##1}% \fontstack\@nil} \makeatother \begin{document} \begin{tabular}[c]{|rr|rrr|} \hline & & \tracingall 唇の\beginfontgroup\small\gtfamily 丸め & 舌の前\beginfontgroup \LARGE 後位置 & 舌の\endfontgroup 高さ\endfontgroup (口の開き)\\ \hline あああ & いいい & ううう & えええ & おおお\\ \hline \end{tabular} \end{document}

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)