Re: mathchoice と settoheight

名前: 斎藤
日時: 2002-08-24 23:25:48
IPアドレス: 202.219.117.*

>>10384 お返事が遅くなってすみません。 トノさん,角藤さん,どうもありがとうございます。 角藤さんの <A HREF="10353.html">10353</A>, トノさんの <A HREF="10384.html">10384</A> は非常に勉強になりました。 私がやりたかったのは,以下のようにベクトルの矢印の高さを調節することでした。 参考まで。 \documentclass{jarticle} \usepackage{amsmath,amssymb} \begin{document} \makeatletter \newcommand*{\saveheight}[2]{% % 第1引数は識別用のラベル。高さを測る対象は第2引数として指定する。 \mathchoice{% \settoheight{\@tempdima}{$\displaystyle#2$}\@writeheight{#1}% }{% \settoheight{\@tempdima}{$\textstyle#2$}\@writeheight{#1}% }{% \settoheight{\@tempdima}{$\scriptstyle#2$}\@writeheight{#1}% }{% \settoheight{\@tempdima}{$\scriptscriptstyle#2$}\@writeheight{#1}% }% } \newcommand*{\@writeheight}[1]{% \edef\reserved@a{% \write\@auxout{% ラベルの重複のチェックをしていない!! \string\global\string\@namedef{savedheight:#1}{% \the\@tempdima }% }% }% \reserved@a } \newcommand*{\useheight}[1]{% 引数には、識別用のラベルを指定する。 \@ifundefined{savedheight:#1}{\z@}{\@nameuse{savedheight:#1}}% } \makeatother \newcounter{vecnum} \newlength{\Temporarylength} \newlength{\newTemporarylength} \newcommand{\ve}[1]{% \stepcounter{vecnum}% \saveheight{\thevecnum}{#1}% \setlength{\Temporarylength}{\useheight{\thevecnum}}% \setlength{\newTemporarylength}{\Temporarylength}% \divide\newTemporarylength by 10% \addtolength{\Temporarylength}{\newTemporarylength}% \overrightarrow{#1\rule{0pt}{\Temporarylength}}% } $\ve{a}+\ve{b}$, $\frac{\ve{a}+\ve{b}}{2}$, $\frac{\frac{\ve{a}+\ve{b}}{2}}{2}$ \[ \ve{a}+\ve{b} \] \end{document}

この書き込みへの返事:

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