Re: 下線に色をつける

名前: しっぽ愛好家
日時: 2003-04-16 16:02:53
IPアドレス: 211.4.116.*

>>18144 行分割を考えなくてもよいのなら, \textcolor{blue}{\underline{\textcolor{black}{青い下線付きのテキスト}}} くらいの記述でどうにかなるのですが… 行分割を考えたとしても,下線そのものを追加する処理に色の指定を 追加すればいいので,とりあえず,次のようにすることができます. %%% 下記の定義は,あくまでも対処法の説明のための定義なので, %%% 実際には既製品の定義に含まれている下線の追加処理を %%% いじった方がよいでしょう. \makeatletter %%% 使用法: \coloredunderline[<下線の色の名称>]{<テキスト>} \def\coloredunderline{\@testopt\@coloredunderline{black}} \def\@coloredunderline[#1]#2{% \leavevmode \begingroup \@tempcnta\z@ \edef\@coloredunderline@color{\noexpand\color{#1}}% \let\@coloredunderline@prevletter\@empty \@coloredunderline@loop#2\@nil \endgroup} \def\@coloredunderline@loop#1{% \def\@coloredunderline@temp{#1}% \ifx\@coloredunderline@temp\@nnil \ifx\@coloredunderline@prevletter\@empty\else \setbox\z@\hbox{\@coloredunderline@prevletter}% \hbox{% {\@coloredunderline@color%%% 色指定 \vrule \@height-2.6\p@ \@depth3\p@ \@width\wd\z@}%%% 下線 \kern-\wd\z@ \box\z@}% \fi \else \ifx\@coloredunderline@prevletter\@empty\else \setbox\z@\hbox{\@coloredunderline@prevletter#1}% \setbox\tw@\hbox{\@coloredunderline@prevletter}% \setbox4\hbox{#1}% \dimen@\wd\z@ \advance\dimen@-\wd\tw@ \advance\dimen@-\wd4 \hbox{% {\@coloredunderline@color%%% 色指定 \vrule \@height-2.6\p@ \@depth3\p@ \@width\wd\tw@}%%% 下線 \kern-\wd\tw@ \box\tw@}% \@coloredunderline@typecheck@a{#1}% {\@coloredunderline@color%%% 色指定 \penalty\@tempcnta \leaders \vrule \@height-2.6\p@ \@depth3\p@ \hskip \dimen@ \@plus\p@ \@minus.5\p@}%%% (文字間の)下線 \fi \@coloredunderline@typecheck@b{#1}% \def\@coloredunderline@prevletter{#1}% \expandafter\@coloredunderline@loop \fi} \def\@coloredunderline@typecheck@a#1{% \def\@tempa{#1}% \@tfor\@tempb:=% 、。.,'.{,}ー!?!?)\}])}]」〕〉》』】>≫・ ぁぃぅぇぉっゃゅょゎァィゥェォッャュョヮヵヶ \do{\ifx\@tempa\@tempb \@tempcnta\@M \@break@tfor\fi}} \def\@coloredunderline@typecheck@b#1{% \@tempcnta\z@ \def\@tempa{#1}% \@tfor\@tempb:=`(\{[({[「〔〈《『【<≪ \do{\ifx\@tempa\@tempb \@tempcnta\@M \@break@tfor\fi}} \makeatother (例) \coloredunderline{これは,複数行にわたる長い下線をつける実験です. これは,(複数行にわたる)長い下線をつける実験です.} \coloredunderline[blue]{これは,複数行にわたる長い下線をつける実験です. これは,(複数行にわたる)長い下線をつける実験です.} [注意] 上記の定義を用いた場合,下線をつけた範囲での書体・文字サイズの変更は, {\bfseries ボールド体},{\large 大きな文字} の形式で行うことが 一応できますが,{ と } で囲んだ範囲は ``1 文字扱い'' となってしまいます. i.e. 書体・文字サイズの変更箇所の途中での行分割が行われなくなります. %%% これに対処するのは…手間がかかります. %%% %%% それゆえ,既製品に手を加えた方がいいかもしれない, %%% %%% ということになります.

この書き込みへの返事:

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