名前: 北見 けん 日時: 2001-11-13 19:44:42 IPアドレス: 202.25.71.*
>>3678 まず、これから。 >% \begingroup\def\iffalse{\iftrue\endgroup}\let\fi\fi% >この部分も何やら凄そう. >私は,二つの定義を切替える時は今まで,\iftrue,\iffalse をそ >の都度書き換えていたのですが,このまま何かの名前で定義すれば, >使用できるのでしょうか. いや、私も普段はそうしています。切替えるためにある行に“%”を加えて、 別の行から“%”を削除するという二つのことをやっています。 ## 実はエディタのマクロを作って、 ## 「選択範囲の“%”は削除して、“%”の無い行には“%”を挿入する」 ## ということを一発でできるようにしてあるのですが・・・ ですが、今回はこのめんどくさい作業をひとさまにさせるのは気が引けて、 急遽でっち上げたのがこれでした。 ## 切替えテキストの中の \if と \fi がつりあっている必要があります。 いま、latex.ltx を見なおしたら便利なマクロがありましたね。 \long\def\@firstoftwo#1#2{#1} \long\def\@thirdofthree#1#2#3{#3} これを使って、以下のようにすると同じことができますね。 ## でも、\outer なマクロがあったら駄目かも。 ## あと、\catcode をいじるようなのも。 %\@thirdofthree \@firstoftwo {% text1 }{% text2 }% 他の皆さんも独自の方法を持っていそうな気も・・・ %%%%%%%%%%%%%%%%% さて、 >追伸: >以下,3.の問題が生じているコードの全文です. >何か私が勘違いかおかしな事をしていると思うのですが,お時間が >あれば,お気づきの点などを教えて頂けると幸いです. これですが、私の勘違いで何度も手間をかけさせてしまって申しわけありません。 よく見ていなかっただけで、確かにおっしゃる通りの症状でした。 3675にも書いた通り、\unskip で行間グルーを取り除いて、 再び TeX に行間グルーを入れさせる方法は駄目でした。 よく考えれば当たり前なのですが、偶然同じ深さを持つ行が続いたときには うまくいくので、当初はうっかりこれでよいと思い込んでいました。 意識していなかったのですが、3675では 「\unskip はやめて、行間グルーを残しておくことにして、 次に TeX が行間グルーを入れないように、\prevdepth=-1000pt とする」 というよい方法に切り換えていましたね。 3675のやつだとうまくいっていると思います。
この書き込みへの返事: