LyXとgnuplotを連携させる


Gnuplotによるグラフ作成にLyXとgnuplotを連携させる方法が載いるけど、この方法では

plot '外部ファイル名'

というコードを実行する時に外部ファイル名をフルパスで書かなくてはならず不便。
さらに、ラベルに数式を使うことができない。
個人的にはepslatex形式で出力して欲しいところ。



で、Windows限定だけど、epslatexで連携できるようにしてみた。



  1. gnuplotをインストールしておく

  2. 「C:\Program Files\LyX16\bin」に「gnuplot2tex.bat」というファイルを作り、以下の内容を書き込む

    set TMPPath=%CD%
    set MyPath=%3
    echo cd %3 > _tmp.plt
    echo set terminal epslatex>> _tmp.plt
    echo set output %2 >> _tmp.plt
    type %1 >> _tmp.plt
    echo set terminal window >> _tmp.plt
    echo set output >> _tmp.plt
    wgnuplot _tmp.plt
    cd /d %MyPath:/=\%
    copy %2 "%TMPPath%"
    copy %~n2.eps "%TMPPath%"
    del %2
    del %~n2.eps
    echo ok



  3. 「C:\Program Files\LyX16\Resources\C:\Program Files\LyX16\Resources」の末尾に、以下の内容を付け足す

    Template gnuplot
    GuiName "gnuplot: $$AbsOrRelPathParent$$Basename"
    HelpText
    Show Graph using Gnuplot
    HelpTextEnd
    InputFormat gnuplot
    FileFilter "*.plt"
    AutomaticProduction true
    Preview Off
    Format LaTeX
    Requirement "graphicx"
    Product "\\input{$$AbsOrRelPathMaster$$Basename.tex}"
    UpdateFormat latex
    UpdateResult "$$AbsPath$$Basename.tex"
    ReferencedFile dvi "$$AbsPath$$Basename.eps"
    ReferencedFile latex "$$AbsPath$$Basename.eps"
    ReferencedFile dvi "$$AbsPath$$Basename.tex"
    ReferencedFile latex "$$AbsPath$$Basename.tex"
    FormatEnd
    Format PDFLaTeX
    Requirement "graphicx"
    Product "\\input{$$AbsOrRelPathMaster$$Basename.tex}"
    UpdateFormat latex
    UpdateResult "$$AbsPath$$Basename.tex"
    ReferencedFile latex "$$AbsOrRelPathMaster$$Basename.eps"
    ReferencedFile dvi "$$AbsPath$$Basename.eps"
    ReferencedFile latex "$$AbsOrRelPathMaster$$Basename.tex"
    ReferencedFile dvi "$$AbsPath$$Basename.tex"
    FormatEnd
    Format Ascii
    Product "[gnuplot: $$FName]"
    FormatEnd
    Format DocBook
    Product "[gnuplot: $$FName]"
    FormatEnd
    Format LinuxDoc
    Product "[gnuplot: $$FName]"
    FormatEnd
    TemplateEnd