我知道这并不总是一个好主意,但我认为在某些情况下这可能是一个好主意。
有没有改进的 LaTeX 版本或者类似的东西,可以将gnuplot
脚本放在 LaTeX 文件中,这样在编译过程中,它gnuplot
也可以编译脚本。现在我们必须先生成 EPS 文件,或者.tex
先生成文件。
同样适用于流程图,我真的希望有一个解决方案可以在 LaTeX 文件中动态编译和构建流程图脚本。
我是否遗漏了什么东西?
答案1
有一个包gnuplottex
可以满足您的需求。下面是一个示例文档,例如test.tex
:
\documentclass[a4paper]{article}
\usepackage{graphicx,amssymb,ifthen,moreverb,gnuplottex}
\pagestyle{empty}
\begin{document}
\begin{gnuplot}[terminal=pdf]
set autoscale # scale axes automatically
unset log # remove any log-scaling
unset label # remove any previous labels
set xtic auto # set xtics automatically
set ytic auto # set ytics automatically
set title "Force Deflection Data for a Beam and a Column"
set xlabel "Deflection (meters)"
set ylabel "Force (kN)"
set key 0.01,100
set label "Yield Point" at 0.003,260
set arrow from 0.0028,250 to 0.003,280
set xr [0.0:0.022]
set yr [0:325]
plot "force.dat" using 1:2 title 'Column' with linespoints , "force.dat" using 1:3 title 'Beam' with points
\end{gnuplot}
\begin{gnuplot}[terminal=pdf]
plot sin(x)
\end{gnuplot}
\end{document}
以及标准force.dat
文件
# This file is called force.dat
# Force-Deflection data for a beam and a bar
# Deflection Col-Force Beam-Force
0.000 0 0
0.001 104 51
0.002 202 101
0.003 298 148
0.0031 290 149
0.004 289 201
0.0041 291 209
0.005 310 250
0.010 311 260
0.020 280 240
如果使用编译
pdflatex --shell-escape test
结果是
您可以gnuplot
像任何其他 LaTeX 环境一样使用该环境。
答案2
您可以通过命令执行此\write18
操作
\documentclass{article}
\begin{document}
\immediate\write18{dir > test}
\end{document}
您只需将 替换dir > test
为所需的 gnuplot 调用即可。\immediate
前缀将确保命令立即执行。write18 命令的内容将在 shell 上展开并执行。
为了\write18
工作,您必须启用它(出于安全原因,禁用它,以便任意软件包无法格式化您的硬盘)。\write18
使用--enable-write18
命令行开关启用。例如
pdflatex --enable-write18 myfile.tex
我无法提供确切的 gnuplot 示例,因为我使用的是 Windows 并且没有安装 gnuplot,但您应该明白我的意思。