我有一个命令\mydatapoint
,它接受两个参数 x 和 y。它以特定格式在我的文件中打印 x 和 y。
\newcommand{\mydatapoint}[2][]{ \textbf{#1} #2}
现在我想使用这些 x 和 y 的实例在最后打印一种摘要图。
对于情节,我发现这这是一个很好的例子,说明如何做到这一点,但是必须读取数据文件才能获得要点。
数据文件只需要这种 x 和 y 数据的格式:
6 1
7 8
9 10
所以现在我希望我的命令\mydatapoint
能够另外打印到一个辅助文件中,这样我就可以读取这些点,但在网上找不到任何关于如何写入辅助文件的信息。我以前从未在 Latex 中做过类似的事情,所以我不知道从哪里开始寻找信息。
任何正确的方向的指示都将受到赞赏。
另外,没有辅助文件也能做到这一点吗?
答案1
这将创建一个名为的文件points.txt
,其中列出了你所有的点
\documentclass[]{article}
\usepackage{etoolbox}
\usepackage{pgfplots}
\newwrite\points
\newcommand\pointlist{}
\newcommand{\mydatapoint}[2]{\listadd{\pointlist}{#1,#2}\textbf{#1} #2}
\def\parsepoint#1,#2{(#1,#2)}
\AtEndDocument{%
\immediate\openout\points=points.txt
\renewcommand*{\do}[1]{\immediate\write\points{#1}}
\dolistloop{\pointlist}
\immediate\closeout\points
}
\begin{document}
This is my first data point \mydatapoint{1}{2}, and the second one is
\mydatapoint{3}{4}. Yest another point is \mydatapoint{5}{6}
% points up to this point will be in the plot
\renewcommand*{\do}[1]{%
\addplot[mark = square*, blue] coordinates {%
\parsepoint#1
};
}
\begin{tikzpicture}
\begin{axis}
\dolistloop{\pointlist}
\end{axis}
\end{tikzpicture}
This point will be included in the file, but not in the plot:
\mydatapoint{7}{8}
\end{document}