Next: Polynomials, Previous: Plotting [Contents][Index]
Next: Files, Previous: File Input and Output, Up: File Input and Output [Contents][Index]
Maximaの入力の中のコメントは、/*
と*/
の間の任意のテキストです。
Maximaのパーサは、コメントを、入力外リームでのトークンを見つけるための空白として扱います;
コメントで常にトークンは終わります。
a/* foo */b
のような入力は、1つのトークンab
ではなく、2つのトークン、a
とb
を含みます。
そうでなければ、Maximaはコメントを無視します;
コメントの中身も位置もパースされた入力式に残りません。
コメントは任意の深さに入れ子にすることができます。
/*
と*/
の区切り記号はマッチングペアを形作ります。
/*
の数は*/
と同じでなければいけません。
例:
(%i1) /* aa is a variable of interest */ aa : 1234; (%o1) 1234 (%i2) /* Value of bb depends on aa */ bb : aa^2; (%o2) 1522756 (%i3) /* User-defined infix operator */ infix ("b"); (%o3) b (%i4) /* Parses same as a b c, not abc */ a/* foo */b/* bar */c; (%o4) a b c (%i5) /* Comments /* can be nested /* to any depth */ */ */ 1 + xyz; (%o5) xyz + 1
Next: Functions and Variables for File Input and Output, Previous: Comments, Up: File Input and Output [Contents][Index]
ファイルは、単に、データやテキスト含む、特別なストレージデバイスのある領域です。 ディスク上のファイルは、比喩的に「ディレクトリ」の中にグループ化されます。 ディレクトリは、単にファイルのリストです。 ファイルを扱うコマンドは以下の通りです:
save
,
load
,
loadfile
,
stringout
,
batch
,
demo
,
writefile
,
closefile
,と
appendfile
。
ファイル名がplot2d
やsave
、writefile
のような関数に渡され、
ファイル名がパスを含まない時、Maximaは現在のワーキングディレクトリにファイルを保存します。
現在のワーキングディレクトリはWindowsやLinuxのようなシステムと、インストールに依存します。
Previous: Files, Up: File Input and Output [Contents][Index]
コンソールの筆記録をfilenameに追加します。
appendfile
は、
筆記録ファイルが、存在すれば、いつも追加されることを除いて、
writefile
と同じです。
closefile
は、appendfile
やwritefile
によって開かれた筆記録ファイルを閉じます。
option
) ¶batch(filename)
はMaximaの式をfilenameから読み込み、評価します。
batch
は、リストfile_search_maxima
の中でfilenameを検索します。
file_search
も参照してください。
batch(filename,
は、
demo
)demo(filename)
ようなものです。
この場合、batch
は、リストfile_search_demo
の中で
filenameを検索します。
demo
を参照してください。
batch(filename,
は、
オプションtest
)display_all=true
を付けたrun_testsuite
ようなものです。
この場合、batch
は、
run_testsuite
のようにリストfile_search_tests
ではなく、
リストfile_search_maxima
の中でfilenameを検索します。
更に、run_testsuite
はリストtestsuite_files
の中にあるテストを実行します。
batch
を使うと、どんなファイルもテストモードで実行することが可能です。
ファイルはリストfile_search_maxima
の中であってもいいです。
これはテストファイルを書いている時に便利です。
filenameは、一連のMaximaの式より成り、それぞれの式は、;
もしくは$
で終了します。
特殊変数%
と関数%th
は、ファイル内での前の結果を参照します。
ファイルは:lisp
構成子を含むかもしれません。
ファイルの中の空白、タブ、改行は無視されます。
適した入力ファイルは、テキストエディタもしくは、stringout
関数で作ることができます。
batch
は、それぞれの入力式をfilenameから読み込み、
入力をコンソールに表示し、
対応する出力式を計算し、
出力式を表示します。
入力ラベルは入力式に割り当てられ、出力ラベルは出力式に割り当てられます。
batch
は、エラーがない限り、ファイルの中のすべての入力式を評価します。
もしユーザー入力が(例えば、asksign
やaskinteger
によって)要求されたら、
batch
は、ポーズして必要な入力を入手し、続けます。
コンソールでcontrol-C
をタイプすることで、batch
を停止させることが可能かもしれません。
control-C
の効果は、基礎となるLispの実装に依存します。
batch
にはいくつか用法があります。
役立つコマンドラインの蓄積を供給したり、
エラーのないデモンストレーションを与えたり、
複雑な問題を解く時、人の考えを整理するのを助けたり。
batch
は引数を評価します。
第二引数なしで呼び出されたり、オプションdemo
で呼び出された時、
batch
はfilename
のパスを文字列として返します。
オプションtest
で呼び出された時、
戻り値は、空のリスト[]
か、filenameと失敗したテストの数を含むリストです。
filenameからMaximaの式を読み込み、評価します。
入力式や出力式を表示しません。
ラベルを出力式に割り当てません。
しかし、(print
やdescribe
が生成するような)プリント文の出力は表示されます。
特殊変数%
や関数%th
は、
ファイルの中の結果ではなく、対話インタープリタからの以前の結果を参照します。
ファイルは:lisp
構成子を含むことはできません。
batchload
は、filenameのパスを文字列として返します。
batchload
は引数を評価します。
writefile
やappendfile
で開いたトランスクリプトファイルを閉じます。
デフォルト値: false
file_output_append
は、
ファイル出力関数が出力ファイルに追加するか、ファイルを切り詰めるか決めます。
file_output_append
がtrue
の時、
ファイル出力関数は出力ファイルに追加します。
そうでなければ,出力ファイルは切り詰められます。
save
, stringout
, with_stdout
は、file_output_append
を考慮します。
出力ファイルを書き出す他の関数はfile_output_append
を考慮しません。
特に、プロット感巣や変換関数は常に出力ファイルを切り詰め、
tex
やappendfile
はいつも追加します。
pathとfilenameから修正されたパスを構成します。
もし、pathの最後の構成要素が形式###.something
なら、
構成要素は、filename.something
に置き換えられます。
そうでなければ、最後の構成要素は単にfilenameに置き換えられます。
結果はLispのパス名オブジェクトです。
file_search
は、ファイルfilenameを検索し、
もし見つかれば、(文字列として)ファイルへのパスを返します;
そうでなければ、file_search
はfalse
を返します。
file_search (filename)
は、
デフォルトのサーチディレクトリを検索します。
デフォルトのサーチディレクトリは、file_search_maxima
,
file_search_lisp
, file_search_demo
変数によって指定されます。
file_search
は、
名前を「ワイルドカード」ファイルサーチパターンにマッチさせようとする前に、
最初に、渡された実際の名前が存在するかチェックします。
ファイルサーチパターンに関連したfile_search_maxima
を参照してください。
引数filenameは、パスとファイル名、もしくは単にファイル名、もしくは、 もしファイルサーチディレクトリがファイルサーチパターンを含むなら、単にファイル名のベース(拡張子なし)、を取り得ます。 例えば、
file_search ("/home/wfs/special/zeta.mac"); file_search ("zeta.mac"); file_search ("zeta");
ファイルが存在していて、/home/wfs/special/###.mac
がfile_search_maxima
に中にあるという仮定の下で、上記すべては同じファイルを見つけます。
file_search (filename, pathlist)
は、
pathlistによって指定されたディレクトリの中だけを検索します。
ここで、pathlistは文字列のりすとです。
引数pathlistは、デフォルトの検索ディレクトリに取って代わります。
だから、もしパスリストが与えられたら、デフォルトの検索ディレクトリのいずれでもなく、file_search
は指定されたところだけを検索します。
pathlistの中に1つのディレクトリだけしかない場合でさえ、まだ、
それは、要素1つのリストとして与えられなければいけません。
ユーザーはデフォルト検索ディレクトリを修正できます。
file_search_maxima
を参照してください。
file_search
は、file_search_maxima
とfile_search_lisp
を
を検索ディレクトリとして、
load
によって呼び出されます。
これらの変数は、load
, demo
や他のいくつかのMaximaの関数が検索する
ディレクトリのリストを指定します。
これらの変数のデフォルト値は、Maxima員ストレーションの様々なディレクトリを名指ししています。
ユーザーは、 デフォルト値を置き換えるか、ディレクトリを追加することで、 これらの変数を変更できます 例えば、
file_search_maxima: ["/usr/local/foo/###.mac", "/usr/local/bar/###.mac"]$
は、file_search_maxima
のデフォルト値を置き換える一方、
file_search_maxima: append (file_search_maxima, ["/usr/local/foo/###.mac", "/usr/local/bar/###.mac"])$
は、2つのディレクトリを追加します。
ファイルmaxima-init.mac
に
Maximaが起動した時にファイル検索パスが自動的に割り当てられるような式を入れておくと便利かもしれません。
Introduction for Runtime Environmentも参照してください。
特別な「ワイルドカード」構造によって、ファイル名の拡張子やパスを多重にしてすることができます。
文字列###
は、求められている名前に拡張される一方、
カーリ括弧{foo,bar,baz}
で囲まれた、コンマで分離されたリストは多重文字列に拡張されます。
例えば、求められてる名前がneumann
とすると、
"/home/{wfs,gcj}/###.{lisp,mac}"
は、/home/wfs/neumann.lisp
, /home/gcj/neumann.lisp
,
/home/wfs/neumann.mac
, /home/gcj/neumann.mac
に展開されます。
filenameの中身について、ファイル名拡張子を下に、推測を返します。 filenameは、実際のファイルを参照する必要はありません; ファイルを開いたり、中身を探索したりはしません。
戻り値はシンボルであり、object
, lisp
, maxima
のいずれかです。
もし拡張子がfile_type_maxima
の中の値の1つと一致したら、
file_type
はmaxima
を返します。
もし拡張子が"file_type_lisp
の中の値の1つと一致したら、
file_type
はlisp
を返します。
上のいずれでもないなら、file_type
はobject
を返します。
pathname_type
も参照してください。
デフォルト値に関しては、file_type_maxima
とfile_type_lisp
を
参照してください。
例:
(%i2) map('file_type, ["test.lisp", "test.mac", "test.dem", "test.txt"]); (%o2) [lisp, maxima, maxima, object]
デフォルト値: [l, lsp, lisp]
file_type_lisp
は、
maximaがLispソースファイルの印として認識するファイル拡張子のリストです。
file_type
も参照してください。
デフォルト値: [mac, mc, demo, dem, dm1, dm2, dm3, dmt]
file_type_maxima
は、
maximaがMaximaソースファイルの印として認識するファイル拡張子のリストです。
file_type
も参照してください。
filenameの中の式を評価します。
そして、変数、関数、他のオブジェクトをMaximaにもたらします。
、filenameから再生されたバインドは存在するオブジェクトのバインドを上書きします(clobber)。
ファイルを見つけるために、
load
は、探索ディレクトリとしてfile_search_maxima
とfile_search_lisp
を引数としてfile_search
をコールします。
もしload
が成功したら
ファイルの名前を返します。
そうでなければ、load
はエラーメッセージを出力します。
load
は、LispコードでもMaximaコードでも等しく機能します。
save
, translate_file
, compile_file
―これらはLispコードを生成します―が生成したファイルはすべてload
によって処理できます。
load
は、Lispファイルをロードするためにloadfile
をコールし、
Maximaファイルをロードするためにbatchload
をコールします。
load
は、Maximaファイルの中で:lisp
構成子を認識しません。
filenameを処理する時、
グローバル変数_
, __
, %
, %th
は、
load
がコールされた時バインドされていた値を持ちます。
loadfile
, batch
, batchload
, demo
も参照してください。
loadfile
はLispファイルを処理します;
batch
, batchload
, demo
はMaximaファイルを処理します。
ファイル探索メカニズムについてもっと詳しいことはfile_search
を参照してください。
load
は引数を評価します。
デフォルト値: false
関数load
や、loadfile
、batchload
を使ってファイルがロードされる時、
システム変数load_pathname
は処理するファイルのパス名を示します。
変数load_pathname
はロード中にファイルからアクセスすることができます。
例:
ディレクトリ
"/home/dieter/workspace/mymaxima/temp/"
に、以下のコマンドを含む
バッチファイルtest.mac
があるとしましょう。
print("The value of load_pathname is: ", load_pathname)$ print("End of batchfile")$
すると、以下の出力を得ます。
(%i1) load("/home/dieter/workspace/mymaxima/temp/test.mac")$ The value of load_pathname is: /home/dieter/workspace/mymaxima/temp/test.mac End of batchfile
filenameの中のLisp式を評価します。
loadfile
は、file_search
を呼び出しません。
だから、filename
はファイル拡張子とファイルを見つけるのに必要なパスも含まなければいけません。
loadfile
は、save
, translate_file
, compile_file
によって生成されたファイルを処理できます。
ユーザーは、loadfile
の代わりにload
を使うほうが便利だと気づくでしょう。
デフォルト値: true
loadprint
は、ファイルがロードされた時、メッセージを表示するかどうか告げます。
loadprint
がtrue
の時, いつもメッセージを表示します。
loadprint
が'loadfile
の時, ファイルが関数loadfile
によってロードされた時だけメッセージを表示します。
loadprint
が'autoload
の時、
ファイルが自動的にロードされた時だけメッセージを表示します。
setup_autoload
を参照してください。
loadprint
がfalse
の時, メッセージは決して表示されません。
デフォルト値: false
他の人が使うパッケージ(ファイル)を生成するためにsave
やtranslate
を使う
パッケージデザイナは、
ファイルがロードされる時必要な場合を除いて、
Maximaの情報リスト(例えば、values
, functions
)に情報が追加されることを抑制するために、packagefile: true
を設定したいかもしれません。
この方法によれば、
ユーザーが自身のデータを追加した時ユーザーの方法では
パッケージの中身は、得られないでしょう。
これは、起こりうる名前衝突の問題を解決はしないことに注意してください。
このフラグは、パッケージファイルへの出力であるものに素直に影響することにも注意してください。
フラグをtrue
に設定することは、
Maxima初期化ファイルを生成するにも役に立ちます。
これらの関数はpathnameの構成要素を返します。
例:
(%i1) pathname_directory("/home/dieter/maxima/changelog.txt"); (%o1) /home/dieter/maxima/ (%i2) pathname_name("/home/dieter/maxima/changelog.txt"); (%o2) changelog (%i3) pathname_type("/home/dieter/maxima/changelog.txt"); (%o3) txt
pathという名前のファイルをコンソールに表示します。 pathは、文字列もしくはシンボルです; もしシンボルなら、文字列に変換されます。
もしpathが現在のワーキングディレクトリからアクセス可能なファイル名なら、
そのファイルがコンソールに表示されます。
そうでなければ、
printfile
は、
filename_merge
を介してfile_search_usage
の要素のそれぞれに
pathを追加することでファイルを見つけようとします。
printfile
は、もしpathが存在しているファイルを示しているなら、
pathを返し、そうでなければ、
成功したファイル名マージの結果を返します。
リストの要素を、
カーリ括弧{ }
で囲んで表示します。
Tcl/Tk言語でプログラムの一部として適した形です。
tcl_output (list, i0, skip)
は、
要素i0で始まり、要素i0 + skip
, i0 + 2 skip
, などを表示するよう、listを表示します。
tcl_output (list, i0)
は、
tcl_output (list, i0, 2)
と同値です。
tcl_output ([list_1, ..., list_n], i)
は、
list_1, …, list_nのi番目の要素を表示します。
例:
(%i1) tcl_output ([1, 2, 3, 4, 5, 6], 1, 3)$ {1.000000000 4.000000000 } (%i2) tcl_output ([1, 2, 3, 4, 5, 6], 2, 3)$ {2.000000000 5.000000000 } (%i3) tcl_output ([3/7, 5/9, 11/13, 13/17], 1)$ {((RAT SIMP) 3 7) ((RAT SIMP) 11 13) } (%i4) tcl_output ([x1, y1, x2, y2, x3, y3], 2)$ {$Y1 $Y2 $Y3 } (%i5) tcl_output ([[1, 2, 3], [11, 22, 33]], 1)$ {SIMP 1.000000000 11.00000000 }
filenameに、name_1, name_2, name_3, …,の現在値を
保存します。
引数は、変数、関数、他のオブジェクトの名前です。
もし名前が関連づけられた値や関数を持たないなら、無視されます。
save
は、filenameを返します。
save
は、データをLisp式の形式で保存します。
save
で保存されたデータは、load (filename)
によって回復できます。
load
を参照してください。
グローバルフラグ file_output_append
は、
save
が出力ファイルに追加するか、切り詰めるか決めます。
file_output_append
がtrue
の時、
save
は出力ファイルに追加します。
そうでなければ、save
は出力ファイルを切り詰めます。
どちらの場合も、もしファイルが存在しなければ、save
はファイルを生成します。
特殊形式save (filename, values, functions, labels, ...)
は、values
, functions
, labels
, などと名付けられた項目を
保存します。
名前は、変数infolists
によって指定された任意のものです。
values
は、ユーザー定義変数すべてから成ります。
特殊形式save (filename, [m, n])
は、
mからnまでの入力ラベル、出力ラベルの値を保存します。
mとnは、整数リテラルでなければならないことに注意してください。
例えば、save ("foo.1", %i42, %o42)
のように、
入力ラベル、出力ラベルは1つ1つ保存することもできます。
save (filename, labels)
は、
入力ラベル出力ラベルすべてを保存します。
保存されたラベルが回復された時、それらは存在していたラベルを負かします。
特殊形式save (filename, name_1=expr_1, name_2=expr_2, ...)
は、
expr_1, expr_2, …,の値をname_1, name_2, …という名前で保存します。
例えば、save ("foo.1", aa=%o88)
のように、
この形式を入力ラベル出力ラベルに適用することは便利です。
この形式の等式の右辺は任意の式であり、その式は評価されます。
この形式は、新しい名前を現在のMaximaの環境に導入はせず、
ただ、filenameにそれらを保存します。
これらの特殊形式とsave
の一般形式は自由に混在させることができます。
例えば、save (filename, aa, bb, cc=42, functions, [11, 17])
。
特殊形式save (filename, all)
は、Maximaの現在の状態を保存します。
これは、自動的に定義された項目はもちろん、ユーザー定義の変数、関数、配列などすべてを
含みます。
保存される項目は、
もしそれらがユーザーによって新しい値を割り当てられたなら、
file_search_maxima
やshowtime
のようなシステム変数を含みます。
myoptions
を参照してください。
save
はfilenameを評価し、他の引数すべてをクォートします。
stringout
は、
式が入力としてタイプされたのと同じ形式で、式をファイルに書き込みます。
なので、ファイルはbatch
やdemo
コマンドの入力として使えますし、
どんな目的のためでも編集できます。
stringout
は、writefile
が進行中の間に実行することができます。
グローバルフラグfile_output_append
は、
stringout
が出力ファイルに追加するか、切り詰めるか決めます。
file_output_append
がtrue
の時、
stringout
は、出力ファイルに追加します。
そうでなければ、stringout
は出力ファイルを切り詰めます。
どちらの場合も、もしファイルが存在しなければ,stringout
はファイルを生成します。
stringout
の一般形式は、1つ以上の式の値を出力ファイルに書き込みます。
もし式が変数なら、変数の値だけが書き込まれ、変数名は書き込まれないことに注意してください。
役に立つ特殊な場合として、式は、
入力ラベル(%i1
, %i2
, %i3
, …)もしくは出力ラベル(%o1
, %o2
, %o3
, …)でもよいです。
)
もしgrind
がtrue
なら、
stringout
は、grind
フォーマットを使って出力をフォーマットします。
そうでなければ、string
フォーマットが使われます。
grind
とstring
を参照してください。
特殊形式stringout (filename, [m, n])
は、
mからnまでの入力ラベルの値を書き込みます。
特殊形式 stringout (filename, input)
は、
入力ラベルすべてをファイルに書き込みます。
特殊形式stringout (filename, functions)
は、
(グローバルリストfunctions
で名付けられた)ユーザー定義関数すべてをファイルに書き込みます。
特殊形式stringout (filename, values)
は、
(グローバルリストvalues
で名付けられた)ユーザーが割り当てた変数すべてをファイルに書き込みます。
変数それぞれは、変数名とコロンとその値という割り当て文として出力されます。
stringout
の一般形式は変数を割り当て文として出力しないことに注意してください。
TeXドキュメントの準備に適した式の表現を出力します。 結果は、ドキュメントの断片です。 それは、より大きなドキュメントにコピーすることができますが、それ自身では処理されません。
tex (expr)
は、exprのTeX表現をコンソールに出力します。
tex (label)
は、labelで名付けられた式のTeX表現を出力し、
(式の左に表示されるよう)等式ラベルをそれに割り当てます。
TeX等式ラベルは、Maximaラベルと同じです。
destinationは、出力ストリームもしくはファイル名です。
destinationがファイル名の時、
tex
は、ファイルに出力を追加します。
関数openw
とopena
は、出力ストリームを生成します。
tex (expr, false)
とtex (label, false)
は、
TeX出力を文字列として返します。
tex
は、最初の引数がラベルかどうか見るためにテストした後、最初の引数を評価します。
クォートクォート''
は、引数の評価を強制し、
その結果、テストをだめにして、ラベルを妨げます。
texput
も参照してください。
例:
(%i1) integrate (1/(1+x^3), x); 2 x - 1 2 atan(-------) log(x - x + 1) sqrt(3) log(x + 1) (%o1) - --------------- + ------------- + ---------- 6 sqrt(3) 3 (%i2) tex (%o1); $$-{{\log \left(x^2-x+1\right)}\over{6}}+{{\arctan \left({{2\,x-1 }\over{\sqrt{3}}}\right)}\over{\sqrt{3}}}+{{\log \left(x+1\right) }\over{3}}\leqno{\tt (\%o1)}$$ (%o2) (\%o1) (%i3) tex (integrate (sin(x), x)); $$-\cos x$$ (%o3) false (%i4) tex (%o1, "foo.tex"); (%o4) (\%o1)
tex (expr, false)
はTeX出力を文字列として返します。
(%i1) S : tex (x * y * z, false); (%o1) $$x\,y\,z$$ (%i2) S; (%o2) $$x\,y\,z$$
式eのTeX出力を表現する文字列を返します。 TeX出力は、等式や他の任意の環境のため、区切り記号で囲まれません。
例:
(%i1) tex1 (sin(x) + cos(x)); (%o1) \sin x+\cos x
アトムaのためのTeX出力を割り当てます。 ここでaはシンボルもしくは演算子名です。
texput (a, s)
は、
tex
関数に、
aの代わりに文字列sをTeX出力に入れるようにさせます。
texput (a, f)
は、
tex
関数に、
TeX出力を生成するために関数fをコールさせます。
fは、1つの引数を受け入れなければいけません。
ここで、引数は、演算子aを持つ式で、文字列(TeX出力)を返さなければいけません。
fは、入力式の引数のためにTeX出力を生成するよう、tex1
をコールするかもしれません。
operator_typeがprefix
, infix
, postfix
, nary
, もしくは nofix
,として、
texput (a, s, operator_type)
は、
tex
関数に
aの代わりにsをTeX出力に入れるようにさせ、
適切な位置に挿入された手キスを置くようにさせます。
texput (a, [s_1, s_2], matchfix)
は、
tex
関数に、
aの引数のそれぞれの側にs_1とs_2を
TeX出力に入れるようにさせます。
(もし複数なら)引数はコンマで分離されます。
texput (a, [s_1, s_2, s_3], matchfix)
は、
tex
関数に、
引数を分離するs_3と一緒に
aの引数のそれぞれの側にs_1とs_2をTeX出力に入れるようにさせます。
例:
変数にTeX出力を割り当てます。
(%i1) texput (me,"\\mu_e"); (%o1) \mu_e (%i2) tex (me); $$\mu_e$$ (%o2) false
任意の関数(演算子ではない)にTeX出力を割り当てます。
(%i1) texput (lcm, "\\mathrm{lcm}"); (%o1) \mathrm{lcm} (%i2) tex (lcm (a, b)); $$\mathrm{lcm}\left(a , b\right)$$ (%o2) false
TeX出力を生成する関数をコールします。
(%i1) texfoo (e) := block ([a, b], [a, b] : args (e), concat ("\\left[\\stackrel{",tex1(b),"}{",tex1(a),"}\\right]"))$ (%i2) texput (foo, texfoo); (%o2) texfoo (%i3) tex (foo (2^x, %pi)); $$\left[\stackrel{\pi}{2^{x}}\right]$$ (%o3) false
前置演算子にTeX出力を割り当てます。
(%i1) prefix ("grad"); (%o1) grad (%i2) texput ("grad", " \\nabla ", prefix); (%o2) \nabla (%i3) tex (grad f); $$ \nabla f$$ (%o3) false
中置演算子にTeX出力を割り当てます。
(%i1) infix ("~"); (%o1) ~ (%i2) texput ("~", " \\times ", infix); (%o2) \times (%i3) tex (a ~ b); $$a \times b$$ (%o3) false
後置演算子にTeX出力を割り当てます。
(%i1) postfix ("##"); (%o1) ## (%i2) texput ("##", "!!", postfix); (%o2) !! (%i3) tex (x ##); $$x!!$$ (%o3) false
n項演算子にTeX出力を割り当てます。
(%i1) nary ("@@"); (%o1) @@ (%i2) texput ("@@", " \\circ ", nary); (%o2) \circ (%i3) tex (a @@ b @@ c @@ d); $$a \circ b \circ c \circ d$$ (%o3) false
無項演算子にTeX出力を割り当てます。
(%i1) nofix ("foo"); (%o1) foo (%i2) texput ("foo", "\\mathsc{foo}", nofix); (%o2) \mathsc{foo} (%i3) tex (foo); $$\mathsc{foo}$$ (%o3) false
マッチフィックス演算子にTeX出力を割り当てます。
(%i1) matchfix ("<<", ">>"); (%o1) << (%i2) texput ("<<", [" \\langle ", " \\rangle "], matchfix); (%o2) [ \langle , \rangle ] (%i3) tex (<<a>>); $$ \langle a \rangle $$ (%o3) false (%i4) tex (<<a, b>>); $$ \langle a , b \rangle $$ (%o4) false (%i5) texput ("<<", [" \\langle ", " \\rangle ", " \\, | \\,"], matchfix); (%o5) [ \langle , \rangle , \, | \,] (%i6) tex (<<a>>); $$ \langle a \rangle $$ (%o6) false (%i7) tex (<<a, b>>); $$ \langle a \, | \,b \rangle $$ (%o7) false
tex
によって出力されるTeX環境をカスタマイズします。
これらの関数によって保持されるように、TeX環境は2つの文字列から成ります;
1つは他の任意のTeX出力に前もって出力されるもの、もう1つは後に出力されるものです。
式のトップレベル演算子のTeX環境だけが、出力されます; 他の演算子に関連づけられたTeX環境は無視されます。
get_tex_environment
は、
演算子opに適用されたTeX環境を返します;
もし他の環境が割り当てられていなければ、デフォルトを返します。
set_tex_environment
は、
演算子opのためのTeX環境を割り当てます。
例:
(%i1) get_tex_environment (":="); (%o1) [ \begin{verbatim} , ; \end{verbatim} ] (%i2) tex (f (x) := 1 - x); \begin{verbatim} f(x):=1-x; \end{verbatim} (%o2) false (%i3) set_tex_environment (":=", "$$", "$$"); (%o3) [$$, $$] (%i4) tex (f (x) := 1 - x); $$f(x):=1-x$$ (%o4) false
tex
によって出力されるTeX環境をカスタマイズします。
これらの関数によって保持されるように、TeX環境は2つの文字列から成ります;
1つは他の任意のTeX出力に前もって出力されるもの、もう1つは後に出力されるものです。
get_tex_environment_default
は、
トップレベル演算子が(set_tex_environment
で割り当てられたような)特定のTeX環境を持たない式に適用されたTeX環境を返します。
set_tex_environment_default
は、デフォルトのTeX環境を割り当てます。
例:
(%i1) get_tex_environment_default (); (%o1) [$$, $$] (%i2) tex (f(x) + g(x)); $$g\left(x\right)+f\left(x\right)$$ (%o2) false (%i3) set_tex_environment_default ("\\begin{equation} ", " \\end{equation}"); (%o3) [\begin{equation} , \end{equation}] (%i4) tex (f(x) + g(x)); \begin{equation} g\left(x\right)+f\left(x\right) \end{equation} (%o4) false
expr_1, expr_2, expr_3, ...を評価し、
生成された出力すべてをファイルfもしくは出力ストリームsに書き込みます。
評価される式は出力に書き込まれません。
出力は、print
, display
, grind
や他の関数によって生成されたものです。
グローバルフラグ file_output_append
は、
with_stdout
が出力ファイルfに追加するか切り詰めるか決めます。
file_output_append
がtrue
の時、
with_stdout
は出力ファイルに追加します。
そうでなければ、with_stdout
は出力ファイルを切り詰めます。
どちらの場合も、もしファイルが存在しないなら、with_stdout
はファイルを生成します。
with_stdout
は最後の引数の値を返します。
writefile
も参照してください。
(%i1) with_stdout ("tmp.out", for i:5 thru 10 do print (i, "! yields", i!))$ (%i2) printfile ("tmp.out")$ 5 ! yields 120 6 ! yields 720 7 ! yields 5040 8 ! yields 40320 9 ! yields 362880 10 ! yields 3628800
Maximaセッションのトランスクリプトをfilenameに書き込むことを開始します。 ユーザーとMaximaの間の対話すべてが、ちょうどコンソールに現れるように、このファイルに記録されます。
トランスクリプトがコンソール出力フォーマットで出力されるので、
それはMaximaに再ロードすることはできません。
最ロード可能な式を含むファイルを作るには、
save
とstringout
を参照してください。
save
は、Lisp形式の式を保存する一方、stringout
は、Maxima形式
の式を保存します。
filenameが既に存在している時、writefile
の実行の効果は、
基礎となるLisp実装に依存します;
トランスクリプファイルは負かされるかもしれませんし、ファイルは追加されるかもしれません。
appendfile
は、いつもトランスクリプトファイルに追加します。
以前の対話の表示を保存するためにwritefile
の後、
playback
を実行するのが便利かもしれません。
playback
は入力と出力変数(%i1
, %o1
, など)だけを表示し、
(戻り値と対照的に)関数の中のプリント文によって生成された任意の出力はplayback
によって表示されません。
closefile
は、writefile
やappendfile
が開いたトランスクリプトファイルを閉じます。
Next: Polynomials, Previous: Plotting [Contents][Index]