diff options
author | Karl Berry <karl@freefriends.org> | 2007-01-10 23:29:34 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-01-10 23:29:34 +0000 |
commit | 3c5a9cf8c246db8ac28a55b88dc0f876d470c2f6 (patch) | |
tree | 89b614ed8d60021ae583e867c3da812b6dcf1a7a /Master/texmf-dist/tex/latex/pst-dbicons | |
parent | fc8eb0e4ec334c2b5c3dde3c930dd973edf2b05d (diff) |
new pstricks package pst-dbicons (27nov06)
git-svn-id: svn://tug.org/texlive/trunk@3319 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/pst-dbicons')
-rw-r--r-- | Master/texmf-dist/tex/latex/pst-dbicons/pst-dbicons.sty | 266 |
1 files changed, 266 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/pst-dbicons/pst-dbicons.sty b/Master/texmf-dist/tex/latex/pst-dbicons/pst-dbicons.sty new file mode 100644 index 00000000000..69d82e57b93 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pst-dbicons/pst-dbicons.sty @@ -0,0 +1,266 @@ +%% +%% This is file `pst-dbicons.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pst-dbicons.dtx (with options: `package') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from pst-dbicons.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file pst-dbicons.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\def\filedate{2006/11/26} +\def\docdate{2006/11/26} +\def\fileversion{0.2} +\def\basename{pst-dbicons} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\RequirePackage{pstricks} +\RequirePackage{pst-node} +\typeout{Style `\basename', Version \fileversion\space <\filedate>} +\ProvidesPackage{pst-dbicons}[\filedate \space\fileversion] +\def\seticonparams#1#2{\expandafter\def\csname #1@parm\endcsname{[#2]}} +\seticonparams{entity}{fillstyle=none} +\seticonparams{relationship}{fillstyle=none} +\seticonparams{attribute}{fillstyle=none} +\def\dbi@purifylabel#1#2{% + \begingroup + \edef\_{\string_}% + \edef\textunderscore{\string_}% + \edef\x{\endgroup + \def\noexpand#1{#2}% + }% + \x +} +\def\entity{% + \@ifnextchar[{\entity@i}{\entity@i[normal]}} +\def\entity@i[#1]#2{% + \@ifnextchar[{\entity@ii{#1}{#2}}{\entity@ii{#1}{#2}[#2]}} +\def\entity@ii#1#2[#3]{\csname entity@#1\endcsname{#2}{#3}} +\def\entity@normal#1#2{% + \dbi@purifylabel{\dbi@prfd@nodename}{#1}% + \rnode{\dbi@prfd@nodename}{\expandafter\psframebox\entity@parm{\strut#2}}} +\def\entity@weak#1#2{% + {\psset{doubleline=true}% + \dbi@purifylabel{\dbi@prfd@nodename}{#1}% + \rnode{\dbi@prfd@nodename}{\expandafter\psframebox\entity@parm{\strut#2}}}} +\def\attribute{% + \@ifnextchar[{\attribute@i}{\attribute@i[sv]}} +\def\attribute@i[#1]#2{% + \@ifnextchar[{\attribute@ii{#1}{#2}}{\attribute@ii{#1}{#2}[#2]}} +\def\attribute@ii#1#2[#3]{\csname attribute@#1\endcsname{#2}{#3}} +\def\attribute@mv#1#2{{\psset{doubleline=true}% + \dbi@purifylabel{\dbi@prfd@nodename}{#1}% + \expandafter\ovalnode\attribute@parm{\dbi@prfd@nodename}{#2}}} +\def\attribute@sv#1#2{% + \dbi@purifylabel{\dbi@prfd@nodename}{#1}% + \expandafter\ovalnode\attribute@parm{\dbi@prfd@nodename}{#2}} +\def\attribute@key#1#2{ + \dbi@purifylabel{\dbi@prfd@nodename}{#1}% + \expandafter\ovalnode\attribute@parm{\dbi@prfd@nodename}{\underline{#2}}} +\newdimen\@attrdist +\@attrdist2em % Default value for distance of attribute from entity +\def\attrdist#1{\@attrdist#1} % set default distance +\def\attributeof#1{% + \@ifnextchar[{\attributeof@i{#1}}{\attributeof@i{#1}[\attrdist]}} +\def\attributeof@i#1[#2]#3{% + \@ifnextchar[{\attributeof@ii{#1}[#2]{#3}}{\attributeof@ii{#1}[#2]{#3}[sv]}} +\def\attributeof@ii#1[#2]#3[#4]#5{% + \@ifnextchar[{\attributeof@iii{#1}[#2]{#3}[#4]{#5}}% + {\attributeof@iii{#1}[#2]{#3}[#4]{#5}[#5]}} +\def\attributeof@iii#1[#2]#3[#4]#5[#6]{% + \SpecialCoor + \dbi@purifylabel{\dbi@prfd@nodename}{#1}% + \uput{#2}[#3]{0}(\dbi@prfd@nodename){\attribute[#4]{#5}[#6]}% + \NormalCoor + \ncline{-}{#1}{#5}} +\def\relationship{% + \@ifnextchar[{\relationship@i}{\relationship@i[normal]}} +\def\relationship@i[#1]#2{% + \@ifnextchar[{\relationship@ii{#1}{#2}}{\relationship@ii{#1}{#2}[#2]}} +\def\relationship@ii#1#2[#3]{\csname relationship@#1\endcsname{#2}{#3}} +\def\relationship@normal#1#2{% + \dbi@purifylabel{\dbi@prfd@nodename}{#1}% + \expandafter\dianode\relationship@parm{\dbi@prfd@nodename}{#2}} +\def\relationship@weak#1#2{% + {\psset{doubleline=true}% + \dbi@purifylabel{\dbi@prfd@nodename}{#1}% + \expandafter\dianode\relationship@parm{\dbi@prfd@nodename}{#2}}} +\let\relationship@ident\relationship@weak +\newtoks\rolepos +\rolepos{0.85}% +\newtoks\cardpos +\cardpos{0.5}% +\newif\ifdbi@recursive +\def\relationshipbetween{% + \@ifnextchar[{\relationshipbetween@type}{\relationshipbetween@type[normal]}} +\def\relationshipbetween@type[#1]#2{\dbi@recursivefalse% + \def\relationtype{#1}% + \@ifnextchar({\relationshipbetween@i@role{#2}}% + {\relationshipbetween@i@role{#2}(\relax)}} +\def\relationshipbetween@i@role#1(#2){% + \@ifnextchar[{\relationshipbetween@i@card{#1}{#2}}% + {\relationshipbetween@i@card{#1}{#2}[\relax]}} +\def\relationshipbetween@i@card#1#2[#3]{% + \@ifnextchar/{\relationshipbetween@i@linetype{#1}{#2}{#3}}% + {\relationshipbetween@i@linetype{#1}{#2}{#3}/\relax/}}% +\def\relationshipbetween@i@linetype#1#2#3/#4/#5{% + \def\dbi@linecmd@i{#4}% + \def\dbi@tempa{#1}\def\dbi@tempb{#5}% + \ifx\dbi@tempa\dbi@tempb\dbi@recursivetrue\fi + \ifx#4\relax + \ifdbi@recursive + \def\dbi@linecmd@i{\ncarc[arcangleA=10,arcangleB=45]}% + \else\def\dbi@linecmd@i{\ncline}\fi\fi + \@ifnextchar({\relationshipbetween@ii@role{#1}{#2}{#3}{#5}}% + {\relationshipbetween@ii@role{#1}{#2}{#3}{#5}(\relax)}}% +\def\relationshipbetween@ii@role#1#2#3#4(#5){% + \@ifnextchar[{\relationshipbetween@ii@card{#1}{#2}{#3}{#4}{#5}}% + {\relationshipbetween@ii@card{#1}{#2}{#3}{#4}{#5}[\relax]}} +\def\relationshipbetween@ii@card#1#2#3#4#5[#6]{% + \@ifnextchar/{\relationshipbetween@ii@linetype{#1}{#2}{#3}{#4}{#5}{#6}}% + {\relationshipbetween@ii@linetype{#1}{#2}{#3}{#4}{#5}{#6}% + /\relax/}}% +\def\relationshipbetween@ii@linetype#1#2#3#4#5#6/#7/#8{% + \def\dbi@linecmd@ii{#7}% + \ifx#7\relax + \ifdbi@recursive + \def\dbi@linecmd@ii{\ncarc[arcangleA=-10,arcangleB=-45]}% + \else\def\dbi@linecmd@ii{\ncline}\fi\fi + \@ifnextchar[{\relationshipbetween@optname{#1}{#2}{#3}{#4}{#5}{#6}{#8}}% + {\relationshipbetween@optname{#1}{#2}{#3}{#4}{#5}{#6}{#8}[#8]}}% +\def\relationshipbetween@optname#1#2#3#4#5#6#7[#8]{% + \@ifnextchar/{\relationshipbetween@linetype{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}% + {\relationshipbetween@linetype{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}% + /\ncline/}}% +\def\relationshipbetween@linetype#1#2#3#4#5#6#7#8/#9/{% + \def\dbi@linecmd{#9}% + \@ifnextchar({\relationshipbetween@pos{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}% + {\relationshipbetween@pos{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}(0.5)}}% +\def\relationshipbetween@pos#1#2#3#4#5#6#7#8(#9){% + \ifdbi@recursive + \relationshipbetween@rec{#1}{#2}{#3}{#5}{#6}{#7}{#8}(#9)\else + \relationshipbetween@nonrec{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}(#9)\fi} +\def\relationshipbetween@nonrec#1#2#3#4#5#6#7#8(#9){% + \dbi@purifylabel{\dbi@prfd@nodename@i}{#1}% + \dbi@purifylabel{\dbi@prfd@nodename@ii}{#4}% + \dbi@purifylabel{\dbi@prfd@nodename@iii}{#7}% + {\psset{linestyle=none}% + \dbi@linecmd{-}{\dbi@prfd@nodename@i}{\dbi@prfd@nodename@ii}}% + \ncput[npos=#9]{\relationship[\relationtype]{#7}[#8]}% + \dbi@linecmd@i{-}{\dbi@prfd@nodename@i}{\dbi@prfd@nodename@iii}% + \ifx#3\relax\else\ncput*[npos=\the\cardpos]{#3}\fi + \ifx#2\relax\else\ncput*[npos=\the\rolepos]{#2}\fi + \dbi@linecmd@ii{-}{\dbi@prfd@nodename@ii}{\dbi@prfd@nodename@iii}% + \ifx#6\relax\else\ncput*[npos=\the\cardpos]{#6}\fi + \ifx#5\relax\else\ncput*[npos=\the\rolepos]{#5}\fi} +\def\relationshipbetween@rec#1#2#3#4#5#6#7(#8,#9){% + \dbi@purifylabel{\dbi@prfd@nodename@i}{#1}% + \dbi@purifylabel{\dbi@prfd@nodename@ii}{#6}% + \SpecialCoor + \uput{#8}[#9]{0}(\dbi@prfd@nodename@i)% + {\relationship[\relationtype]{#6}[#7]}% + \NormalCoor + \dbi@linecmd@i{-}{\dbi@prfd@nodename@i}{\dbi@prfd@nodename@ii}% + \ifx#3\relax\else\ncput*[npos=\the\cardpos]{#3}\fi + \ifx#2\relax\else\ncput*[npos=\the\rolepos]{#2}\fi + \dbi@linecmd@ii{-}{\dbi@prfd@nodename@i}{\dbi@prfd@nodename@ii}% + \ifx#5\relax\else\ncput*[npos=\the\cardpos]{#5}\fi + \ifx#4\relax\else\ncput*[npos=\the\rolepos]{#4}\fi} +\def\inrelationship{% + \@ifnextchar[{\inrelationship@type}{\inrelationship@type[normal]}} +\def\inrelationship@type[#1]#2{% + \def\relationtype{#1}% + \@ifnextchar({\inrelationship@role{#2}}% + {\inrelationship@role{#2}(\relax)}} +\def\inrelationship@role#1(#2){% + \@ifnextchar[{\inrelationship@card{#1}{#2}}% + {\inrelationship@card{#1}{#2}[\relax]}} +\def\inrelationship@card#1#2[#3]{% + \@ifnextchar/{\inrelationship@linetype{#1}{#2}{#3}}% + {\inrelationship@linetype{#1}{#2}{#3}/\ncline/}}% +\def\inrelationship@linetype#1#2#3/#4/#5{% + \dbi@purifylabel{\dbi@prfd@nodename@i}{#1}% + \dbi@purifylabel{\dbi@prfd@nodename@ii}{#5}% + \def\dbi@linecmd{#4}% + \@ifnextchar[{\inrelationship@newrel{#1}{#2}{#3}{#5}}% + {\@ifnextchar({% + \inrelationship@newrel{#1}{#2}{#3}{#5}[#5]}% + {\dbi@linecmd{-}{\dbi@prfd@nodename@i}{\dbi@prfd@nodename@ii} + \ifx#3\relax\else\ncput*[npos=\the\cardpos]{#3}\fi + \ifx#2\relax\else\ncput*[npos=\the\rolepos]{#2}\fi}}}% +\def\inrelationship@newrel#1#2#3#4[#5]{% + \@ifnextchar({\inrelationship@newrel@pos{#1}{#2}{#3}{#4}{#5}}% + {\PackageError{\basename}{Position of relationship #4 + undefined.}\@eha}} +\def\inrelationship@newrel@pos#1#2#3#4#5(#6,#7){% + \SpecialCoor + \dbi@purifylabel{\dbi@prfd@nodename@i}{#1}% + \dbi@purifylabel{\dbi@prfd@nodename@ii}{#4}% + \uput{#6}[#7]{0}(\dbi@prfd@nodename@i){\relationship[\relationtype]{#4}[#5]}% + \NormalCoor + \dbi@linecmd{-}{\dbi@prfd@nodename@i}{\dbi@prfd@nodename@ii} + \ifx#3\relax\else\ncput*[npos=\the\cardpos]{#3}\fi + \ifx#2\relax\else\ncput*[npos=\the\rolepos]{#2}\fi} +\def\annote#1#2(#3,#4){% + \dbi@purifylabel{\dbi@prfd@nodename}{#1}% + \SpecialCoor + \uput{#3}[#4]{0}(\dbi@prfd@nodename){#2}% + \NormalCoor} +\def\nodeconnections#1{\hbox to 0cm{\vbox to 0cm {#1}}} +\def\database{\@ifnextchar[{\database@i}{\database@i[c]}} +\def\database@i[#1]#2#3{% + \@ifnextchar[{\database@ii{#1}{#2}{#3}}% + {\database@ii{#1}{#2}{#3}[fillstyle=none]}} +\def\database@ii#1#2#3[#4]#5{% + \@ifnextchar[{\database@iii{#1}{#2}{#3}{#4}{#5}}% + {\database@iii{#1}{#2}{#3}{#4}{#5}[#5]}} +\def\database@iii#1#2#3#4#5[#6]{% + \psset{nodesep=0pt}% + \dbi@purifylabel{\dbi@prfd@nodename}{#6}% + \rnode{\dbi@prfd@nodename}{% + \begin{tabular}[#1]{c}% + \rnode{lu\dbi@prfd@nodename}{}\hspace{#2}\rnode{ru\dbi@prfd@nodename}{}\\[#3] + \rnode{ll\dbi@prfd@nodename}{}\hspace{#2}\rnode{rl\dbi@prfd@nodename}{}% + \end{tabular}}% + \nodeconnections{% + \ncbar[linestyle=none,#4, + angleA=180,angleB=180,armB=0]{ru\dbi@prfd@nodename}{ll\dbi@prfd@nodename} + \ncbar[linestyle=none,#4, + angleA=0,angleB=0,armA=0]{ru\dbi@prfd@nodename}{ll\dbi@prfd@nodename} + \nccurve[#4,angleA=90,angleB=90,ncurv=.6]{lu\dbi@prfd@nodename}{ru\dbi@prfd@nodename}% + \ncput{\rnode{mu\dbi@prfd@nodename}{}}% + \nccurve[angleA=-90,angleB=-90,ncurv=.6]{lu\dbi@prfd@nodename}{ru\dbi@prfd@nodename}% + \ncput{\rnode{muf\dbi@prfd@nodename}{}}% + \nccurve[#4,angleA=-90,angleB=-90,ncurv=.6]{ll\dbi@prfd@nodename}{rl\dbi@prfd@nodename}% + \ncput{\rnode{ml\dbi@prfd@nodename}{}}% + \ncline{lu\dbi@prfd@nodename}{ll\dbi@prfd@nodename}% + \ncline{ru\dbi@prfd@nodename}{rl\dbi@prfd@nodename}% + \ncline[linestyle=none]{muf\dbi@prfd@nodename}{ml\dbi@prfd@nodename}\ncput[npos=0.4]{#5}}} +\endinput +%% +%% End of file `pst-dbicons.sty'. |