Maxima で作成したグラフの部分だけを pdf にする

まず,get_plot_option(); で設定を確認する。「弘大 JupyterHub」では,system-wide な maxima-init.mac に以下の記述をしている。

set_plot_option([svg_file, "~/.maxplot.svg"])$
In [1]:
get_plot_option();
Out[1]:
\[\tag{${\it \%o}_{1}$}\left[ \left[ {\it svg\_file} , \mbox{ ~/.maxplot.svg } \right] , \left[ {\it plot\_format} , {\it gnuplot} \right] , \left[ {\it grid} , 30 , 30 \right] , \left[ {\it run\_viewer} , \mathbf{true} \right] , \left[ {\it axes} , \mathbf{true} \right] , \left[ {\it nticks} , 29 \right] , \left[ {\it adapt\_depth} , 5 \right] , \left[ {\it color} , {\it blue} , {\it red} , {\it green} , {\it magenta} , {\it black} , {\it cyan} \right] , \left[ {\it point\_type} , {\it bullet} , {\it box} , {\it triangle} , {\it plus} , {\it times} , {\it asterisk} \right] , \left[ {\it palette} , \left[ {\it gradient} , {\it green} , {\it cyan} , {\it blue} , {\it violet} \right] , \left[ {\it gradient} , {\it magenta} , {\it violet} , {\it blue} , {\it cyan} , {\it green} , {\it yellow} , {\it orange} , {\it red} , {\it brown} , {\it black} \right] \right] , \left[ {\it gnuplot\_preamble} , \right] , \left[ {\it gnuplot\_term} , {\it default} \right] \right] \]

Maxima の plot2d で描いた図を pdf にするには

普通に plot2d() すると,以下のように(svg で)インラインに表示される。

In [2]:
plot2d([x^2 - 1, 4*x - 5], [x, -5, 5])$
Gnuplot Produced by GNUPLOT 5.4 patchlevel 2 x x^2-1 x^2-1 4*x-5 4*x-5 -20 -10 0 10 20 -4 -2 0 2 4

svg_file が設定されていると,そちらを優先してインラインで表示し,pdf ファイルとして保存してくれないようなので,以下のように remove_plot_option(svg_file); する。

In [3]:
remove_plot_option(svg_file);
Out[3]:
\[\tag{${\it \%o}_{3}$}\mathbf{true}\]

その後,以下のように plot2d() 関数のオプションに,[pdf_file, "./aho.pdf"] を設定すると,カレントディレクトリ(この Notebook と同じフォルダ)に aho.pdf というファイル名で pdf として保存されます。

できあがった pdf ファイルは,View PDF リンクをクリックして確認できます。

In [4]:
plot2d([x^2 - 1, 4*x - 5], [x, -5, 5], [title, "pdf にしたいグラフ"], 
       [pdf_file, "./aho.pdf"])$
./aho.pdf
In [5]:
plot2d([x^2 - 1, 4*x - 5], [x, -5, 5], [title, "pdf にしたいグラフ"], 
       [svg_file, "./aho.svg"])$
Gnuplot Produced by GNUPLOT 5.4 patchlevel 2 x x^2-1 x^2-1 4*x-5 4*x-5 -20 -10 0 10 20 -4 -2 0 2 4 pdf にしたいグラフ

ふたたびインラインで表示させたい場合は,以下のように set_plot_option([svg_file, "~/.maxplot.svg"])$ してから,plot2d() などでグラフを描きます。

In [6]:
set_plot_option([svg_file, "~/.maxplot.svg"])$
plot2d([x^2 - 1, 4*x - 5], [x, -5, 5], [title, "pdf にしたいグラフ"])$
Gnuplot Produced by GNUPLOT 5.4 patchlevel 2 x x^2-1 x^2-1 4*x-5 4*x-5 -20 -10 0 10 20 -4 -2 0 2 4 pdf にしたいグラフ

Maxima の draw2d で描いた図を pdf にするには

普通に draw2d() すると,svg がインラインで表示される。

In [7]:
draw2d(fill_color  = green, 
       xaxis =true, yaxis =true, grid=true, 
       user_preamble="set grid front",
       filled_func = sin(x),
       explicit(cos(x),x,%pi/4,5*%pi/4))$
Gnuplot Produced by GNUPLOT 5.4 patchlevel 2 gnuplot_plot_1 -1 -0.5 0 0.5 1 1 1.5 2 2.5 3 3.5

この図だけを pdf ファイル(aho.pdf)にするには,以下のように file_name, dimensions, terminal を付け加える。

In [8]:
draw2d(fill_color  = green, 
       xaxis =true, yaxis =true, grid=true, 
       user_preamble="set grid front",
       filled_func = sin(x),
       explicit(cos(x),x,%pi/4,5*%pi/4), 
       file_name="aho", 
       dimensions = 120*[12.0,9.0],
       terminal = 'pdf )$