从数据文件中读取单个数字(LuaLaTeX)

从数据文件中读取单个数字(LuaLaTeX)

是否可以从数据文件中读取数字?

如何使用 luatex 读取文件

我找到了上面的例子,但我不需要一次性得到整行。

我需要类似这样的东西:

read(file)
get(A)
get(B)
X=A+B
print(X)

对不起,我的英语不好。 :)


这是我的例子,但它不起作用:/

\documentclass{scrartcl}
\usepackage{luatextra}
\usepackage{filecontents}

 \begin{luacode}
  function addplot()
  filename = "testdata.dat"
  tex.print('\\addplot coordinates {')
  for line in io.lines(filename) do
  local tab = string.explode(line)
  x=tab[1]
  y=math.log10(tab[2])
  tex.print('('..x..','..y..')')
 end
 tex.print('};')
 end
\end{luacode}

\begin{document}
\begin{tikzpicture}
\begin{axis}

\directlua{addplot()}

\end{axis}
\end{tikzpicture}
\end{document}

删除\\不起作用。

答案1

\usepackage{filecontents}应替换为\usepackage{pgfplots}\usepackage{luatextra}应替换为\usepackage{luacode}。 您还应该删除 处的两个反斜杠{

\documentclass{scrartcl}
\usepackage{pgfplots}
\usepackage{luacode}

\begin{filecontents*}{testdata.dat}
  1.0 20
  1.1 21
  1.2 22
\end{filecontents*}

\begin{luacode*}
  function addplot()
  filename = "testdata.dat"
  tex.print('\\addplot coordinates {')
  for line in io.lines(filename) do
    local tab = string.explode(line)
    x=tab[1]
    y=math.log10(tab[2])
    tex.print('('..x..','..y..')')
 end
 tex.print('};')
 end
\end{luacode*}

\begin{document}
\begin{tikzpicture}
\begin{axis}
\directlua{addplot()}
\end{axis}
\end{tikzpicture}
\end{document}

输出为:

阴谋

相关内容