pst-dbicons 包提供的编译示例无法编译

pst-dbicons 包提供的编译示例无法编译

我正在尝试使用 pst-dbicons 包 (PSTricks) 创建 ER 图。但是,在尝试示例 tex 文件时,我在第 55 行收到错误:“未定义控制序列”。我将示例粘贴在此处:

\ifx\TeXMaster\undefined
%
\documentclass{article}
\usepackage{pstricks,pst-node,pst-coil,color,pst-dbicons}
\addtolength{\topmargin}{-2.5cm}
\special{landscape}
\textheight17cm
\textwidth28cm
\evensidemargin-1.2cm
\oddsidemargin-1.2cm

\newcommand{\Mondial}{\textsc{Mondial}}

\begin{document}

\fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newif\ifblackwhite 
%\blackwhitefalse
\blackwhitetrue
\ifblackwhite
  \newgray{verylightgray}{0.95}
  \seticonparams{entity}{shadow=true,fillcolor=lightgray,fillstyle=solid}
  \seticonparams{attribute}{fillcolor=lightgray,fillstyle=solid}
  \seticonparams{relationship}{shadow=true,fillcolor=lightgray,fillstyle=solid}
\else
  \newrgbcolor{lightblue}{0.68 0.85 0.95}
  \newrgbcolor{verylightblue}{0.34 0.42 0.5}
  \newrgbcolor{lightgreen}{0.00 0.98 0.60}
  \newrgbcolor{verylightgreen}{0.00 0.5 0.30}
  \newrgbcolor{lightred}{1.00 0.71 0.76}
  \newrgbcolor{verylightred}{0.50 0.351 0.38}
  \seticonparams{entity}{shadow=true,fillcolor=lightred,fillstyle=solid}
  \seticonparams{attribute}{fillcolor=lightblue,fillstyle=solid}
  \seticonparams{relationship}{shadow=true,fillcolor=lightgreen,fillstyle=solid}
\fi

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\ifx\TeXMaster\undefined
\begin{center}
{\huge\bf ER-Diagram of the \Mondial\ Database}
\bigskip
\end{center}
\fi

\thispagestyle{empty}

\psset{nodesep=0pt}

\hspace*{2cm}
\begin{tabular}{ccc}
 % lang/rel/ethn 
 \begin{tabular}{c}
 \entity{Language} \\[12em]
 \entity{EthnicGrp}[Ethnic Grp] \\[12em]
 \entity{Religion}
 \end{tabular}
 \hspace{10em}
 % cities/countries/provinces
 \begin{tabular}{c@{\hspace{10em}}c}
 &\entity[weak]{City} \\[2em]
 \entity{Organization}\\[12em]
 \entity{Country} \\[12em]
 \entity{Continent}\\[2em]
 &\entity[weak]{Province}
 \end{tabular} 
 \hspace{10em}
 % geo
 \begin{tabular}{c}
 \entity{Lake} \\[5em]
 \entity{River} \\[5em]
 \entity{Sea}\\[9em]
 \entity{Mountain}\\[7em]
 \entity{Island}\\[7em]
 \entity{Desert}
 \end{tabular}
\end{tabular}
\nodeconnections{\small
 \relationshipbetween{Country}{City}{capital}[is\_capital]
 \relationshipbetween{Province}{City}{capital}[is\_capital](0.4)
 \relationshipbetween[ident]{Province}{City}{in}/\ncarc[arcangle=-30]/
 \relationshipbetween[weak]{Province}{Country}{of}
% 
 \relationshipbetween{Country}{Organization}{ismember}[is\_member](0.6)
 \relationshipbetween{Organization}{City}{has\_hq\_in}
% 
 \relationshipbetween{Country}{Continent}{encompasses}(0.8)
% 
 \relationshipbetween{Country}(A)
 /\ncline[nodesepB=-1cm,offsetA=0.1em,offsetB=0.4cm]/
                     {Country}(B)
 /\ncline[nodesepB=-1cm,offsetA=-0.1em,offsetB=-0.4cm]/
                    {borders}(7em,0)
%
 \relationshipbetween{Province}{Lake}{in}
 \relationshipbetween{Province}{River}{in}
 \relationshipbetween{Province}{Sea}{in}
 \relationshipbetween{Province}{Mountain}{in}
 \relationshipbetween{Province}{Island}{in}
 \relationshipbetween{Province}{Desert}{in}
%
 \relationshipbetween{City}{Lake}{at}
 \relationshipbetween{City}{River}{at}
 \relationshipbetween{City}{Sea}{at}
                                %
 \inrelationship{River}(main)/\ncarc[arcangle=30]/{flows into}
  [flows into](4em,0)
 \inrelationship{River}(trib.)/\ncarc[arcangle=-30]/{flowsinto}
 \inrelationship{Lake}{flowsinto}
 \inrelationship{Sea}{flowsinto}
%
 \relationshipbetween{Sea}(A){Sea}(B){merges}(4em,270)
%
 \relationshipbetween{EthnicGrp}{Country}{belong}(0.3)
 \relationshipbetween{Religion}{Country}{believe}(0.3)
 \relationshipbetween{Language}{Country}{speak}(0.4)
%
 \attributeof{City}{90}[key]{name}
 \attributeof{City}{45}{pop.}
 \attributeof{City}{0}{longitude}
 \attributeof{City}{-45}{latitude}
%
 \attributeof{Organization}{70}[key]{abbrev}
 \attributeof{Organization}{130}{name}
 \attributeof{Organization}[4em]{1800}{establ.}
%
 \attributeof{ismember}{40}{type}
%
 \attributeof{borders}{60}{length}
%
 \attributeof{Country}[3em]{30}{name}
 \attributeof{Country}{70}[key]{code}
 \attributeof{Country}{130}{pop.}
 \attributeof{Country}[3em]{190}{area}
 \attributeof{Country}{230}{gov.}
 \attributeof{Country}{280}{infl.}
 \attributeof{Country}[3em]{330}{gdp}
 \attributeof{Country}[4em]{100}{pop.grw}
 \attributeof{Country}[5em]{160}{inf.mort}
 \attributeof{Country}[6.5em]{-30}{gdp.agr}
 \attributeof{Country}[5.5em]{-50}{gdp.serv}
 \attributeof{Country}[5em]{-80}{gdp.ind}
 \attributeof{Country}[5em]{-120}{governm.}
%
 \attributeof{Continent}{-60}[key]{name}
 \attributeof{Continent}{-120}{area}
%
 \attributeof{Language}{90}[key]{name}
 \attributeof{speak}{60}{percent}
%
 \attributeof{EthnicGrp}{90}[key]{name}
 \attributeof{belong}{-90}{percent}
%
 \attributeof{Religion}{90}[key]{name}
 \attributeof{believe}{-90}{percent}
%
 \attributeof{encompasses}[4em]{-160}{percent}
%
 \attributeof{Province}[4em]{180}[key]{name}
 \attributeof{Province}{225}{pop.}
 \attributeof{Province}{270}{area}
%
 \attributeof{Lake}{0}[key]{name}
 \attributeof{Lake}{180}{area}
%
 \attributeof{River}{90}[key]{name}
 \attributeof{River}{180}{length}
%
 \attributeof{Sea}{0}[key]{name}
 \attributeof{Sea}{180}{depth}
%
 \attributeof{Mountain}{135}[key]{name}
 \attributeof{Mountain}{45}{height}
 \attributeof{Mountain}{-90}{mtcoord}[geo coord]
 \attributeof{mtcoord}[3em]{20}{longitude}
 \attributeof{mtcoord}[3em]{-20}{latitude}
%
 \attributeof{Island}{90}[key]{name}
 \attributeof{Island}{40}{islands}
 \attributeof{Island}{-90}{islcoord}[geo coord]
 \attributeof{islcoord}[3em]{20}{longitude}
 \attributeof{islcoord}[3em]{-20}{latitude}
%
 \attributeof{Desert}{90}[key]{name}
 \attributeof{Desert}{0}{area}
}

\ifx\TeXMaster\undefined
\end{document}
\fi

知道原因吗?

答案1

latex->dvips->ps2pdf使用和运行示例不是 pdflatex或使用

...
\usepackage{auto-pst-pdf}
...
...
\begin{postscript}
 % lang/rel/ethn 
\begin{tabular}{c}
...
\end{postscript}
 \attributeof{Desert}{0}{area}
}
\end{postscript}
...

然后使用pdflatex --shell-escape

相关内容