発言者: 石原 守
発言日: 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