我有一个包含 matlab 散点图的 tikz 文件。它由matlab2tikz。tikz 文件(sample.tikz)如下所示,无需外部化即可在文档中顺利编译。
\begin{tikzpicture}
\begin{axis}[%
width=\figurewidth,
height=\figureheight,
scale only axis,
xmin=1, xmax=8,
xtick={1,2,3,4,5,6,7,8},
legend style={at={(1.03,1)},anchor=north west,draw=black,fill=white,legend cell align=left}
]
\addplot [
color=blue,
solid,
line width=1.5pt
]
table{
0 1.15086549555392
8 1.15086549555392
};
\addlegendentry{baseline};
\addplot[only marks,mark=o,color=green!50!black] plot coordinates{
(1,1.14776993023436)
(2,1.14877635969775)
(3,1.15086549555392)
(4,1.15104679449109)
(5,1.13229950771559)
(6,1.14459533891626)
(7,1.13874295199852)
(8,1.14110592572754)
};
\addlegendentry{$\text{C}_\text{D}$};
\end{axis}
\end{tikzpicture}%
我的 tex 文件如下所示:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots} % needed to import .tikz graphics
\usetikzlibrary{plotmarks} % needed for tikz scatter plot
\usetikzlibrary{external}
\tikzexternalize[prefix=tikz/]
\newlength\figureheight %Tikz plot setup
\newlength\figurewidth %Tikz plot setup
\begin{document}
\begin{figure}[htpb]
\centering
\setlength\figureheight{0.45\linewidth}
\setlength\figurewidth{0.6\linewidth}
\input{./images/sample.tikz}
\caption{Caption}
\label{fig:}
\end{figure}
\end{document}
编译它并检查./tikz
目录,我发现一个空.dpth
文件和一个.log
带有以下错误的文件:
Missing character: There is no ; in font nullfont!
Missing character: There is no ; in font nullfont!
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <7> on input line 34.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <5> on input line 34.
! Undefined control sequence.
<recently read> \text
l.34 \end{axis}
如果我注释掉\addlegendentry
tikz 文件中的第二个,它可以正常编译并外部化到 tikz 目录。但自然没有第二个图例条目。
为什么我不能将 tikz 文件外部化为两个图例条目?
答案1
该错误与外部化无关。
! Undefined control sequence.
<recently read> \text
意味着第二个图例中使用的命令\text
未定义。是在(嗯,实际上是)包\text
中定义的,因此添加amsmath
amstext
\usepackage{amsmath}
序言将修复该错误。