简单 TikZ 图的问题

简单 TikZ 图的问题

我正在尝试制作一个解释图,将其归结为注释两个任意放置点之间的曲线。

尽管我的 TikZ/Tex 代码严格遵循手册,但就是无法编译;我做错了什么?

\documentclass{minimal}

\usepackage{tikz}
\usetikzlibrary{arrows,backgrounds,snakes,shapes}
\begin{document}

 \begin{centering}
  \begin{tikzpicture}[domain=0:4] 
   \draw[->] (-0.2,0) -- (4.2,0) node[right] {$\mu$}; 
   \draw[->] (0,-1.2) -- (0,4.2) node[above] {$\sigma$};
   \fill[color=red] (1,1) circle (1ex) {$a$}; 
   \fill[color=blue]  (2,3) circle (1ex) {$b$};
   \draw[->,color=black] (1,1) -- (2,3) node[right] {$ds_{ab}^2= 2KL$};
  \end{tikzpicture}
 \end{centering}
 \end{document}

答案1

问题出现如下:

\fill[color=red] (1,1) circle (1ex) {$a$}; 
\fill[color=blue]  (2,3) circle (1ex) {$b$};

因为这里不清楚您是否要声明一个节点或只是一个圆。要使您的文档编译,您有两种解决方案:

\documentclass{article} % first solution

\usepackage{tikz}

\begin{document}
 \begin{centering}
  \begin{tikzpicture}[domain=0:4] 
   \draw[->] (-0.2,0) -- (4.2,0) node[right] {$\mu$}; 
   \draw[->] (0,-1.2) -- (0,4.2) node[above] {$\sigma$};
   \fill[color=red] (1,1) circle (1ex); 
   \fill[color=blue]  (2,3) circle (1ex);
   \draw[->,color=black] (1,1) -- (2,3) node[right] {$ds_{ab}^2= 2KL$};
  \end{tikzpicture}
 \end{centering}
\end{document}

或者

\documentclass{article} % second solution

\usepackage{tikz}

\begin{document}
 \begin{centering}
  \begin{tikzpicture}[domain=0:4] 
   \draw[->] (-0.2,0) -- (4.2,0) node[right] {$\mu$}; 
   \draw[->] (0,-1.2) -- (0,4.2) node[above] {$\sigma$};
   \fill[color=red] (1,1) circle (1ex) node{$a$}; 
   \fill[color=blue]  (2,3) circle (1ex) node{$b$};
   \draw[->,color=black] (1,1) -- (2,3) node[right] {$ds_{ab}^2= 2KL$};
  \end{tikzpicture}
 \end{centering}
\end{document}

如果目的是在圆圈内插入标签,我建议按以下步骤进行:

\documentclass{article}

\usepackage{tikz}

\begin{document}
 \begin{centering}
  \begin{tikzpicture}[->,domain=0:4] 
   \draw (-0.2,0) -- (4.2,0) node[right] {$\mu$}; 
   \draw (0,-1.2) -- (0,4.2) node[above] {$\sigma$};
   \node[circle, radius=1ex,fill=red,text=black] (a) at (1,1) {$a$}; 
   \node[circle, radius=1ex,fill=blue,text=black] (b) at  (2,3) {$b$};
   \draw[color=black] (a) -- (b) node[right=0.2cm] {$ds_{ab}^2= 2KL$};
  \end{tikzpicture}
 \end{centering}
\end{document}

这使:

在此处输入图片描述

请注意,我移动了选项->,因为每个节点都\draw连接这两个节点,第一个标签是在声明时分配的。使用节点声明ab不是你的节点声明\fill允许箭头不覆盖圆圈。事实上,第一个解决方案上述报告将导致:

在此处输入图片描述

最后的注释:该snakes库已经过时了;您应该加载decorations,但是对于这个特定的绘图来说,这不是必需的,至于其他的,请参见我的示例。

相关内容