2017-10-14 11 views
0

行列を生成するScilabコードの行を記述しました。これは、引数が2つの正の整数を含むベクトルであり、いくつかのアルゴリズムに従って、ベクトルの値の行列を返す関数です。関数はまた、prettyprint関数のおかげで、マトリックスをLaTeXスタイルのFigureにエクスポートします。Scilabで図形サイズをxs2pdf関数で調整する

この図をPDFファイルにエクスポートすることをお勧めします。そのためには、xs2pdfという関数を使用しました。それはほぼ正常に動作します。問題は、意図した目的を果たすとき、関数は約40x40のサイズの行列を生成し、ページに決してフィットしません。作成されたPDF文書がA4でもないようです。

私は、全体のコードが含まれていませんでしたあなたが知る必要があるすべてのコードがzという名前の行列を生成することで、その後、私はラインがあります。

//just for this post 

z=rand(40,40) 

//export to figure 

A=prettyprint(z) ; 

clf ; 

xstring(0,0,A) ; 

//export to PDF 

xs2pdf(0, '_path_to_pdf_file') ; 

行列zを順にここで作成されました私のプログラムが実際に生成する行列をシミュレートします。 '_path_to_pdf_file'ビットを埋め込んだこのコードを実行すると、まともなPDF出力が得られますか?

答えて

1

同じ問題を再現できました。 PDF出力が生成されず、Scilabからエラーが返されることがあります。

解決策の1つは、Scilabに新しいTeXファイルを作成し、Scilab以外でpdflatexでコンパイルすることです。良い部分は、同じScilabスクリプトからすべてを実行できることです。もちろん、LaTeXディストリビューションをインストールする必要があります。

r = 40; c = 40; 
z = rand(r,c); 
A = prettyprint(z) ; 

texfile = "\documentclass{standalone}" + ... 
      "\usepackage{graphics}" + ... 
      "\usepackage{amsmath}" + ... 
      "\setcounter{MaxMatrixCols}{"+ string(c) +"}" + ... 
      "\begin{document}" + ... 
      A + ... 
      "\end{document}" 

filename = "matrix.tex"; 
write(filename,texfile)  //write() cannot overwrite a file 
dos("pdflatex " + filename) //use unix() instead of dos() in case you're not on Windows 

あなたがラテックスのいずれかの知識を持っている場合、私は知らないので、私はいくつかのノートを作る必要があります。

  • 出力は、現在のScilabディレクトリに移動します。 LaTeXによって作成されたすべての補助ファイルもそこに作成されます。
  • standaloneクラスを使用します。このクラスでは、PDF出力を.texファイルに記述されているとおりに切り抜きます。この場合、マージンのないマトリックスのみが印刷されます。このクラスを使用するには、LaTeX用のstandaloneパッケージがインストールされている必要があります。
  • prettystring()pmatrixを使用して行列を出力します。amsmathパッケージが必要です。したがって、これもインストールする必要があります。
  • 10列を超える行列を使用する場合は、\setcounter{MaxMatrixCols}{c}行が必要です。ここで

出力されます: enter image description here

+0

はい、これは非常に適切な代替あり –

関連する問題