網掛けの枠で囲む

名前: 双子山
日時: 2006-01-10 16:30:42
IPアドレス: 58.87.160.*

組版機で整版された雑誌に,最近,例題を囲む枠が 「四隅が弧,上辺の一部にタイトルを入れる, 枠線が太枠で(真っ黒でなく)20%程度の網掛け」 になっているバージョンが増えています. これをTeXで実現できないかと考えています. The advanced TeX book(David Salomon p.224) に網掛け枠らしいのがあるのでためそうとしました. special postscriptの基本的な注意を知らないためか, できませんでした. \devide\tmpk by2 のところでひっかかるようです. \tmpk=0.5\tmpkでも同じかと思い, そう変えると動きはしますが,期待した結果は得られません. どこがまずいのかご教示をいただけましたら幸いです. 以下の方法にこだわっているわけではないので,他の方法が あればご指導をお願い致します. \documentclass[fleqn,a4paper]{jsarticle} \usepackage{amsmath} \makeatletter \newdimen\tmp \newdimen\tmpw \newdimen\tmpk \newdimen\tmph \newcount\heit \newcount\widf \newcount\strk \newcount\radius \def\shade#1,#2,#3,#4,#5\\{% \setbox1=\hbox{#5}% \def\inner{#3}\ifx\inner\empty \strk=0 \else\strk=#3\fi \def\inner{#4}\ifx\inner\empty \radius=0 \else\radius=#4\fi \tmp=#2 \tmp=2\tmp \advance\tmp\wd1 \widf=\tmp \divide\widf65536 \tmp=#2 \tmp=2\tmp \advance\tmp\ht1 \heit=\tmp \divide\heit65536 \setshadebox{#1}{\the\heit}{\the\widf}{\the\strk}{\the\radius}% \tmp=#2 \tmpw=#2 \tmpw=2\tmpw \advance\tmpw by\the\strk pt \advance\tmpw\wd1 \tmpk=\the\strk pt \devide\tmpk by2 \tmph=#2 \tmph=2\tmph \advance\tmph by\the\strk pt \advance\tmph\ht1 \vbox to\tmph{\vfil \hbox to\tmpw{% \kern\tmpk\lower\tmp\box0\kern-\tmpk\hfil\box1\hfil}\vfil}} \def\setshadebox#1#2#3#4#5{% % #1-setgray,#2-heit,#3-widf,#4-stroke,#5-radius \setbox0=\vbox to\tmp{\hsize=0pt\vfil\special{postscript /fpops{4 {pop} repeat} def #3 0 moveto 0 0 0 #2 #5 arcto %this calc. the start point & leaves it in stak newpath % start the rounded-corner rectangle moveto % the coordinate are in stack 0 #2 #3 #2 #5 arcto fpops #3 #2 #3 0 #5 arcto fpops #3 0 0 0 #5 arcto fpops 0 0 0 #2 #5 arcto fpops closepath #4 0 ne {gsave #4 setlinewidth stroke grestore} if % stroke width of zero not recommended #1 setgray fill}}} \makeatother \begin{document} \shade0.5,5pt,1,5,\hbox{\shade.99,5pt,1,3,% A Nested Expansion\\}\\ \end{document}

この書き込みへの返事:

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