Re: 英文を複数行にわたって背景色をつけたい

名前: .
日時: 2009-11-02 13:13:10
IPアドレス: 59.134.169.*

>>53912 >よい解決方法 既製品が存在するとは限らない処理を望み,かつ,その処理がどうしても必要なら, 「『マクロ作成』についての学習を行い,必要な処理を自力で実現できるようにする」 とよろしいでしょう. とりあえず,ここでは次のことを述べるにとどめます. ・23811 に書いてあるのは,基本的に「和文専用」 ・次のサンプルのような処理は一応可能 # これは,23811 のコメントにある,「『行分割可能な下線』を出力する # ようなパッケージでの『下線の出力処理』の部分を『背景色の設定処理』に # 書き換えたようなもの」の一例 \documentclass{article} \usepackage{color,ulem} \makeatletter \newdimen\ULheight \def\ULset{% \setbox\UL@box\hbox{(j}% \ULdepth\dp\UL@box \ULheight\ht\UL@box \def\UL@leadtype{\leaders \hrule \@height\ULheight \@depth\ULdepth}% \global\let\@saved@specials\@empty \ULon} \def\UL@leaders{% {\ifx\ULcolor\@empty\else \aftergroup\@fetch@command \ULcolor \fi \LA@hskip-\UL@pixel \advance\UL@skip\tw@\UL@pixel \UL@leadtype\LA@hskip\UL@skip \LA@hskip-\UL@pixel}} \def\UL@putbox{% \ifx\UL@start\@empty \else % not inner \@flush@specials \hbox{\UL@skip\wd\UL@box \UL@leaders \kern-\UL@skip \@flush@specials \box\UL@box}% \fi} \def\UL@word#1 {% \expandafter\UL@start#1 % \expandafter\ifx\expandafter\UL@end#1\egroup\egroup \unskip \unskip \unskip % remove extra leader at end \@flush@specials \spacefactor\UL@spfactor \let\UL@word\egroup \else % not finished \ifmmode\else \ifdim\lastskip=\z@\else % allow syntactical spaces \global\UL@skip\lastskip \unskip \UL@stop \UL@leaders \fi\fi \fi \UL@word\@empty}% \@empty preserves braces in param \def\@flush@specials{% \@saved@specials \global\let\@saved@specials\@empty} \def\@fetch@command#1{% \expandafter\gdef\expandafter\@saved@specials\expandafter{% \@saved@specials#1}} \let\ULcolor\empty \makeatother \begin{document} \def\ULcolor{\color{cyan}} \uline{This is a meaningless sample text. This is a meaningless sample text. This is a meaningless sample text. This is a meaningless sample text.} \end{document}

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)