名前: 寒川 日時: 2004-07-08 15:36:15 IPアドレス: 203.141.89.*
>>30172 \\ を セパレータの意味で,\SP というマクロ名に変更して,頭に\def\SP{\relax} を入れてみたのですが,demobox を使用した後のテキストがどこかに吸い込まれて しまっているようです. demobox{A translator... } をコメントアウトすると 後ろの文章はでてくるのですが,\endlist の関係でしょうか? \documentclass{jarticle} % \textheight 235mm \textwidth 158mm \oddsidemargin 0mm \evensidemargin 0mm %%%%%%%%%%%%% p.419 \def\SP{\relax} \def\dolist{\afterassignment\dodolist\let\next= } \def\dodolist{\ifx\next\endlist \let\next\relax \else \SP\let\next\dolist \fi \next} \def\endlist{\endlist} \def\hidehrule#1#2{\kern-#1% \hrule height#1 depth#2 \kern-#2 } \def\hidevrule#1#2{\kern-#1{\dimen0=#1 \advance\dimen0 by#2\vrule width\dimen0}\kern-#2 } \def\makeblankbox#1#2{\hbox{\lower\dp0\vbox{\hidehrule{#1}{#2}% \kern-#1 % overlap the rules at the corners \hbox to \wd0{\hidevrule{#1}{#2}% \raise\ht0\vbox to #1{}% set the vrule height \lower\dp0\vtop to #1{}% set the vrule depth \hfil\hidevrule{#2}{#1}}% \kern-#1\hidehrule{#2}{#1}}}} \def\maketypebox{\makeblankbox{0pt}{1pt}} \def\makelightbox{\makeblankbox{.2pt}{.2pt}} \def\SP{\expandafter\if\space\next\ % ここが\expandafter{\if\space...になってた, % また\で行が終わるので%を入れられない \else \setbox0=\hbox{\next}\maketypebox\fi} \def\demobox#1{\setbox0=\hbox{\dolist#1\endlist}% \copy0\kern-\wd0\makelightbox} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} This is Tough exercise \TeX がフォントの位置決めするときは,文章は四角のボックスの集まりとして扱っている. 例文と,それがボックスの集合で扱われる様子を比較してみる.\\ \hfill{A translator is a program which translates a source program into an equivalent object program.} \hfill{\demobox{A translator is a program which translates a source program into an equivalent object program.}} \demobox{A translator is a program which translates a source program into an equivalent object program.} demobox の後ろのソーステキストがどこかに吸い込まれてしまっているようだ.\\ これでよいか. これでよいか. これでよいか. \end{document}
この書き込みへの返事: