我正在尝试制作一个解释图,将其归结为注释两个任意放置点之间的曲线。
尽管我的 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
连接这两个节点,第一个标签是在声明时分配的。使用节点声明a
而b
不是你的节点声明\fill
允许箭头不覆盖圆圈。事实上,第一个解决方案上述报告将导致:
最后的注释:该snakes
库已经过时了;您应该加载decorations
,但是对于这个特定的绘图来说,这不是必需的,至于其他的,请参见我的示例。