emath BBS

新規発言一覧最新記事過去一覧検索HOME

No.3638  Re:マニュアルの例でほしかったことなど
発言者: tDB
発言日: 2005 10/01 16:28
発言元: 61.121.39.84
いろいろと貴重なご意見をありがとうございます。
次版に取り入れるべく検討させていただきます。

> ・単位長さが小さい場合の図の書き方

TeX は,計算ソフトではありませんから,
それに計算をさせることには限界があります。

大きい数の掛け算は --- 256*256 --- でオーバーフローします。
小さい数同士の掛け算では,桁落ちします。
例えば
    0.00294*0.02718
の結果は,下の re3635a.tex を実行してみてください。
(このリストには,emath は関係していません。)
それと近い計算結果との差を作ると 0 となってしまいます。

ということで,\unitlength を 10mm 程度に設定することで
TeX の計算精度でなんとかしようというのが emath パッケージの苦しい台所事情です。

この桁落ちは,ad-bc の計算,
例えば \LandL など二直線の交点を求める際,顕著に表れます。
(この件では,斜線塗りにおける斜線と境界との交点を
   \Landl
 で求めています。)
そこで \LandLweight で,座標成分を weight倍することで,
防ぐ工夫もしています。その部分に問題点がありましたので

    http://emath.s40.xrea.com/temp/Ph236sty.lzh

に改定版を置きました。

> ・開いた領域に斜線を引く方法

この場合ですと
    \XMAX : 横軸の右端
    \RT   : 座標平面右上
    \YMAX : 縦軸上端
を用いると良いでしょう。

> ・yasen<[..]{...}>では斜線がかぶってしまう

これは \colorbox{white}{...} で対処できます。

> ・\captionを書くとエラーになる

\caption は figure環境などフロートの中でのみ使用可能です。
(LaTeX の仕様)
下では,emathCap.sty で定義してある \fgcaption を用います。

以上の点を修正したリストを,下 re3635b.tex とします。

% --- re3635a.tex --------------------
\documentclass{jarticle}
\newdimen\mydimen

\begin{document}
\mydimen=0.00294pt
\mydimen=0.02718\mydimen
\the\mydimen
\end{document}

% --- re3635a.tex --------------------
\documentclass[a4j]{jarticle}
\usepackage{emathP}
\usepackage{emathCap}

\begin{document}
\begin{center}
\begin{zahyou}[ul=900mm,yokozikukigou=$x_1$,tatezikukigou=$x_2$]%
              (-.01,.085)(-.01,.06)%
\LandLweight{100}% LandL などで交点を求める際,桁落ちを防止するため,各座標を100倍して計算
  \tenretu*{A(.05,0);B(0,.02);%
            Q(0,.0285714);R(0.00294118,.0235294);S(.025,.0125);T(.0666667,0);U(.082,0);V(.082,.057)}
  \Nuritubusi*<syanuriKankaku=5pt>{\YMAX\Q\R\S\T\XMAX\RT}
  \thicklines
  \Drawline{\YMAX\Q\R\S\T\XMAX}
  \thinlines
  \Put\A[sw]{$0.05$}
  \Put\B[sw]{$0.02$}
  \tyokusen{20}{40}{-1}{}{}% samplep.pdf p.149
    \fboxsep=1.2pt\relax
    \Put{(.019,.017)}{\colorbox{white}{$20x_1+40x_2=1$}}
  \tyokusen{15}{50}{-1}{}{}
    \Put{(.05,0.007)}{\colorbox{white}{$15x_1+50x_2=1$}}
  \tyokusen{60}{35}{-1}{}{}
    \Put[background=white]{(-0.5,4)}{$60x_1+35x_2=1$}
    \Put{(0.002,.028)}{\colorbox{white}{$60x_1+35x_2=1$}}
  {\allinethickness{0.5pt}%
   \def\sensyu{\hasen}
   \tyokusen{340}{340}{-9}{}{}%
  }
  \Put{(.036,-0.008)}{\colorbox{white}{$z_*=x_1+x_2$}}
  \Put\R[syaei=xy,xlabel=\frac1{340},ylabel=\frac2{85}]{}
  \thicklines
  \Put{(.05,.05)}{%
    \yasen<[se]{\colorbox{white}{減少方向}}>(-.01,-.01)}
  \thinlines
\end{zahyou}%
%% 本来,フロートでのみ使用される \caption を一般に使用するために修正したコマンド
\fgcaption{問題 $\mbox{P}'_1$ の実行可能領域と最小解}
\end{center}
\end{document}

▼関連発言

3635:マニュアルの例でほしかったことなど [oga] 09/30 21:10
 ├3637:Re:マニュアルの例でほしかったことなど [田中徹] 10/01 05:15
 └3638:Re:マニュアルの例でほしかったことなど [tDB] 10/01 16:28
  ├3639:Re[2]:(ありがとうございます)マニュアルの例でほしかったこ.. [oga] 10/02 21:15
  └3646:Re[2]:tDBさんのソースを少しいじってみたら射影線が出ない.. [oga] 10/04 20:39
   └3647:Re[3]:tDBさんのソースを少しいじってみたら射影線が出な.. [tDB] 10/04 21:23
    └3648:Re[4]:ちゃんと出ました--tDBさんのソースを少しいじっ.. [oga] 10/04 22:00<-last

Pass 保存


CGIROOM