発言者: 田中徹
発言日: 2007 01/03 13:21
発言元: 218.110.28.167
本年度もよろしくお願いいたします。>皆様
> どうも,列間隔が大きく,
\arraycolsep を適切に調整する。
副作用まで考えるのならグルーピングまで面倒をみる。
> また,縦棒との隙間が小さいようです.
後述のソースでは
\def\@前余白{\text{前}}%
\def\@後余白{\text{後}}%
としましたが
\, や \: など、好みで変更した後 \arraycolsep で
適切に整えることになると思います。
\documentclass{jarticle}
\usepackage{emath}
\makeatletter
% 一般の行列式
% ex. \vgyouretu{1,2;3,4;5,6;7,8,9}
\def\vgyouretu{\@ifnextchar[{\@vgyouretu}{\@vgyouretu[\gyouretu@haiti]}}
\def\@vgyouretu[#1]#2{{\let\EMdef\gdef
\def\gyouretu@haiti@{#1}{% ←
\ensuremath{%
\def\@前余白{\text{前}}%
\def\@後余白{\text{後}}%
\arraycolsep=1pt%
\begin{vmatrix}%
\Cfor%
{\Strsep{#2}{;}\pM@tempa\pM@tempb}%
{\not\equal\pM@tempa\empty}%
{\Strsep\pM@tempb{;}\pM@tempa\pM@tempb}%
\do{%
\Cfor%
{\xdef\lntop{0}\Strsep\pM@tempa{,}\pM@tempc\pM@tempd
}%
{\not\equal\pM@tempc\empty}%
{\Strsep\pM@tempd,\pM@tempc\pM@tempd
}%
\do{%
\ifthenelse{\lntop=\z@}{%
\xdef\lntop{1}{\@前余白}\pM@tempc{\@後余白}
}{%
&\pM@tempc{\@後余白}
}%
}
\ifthenelse{\equal\pM@tempb\empty}{}{\\}%
}
\end{vmatrix} }
}}}
\makeatother
\begin{document}
\[\vgyouretu{
a_{11},a_{12},a_{13};a_{21},a_{22},a_{23};a_{31},a_{32},a_{33}}
=(-1)^{1+1}a_{11}\vgyouretu{a_{22},a_{23};a_{32},a_{33}}
+(-1)^{2+1}a_{21}\vgyouretu{a_{12},a_{13};a_{32},a_{33}}
+(-1)^{3+1}a_{31}\vgyouretu{a_{12},a_{13};a_{22},a_{23}}\]
\end{document}
本題と関係ありませんが
> % ex. \vgyouretu{1,2;3,4;5,6;7,8,9}
は、矩形な行列にならないようですね。
▼関連発言
│
└◆5445:\vgyouretu の作成 [TaD] 01/03 12:43
├◆5446:Re:\vgyouretu の作成 [石原 守] 01/03 13:19
├◆5447:Re:\vgyouretu の作成 [田中徹] 01/03 13:21
├◆5448:Re:\vgyouretu の作成 [tDB] 01/03 13:30
│├◆5449: 縦ピッチ [tDB] 01/03 13:49
│├◆5450: 横間隔 [tDB] 01/03 14:14
│└◆5452:emath.sty v 1.72 [tDB] 01/03 16:35
│ └◆5453:emath.sty v 1.73 [tDB] 01/06 11:00
│ ├◆5454:Re:emath.sty v 1.73 [TaD] 01/06 12:11
│ └◆5455: 訂正 [tDB] 01/06 13:16<-last
└◆5451:Re:\vgyouretu の作成 [TaD] 01/03 15:16