emath BBS

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

No.7568  Re[2]:空間座標での平行記号
発言者: 石原 守
発言日: 2008 09/28 20:36
発言元: ntchba121154.chba.nt.adsl.ppp.infoweb.ne.jp
田中さんの回答とemathPhの\Heikoukigouの定義とをにらめっこして
\iiiheikoukigou(\iiiheikoukigou)もどきを作ってみました。

\documentclass{jarticle}
\usepackage{emathP}
\makeatletter
\def\iiiheikoukigou{\edef\iiiheikoukigou@nomi{0}\@ifstar{\edef\iiiheikoukigou@nomi{1}\@iiiheikoukigou}{\@iiiheikoukigou}}
\def\@iiiheikoukigou{\@ifnextchar[{\@@iiiheikoukigou}{\@@iiiheikoukigou[1]}}
\def\@@iiiheikoukigou[#1]#2{%
    \def\iiiheikoukigou@sub(##1,##2)(##3,##4){%
      \edef\iiiheikoukigou@a{(##1,##2)}%
      \edef\iiiheikoukigou@b{(##3,##4)}}%
  \argsep{#2}{;}{iiiheikoukigou@tmp}\iiiheikoukigou@n
  \Cfor{\edef\iiiheikoukigou@i{0}}{\iiiheikoukigou@i<\iiiheikoukigou@n}{}\do{%
    \Incr\iiiheikoukigou@i
    \edef\iiiheikoukigou@arg{%
      \csname iiiheikoukigou@tmp\romannumeral\iiiheikoukigou@i\endcsname}%
    \expandafter\iiiheikoukigou@sub\iiiheikoukigou@arg
    \@iiiHeikoukigou[#1]\iiiheikoukigou@a\iiiheikoukigou@b
  }%
}
%
\def\HK@kankaku{1mm}%
\def\iiiHeikoukigouKankaku#1{\def\HK@kankaku{#1}}%
%
\def\iiiHeikoukigou{\edef\iiiheikoukigou@nomi{0}\@ifstar{\edef\iiiheikoukigou@nomi{1}\@iiiHeikoukigou}{\@iiiHeikoukigou}}
\def\@iiiHeikoukigou{\@ifnextchar[{\@@iiiHeikoukigou}{\@@iiiHeikoukigou[1]}}
\def\@@iiiHeikoukigou[#1]#2#3{{\def\ArrowHeadType{l}%
  \Piiitoii{#2}\iiTi
  \Piiitoii{#3}\iiTii
  \ifnum\EMps@mode=\@ne\gsave\fi
%
  \def\put@iiiHeikoukigou##1{%
    \Sub{1}{##1}\p@Hk@b
    \@Bunten{\iiTi}{\iiTii}{##1}\p@Hk@b\p@Hk@P
    \Put\p@Hk@P{\Phyaziri\HK@vec}%
  }%
%
  \def\HK@kosuu{1}%
  \def\HK@iti{.5}%
  \def\HK@size{2}%
  \ukansan{\HK@kankaku}\HK@ukankaku
  \Subvec{\iiTii}{\iiTi}\HK@vec
  \Kyori{\iiTi}{\iiTii}\HK@kyori
  \Div\HK@kyori{2}\HK@hkyori
  \define@key{emP}{heikoukigouiti}{\def\HK@iti{##1}}%
  \define@key{emP}{heikoukigoukosuu}{\def\HK@kosuu{##1}}%
  \define@key{emP}{heikoukigousize}{\def\HK@size{##1}}%
  \define@key{emP}{heikoukigoukankaku}{\ukansan{##1}\HK@ukankaku}%
  \Strchr{#1}{=}\HK@tmp
  \ifnum\HK@tmp>\z@\setkeys{emP}{#1}\else\def\HK@kosuu{#1}\fi
  \changeArrowHeadSize{\HK@size}%
  \ifnum\HK@kosuu=\@ne
    \put@iiiHeikoukigou{\HK@iti}%
  \else\ifnum\HK@kosuu=\tw@
    \put@iiiHeikoukigou{\HK@iti}%
    \Div\HK@ukankaku\HK@kyori\HK@tmp
    \Sub\HK@iti\HK@tmp\HK@@iti\put@iiiHeikoukigou{\HK@@iti}%
  \else\ifnum\HK@kosuu=3\relax
    \put@iiiHeikoukigou{\HK@iti}%
    \Div\HK@ukankaku\HK@kyori\HK@tmp
    \Sub\HK@iti\HK@tmp\HK@@iti\put@iiiHeikoukigou{\HK@@iti}%
    \Sub\HK@@iti\HK@tmp\HK@@iti\put@iiiHeikoukigou{\HK@@iti}%
  \else\ifnum\HK@kosuu=4\relax
    \put@iiiHeikoukigou{\HK@iti}%
    \Div\HK@ukankaku\HK@kyori\HK@tmp
    \Sub\HK@iti\HK@tmp\HK@@iti\put@iiiHeikoukigou{\HK@@iti}%
    \Sub\HK@@iti\HK@tmp\HK@@iti\put@iiiHeikoukigou{\HK@@iti}%
    \Sub\HK@@iti\HK@tmp\HK@@iti\put@iiiHeikoukigou{\HK@@iti}%
  \else
    \errmessage{emathPh Error : 平行記号の個数は 1,2,3,4 のいずれかです。}%
  \fi\fi\fi\fi
  \ifnum\EMps@mode=\@ne\grestore\fi
  \ifnum\iiiheikoukigou@nomi>\z@\else
    \Drawline{\iiTi\iiTii}%
  \fi
  }}%
%
\makeatother
\begin{document}
  \begin{Zahyou*}[ul=4mm,Ex={r(1,0)},Ey={r(0.668,25)}
  ,Sitayohaku=8mm,Ueyohaku=5mm
  ](-.5,8.5)(-.5,4.5)(-.5,4.5)
   \iiitenretu{D(0,4,4)n;A(0,0,4)w;B(8,0,4)se;C(8,4,4)e;%
     H(0,4,0)nw;E(0,0,0)sw;F(8,0,0)s;G(8,4,0)se}
   \iiiheikoukigou[3]{\A\F;\D\G}
   \iiiDrawline{\A\F}
   \iiiDrawline{\D\G}
   {\thicklines
   \Kakutyuu{EFG}{H}{A}
   }
  \end{Zahyou*}
\end{document}

▼関連発言

7564:空間座標での平行記号 [tanak] 09/26 22:25
 ├7565:--- [---] 09/27 12:05
 └7566:Re:空間座標での平行記号 [田中徹] 09/27 12:13
  ├7567:Re[2]:空間座標での平行記号 [tanak] 09/27 18:21
  └7568:Re[2]:空間座標での平行記号 [石原 守] 09/28 20:36
   └7578:Re[3]:空間座標での平行記号 [tanak] 10/02 19:39<-last

Pass 保存


CGIROOM