在 LaTeX 中创建菱形

在 LaTeX 中创建菱形

我想在 LaTeX 中构建一个 E/R 图,其中应该有菱形表示关系,正方形表示实体集。我不想在 LaTeX 中导入图形,即在其他图像绘制软件中绘制图形后再导入,而是想在 LaTeX 中执行此操作。有人可以给我推荐一些好的阅读链接吗?

答案1

您可以使用 TikZ 轻松完成此操作。

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes}

\colorlet{relation@colour}[rgb]{blue}
\colorlet{entity@colour}[rgb]{red}

\tikzset{relation/.style={%
           shape=diamond,draw=relation@colour!50!gray,
           ultra thick,fill=relation@colour!25!white,
           minimum height=2em},
         entity/.style={%
           shape=rectangle,draw=entity@colour!50!gray,
           ultra thick,fill=entity@colour!25!white,
           minimum height=2em}}

\begin{document}

\begin{tikzpicture}
  \draw (0,0) node(tikz) [entity] {TikZ}
        (tikz.east) + (1,0)
              node(draws)[relation,anchor=west] {draws}
        (draws.east) + (1,0)
              node(er diagrams)[entity,anchor=west] {\textsc{er} diagrams}
        (tikz) -- (draws)
        (draws) -- (er diagrams);
\end{tikzpicture}

\end{document}

用户定义的 ER 图 http://csweb.ucc.ie/~dongen/TeX-SX/er.png

其实 TikZ 也提供了一个er库,下面就来介绍一下如何使用。

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{er}

\begin{document}

\begin{tikzpicture}
  \draw (0,0) node(tikz) [entity] {TikZ}
        (tikz.east) + (1,0)
              node(draws)[relationship,anchor=west] {draws}
        (draws.east) + (1,0)
              node(er diagrams)[entity,anchor=west] {\textsc{er} diagrams}
        (tikz) -- (draws)
        (draws) -- (er diagrams);
\end{tikzpicture}

\end{document}

答案2

一个简单的例子,用xelatex或运行它latex->dvips->ps2pdf

\documentclass{article}
\usepackage{pst-node,pst-dbicons}
\begin{document}

\seticonparams{entity}{shadow,fillcolor=red!30,fillstyle=solid}
\seticonparams{relationship}{shadow,fillcolor=blue!20,fillstyle=solid}
\entity{Country} \hspace*{6cm} \entity{City}
\relationshipbetween{Country}[0:n]{City}[1:1]{in}/\ncarc[arcangle=20]/(0.4)
\relationshipbetween{Country}[1:1]/\ncarc[arcangle=-18]/%
     {City}[0:1]/\ncarc[arcangle=-12]/{Capital}/\ncarc[arcangle=-30]/(0.6)

\end{document} 

在此处输入图片描述

相关内容