LuaTeX 和 pgfplots 错误

LuaTeX 和 pgfplots 错误

这个问题与前一个:我曾尝试测试代码这个答案,它使用 LuaTeX 和 pgfplots。在 Linux Ubuntu 18.04 上使用 TeXstudio 2.12.6 和 Qt 5.9.5,在代码之前我放了一行

% !TeX program = lualatex

这会产生一个错误:

Package PGF Math Error: Could not parse input '' as a floating point number, sorry. The unreadable part was near ''. (in 'BesselJ(0,x)'). }.

LuaLaTeX 运行时:

lualatex -synctex=1 --shell-escape -interaction=nonstopmode %.tex

PdfLaTeX 运行时:

pdflatex -synctex=1 --shell-escape -interaction=nonstopmode %.tex

请注意代码在这个答案中可以使用相同的设置。

我已经安装了所有软件包gsl-*

如何解决这个问题?


这是 MWE,可以从问题中简单推断出来。

% !TeX program = lualatex

\documentclass{article}
\usepackage{pgfplots}
\usepackage{luacode}

\begin{luacode*}
local ffi = require("ffi")
gsl = ffi.load("gsl")

ffi.cdef[[
double gsl_sf_bessel_Jn(int n, double x);
double gsl_sf_bessel_Yn(int n, double x);
double gsl_sf_bessel_In(int n, double x);
double gsl_sf_bessel_Kn(int n, double x);
]]
\end{luacode*}

\newcommand\declarebesselfunction[1]{%
  \pgfmathdeclarefunction{Bessel#1}{2}{%
    \pgfmathfloatparsenumber{%
      \directlua{tex.print(gsl.gsl_sf_bessel_#1n(
        \pgfmathfloatvalueof{##1},\pgfmathfloatvalueof{##2}))}%
    }%
  }%
}

\declarebesselfunction{J}
\declarebesselfunction{Y}
\declarebesselfunction{I}
\declarebesselfunction{K}

\begin{document}

\begin{tikzpicture}

  \begin{axis}[samples=100,no marks,restrict y to domain=-3:3]
    \pgfplotsinvokeforeach{0,...,5}{
      \addplot+[domain=0:10] {BesselJ(#1,x)};
      \addplot+[domain=.001:10] {BesselY(#1,x)};
      \addplot+[domain=0:10] {BesselI(#1,x)};
      \addplot+[domain=.001:10] {BesselK(#1,x)};
    }
  \end{axis}

\end{tikzpicture}

\end{document}

答案1

我无法重现您在 Ubuntu 18.04 Docker 容器中遇到的问题。我使用以下命令启动容器

docker run -it --rm -v `pwd`:/test ubuntu:bionic

然后在容器内运行

cd /test
sudo apt-get update
sudo apt-get install --no-install-recommends texlive-binaries texlive-pictures texlive-latex-base texlive-luatex libgsl-dev
lualatex --shell-escape test.tex

一切运行正常。pdfinfo在主机系统上运行生成的 PDF 时,显示

$ pdfinfo test.pdf 
Creator:        TeX
Producer:       LuaTeX-1.0.4
[...snip...]

以下是 PDF 的截图:

在此处输入图片描述

相关内容