你好,我想用 LaTeX 创建以下图片。我该怎么做?
答案1
这是尝试:使用 tikz 定义椭圆样式。一旦完成,就可以在节点定义中使用它。
\node[ell] at (x,y) (internal label) {label};
然后使用draw
连接这两个节点。这里to[options]
可以有很多选择。这里显示了一些。
选项:无——代表一行。
弯曲(左、右)= 角度——表示曲线。
in=angle1, out=angle2——用于具有不同入/出角度的曲线。
\draw[->] (A) to[options] (B)
代码
\documentclass[12pt]{article}
\usepackage[paper size={10cm,10cm}]{geometry}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\tikzset{
ell/.style={draw,ellipse,minimum height=3em,minimum width=5em},
}
\begin{tikzpicture}
\node[ell] at (0,0) (A) {A};
\node[ell] at (5,0) (B) {B};
\draw[->,>=stealth] (A) to[bend left=30] (B);
\draw[->,>=stealth] (B) to[bend left=30] (A);
\end{tikzpicture}
\end{document}
答案2
您可以在 LaTeX 内部使用环境创建图片picture
。您还可以使用在 LaTeX 内部运行的包,例如PSTricks
或者TikZ
或者,你可以在了解 LaTeX 的独立程序中绘制内容,例如MetaPost
或者Asymptote
。我个人比较喜欢后者。
这是在 Asymptote 中尝试绘制的图表。(它使用node.asy
模块,在我的 Ubuntu 机器上我曾经ASYMPTOTE_DIR="node-4.0/modules" asy -fpdf test
调用 Asymptote。)
import node;
size(1inch,0);
// define edge style
defaultdrawstyle=drawstyle(p=fontsize(8pt)+fontcommand("\ttfamily"),
arrow=Arrow(TeXHead));
node a=scircle("\small $A$");
node b=scircle("\small $B$");
// calculate nodes position
real u=1cm;
a << eright(1.6u) << b;
draw(a,b);
draw(a..bend..b,
b..bend..a);
它产生了这张图片。
答案3
我推荐你 PSTRICKS 和 PST-NODE 包
您可以看到PST 节点 PDF
------------ 示例 Mini,仅包含节点和线条 --------------
\documentclass[pstricks,border=12pt]{standalone}
%
\usepackage[utf8]{inputenc}
\usepackage{eurosym}
\usepackage{pst-node}
\usepackage{pstricks-add}
\begin{document}
\begin{pspicture}(-2,-2)(12,6) %\malla
\rput(4.5,3){\circlenode{IL}{\textcolor{red}{I like}}}
\rput(8.5,3.5){\circlenode{L}{\textcolor{blue}{\LaTeX}}}
\rput(6.5,-0.5){\circlenode{G}{\textcolor{blue}{\footnotesize{Galicia(Spain)}}}}
\ncarc[arcangle=44]{->}{IL}{L}
\ncarc[arcangle=22]{->}{IL}{L}
\nbput*{\small Yes} % This line show error on compiling.
\ncarc[arcangle=22]{->}{L}{IL}
\ncput*{\small No} % This l
\ncarc[arcangle=8]{->}{L}{G}
\ncarc[arcangle=-22,linewidth=0.05,linecolor=red]{->}{G}{L}
\ncarc[arcangle=-22,linewidth=0.05,linecolor=red,linestyle=dashed]{->}{IL}{G}
\rput(1,2){\circlenode{V}{\textcolor{blue}{Vigo}}}
\rput(1,5){\circlenode{C}{\textcolor{magenta}{Coru\~na}}}
\rput(3,2){\circlenode{S}{\textcolor{red}{Scq}}}
\rput(3,5){\circlenode{P}{\textcolor{green}{Po}}}
\ncarc[arcangle=33]{->}{V}{C}
\nbput*{\small 45 \euro} % This line show error on compiling.
\ncarc[arcangle=11]{->}{S}{P}
\ncput*{\small 25 \euro }
\ncarc[arcangle=75]{->}{S}{P}
\ncput*{\small{\blue 15 \euro} }
\rput(2,0){This is a test.}
\rput(8,-2){Esto é unha proba.}
\end{pspicture}
\end{document}
其他任何事物的例子:
\documentclass[pstricks,border=12pt]{standalone}
%
\usepackage[utf8]{inputenc}
\usepackage{eurosym}
\usepackage{pst-node}
\usepackage{pstricks-add}
\begin{document}
\begin{pspicture}(-2,-2)(12,6) %\malla
% \psaxes{<->}(3,3)
\rput(4.5,5){\circlenode{IL}{\textcolor{red}{I like}}}
\rput(4.5,1.5){\circlenode{L}{\textcolor{blue}{\LaTeX}}}
\ncarc[arcangle=33]{->}{IL}{L}
\nbput*{\small Yes} % This line show error on compiling.
\ncarc[arcangle=33]{->}{L}{IL}
\ncput*{\small No} % This l
\psaxes[linewidth=1.2pt,labels=none,ticks=none]{<->}(0,0)(-1,-1)(10,6)
\psgrid[linecolor=lightgray,gridwidth=0.0075](0,0)(6,3)
%subgriddots=5
\rput(1,2){\circlenode{V}{\textcolor{blue}{Vigo}}}
\rput(1,5){\circlenode{C}{\textcolor{magenta}{Coru\~na}}}
\rput(3,2){\circlenode{S}{\textcolor{red}{Scq}}}
\rput(3,5){\circlenode{P}{\textcolor{green}{Po}}}
\ncarc[arcangle=33]{->}{V}{C}
\nbput*{\small 45 \euro} % This line show error on compiling.
\ncarc[arcangle=11]{->}{S}{P}
\ncput*{\small 25 \euro }
\ncarc[arcangle=75]{->}{S}{P}
\ncput*{\small{\blue 15 \euro} }
\psbezier[linecolor=blue, linewidth=0.04,linestyle=dashed]{*-*}(4,-0.5)(6,6)(8,-2)(10,2)
\rput(8,3){Esto é unha proba.}
\pscurve[linecolor=blue, linewidth=0.065]{o-o}(6,5)(7,4)(8,5.8)(9,5.8)(10,4)(11,6)
\psdots[dotsize=0.4](10,2)
\pscustom{
\pscurve(8,-2)(10,2)(11.5,0)
%\psline(11.5,1)(11.5,-1)
\fill[fillstyle=solid,fillcolor=lightgray,opacity=0.74]}
\pscircle[linecolor=red,fillcolor=blue,fillstyle=solid,linewidth=0.05,linestyle=dashed,opacity=0.56](10,3){1.5}
\pscircle[linecolor=green,fillcolor=red,fillstyle=solid,linewidth=0.05,linestyle=dashed,opacity=0.56](8,3){1.5}
\rput(8,2){Esto é unha proba.}
\end{pspicture}
\end{document}
答案4
您应该考虑使用 Tikz/pgf。
在主要文档中可以找到很好的介绍:http://linorg.usp.br/CTAN/graphics/pgf/base/doc/pgfmanual.pdf
您所需要的内容可在第 47 页找到。