Graphics | ![]() ![]() |
プリンタドライバ
Windowsのプリンタドライバを使っていて,セグメンテーションの違反,一般のプロテクションフォルト,アプリケーションエラー,予期しない出力などの問題が起きました。
printレファレンスページで
driversの表をチェックし、他に試すことのできるドライバがあるかどうか確認します。
-depsスイッチを付加したprintコマンドを用いると、次のようなエラーメッセージがあらわれます。
Encapsulated PostScript files cannot be sent to the printer. File saved to disk under name 'figure2.eps'
このエラーメッセージは、ユーザのフィギュアがファイルに保存されたことを示しています。EPSは、グラフィックスファイルフォーマットであり、プリンタドライバを使ってプリンタに送ることはできません。フィギュアをプリンタに直接送るためには、PostScriptドライバスイッチの1つを試してください。
print
リファレンスページの表 driversを参照してください。EPSファイルをプリントするためには、それを、はじめに、ワードプロセッサ、あるいは、その他のソフトウェアプログラムに取り込む必要があります。
デフォルトの設定
私が使っているプリンタは、MATLABのデフォルトの"letter"タイプとは異なる用紙タイプを使用しています。どのようにすれば、新たなフィギュアごとに設定せずに、デフォルトの用紙タイプを変更することができますか。
startup.m
ファイルに1行を加えることで、任意のプロパティに対するデフォルト値を設定することができます。次の行を加えるとデフォルトの用紙タイプをA4に設定します。
set(0,'DefaultFigurePaperType','A4');
関数setをコールする際、Defaultとオブジェクト名Figure、プロパティ名PaperTypeを一語として繋ぎます。
用紙の向きをlandscapeに設定しましたが、新しいフィギュアを印刷しようとするたびに、向きの設定がportraitに戻ってしまいます。新しいフィギュアのたびに、設定し直すことなしにデフォルトの用紙の向きを変更するには、どうすればよいでしょうか?
上記の質問についての解答を参照してください。startup.m
ファイルに次の行を追加し、デフォルトの用紙の向きを
landscapeに設定してください。
set(0, 'DefaultFigurePaperOrient', 'landscape')
ラインの印刷
破線を用いた線を含むフィギュアの印刷をしたいのですが、実線として印刷されてしまいます。
Microsoft Windows 95 と Windows 98は、行の幅が1ピクセルより大きい破線をサポートしていません。残念ながら、たいていのプリンターは、1ピクセルより太い行を印刷しますので、たいていの場合、Windows
95 と Windows 98ドライバは、LineStyleOrder
の設定にかかわらず、実線を生成してしまいます。
MATLAB.INI
ファイルの [MATLAB Settings]
セクションに次の行を追加することでMATLABのデフォルトのライン幅を幅1ピクセルに変更します。ThinLineStyles=1
OpenGL
に設定します。 set(gcf,'Renderer','OpenGL')
フィギュアの中のラインを黒で印刷したいのですが、カラーで印刷されます。
カラープリンタドライバを使用していると思われます。印刷ダイアログボックスかprint
コマンドを用いて、モノクロのドライバを指定することができます。あるいは、カレントフィギュアのラインが黒で印刷されるようにページ設定ダイアログボックスを使うこともできます。いずれの方法についても、Specifying Printed Color of
Colored Lines and Text の解説を参照してください。
この現象が起こる原因は、2つあります。原因として最も考えられることは、そのラインが暗いバックグラウンドに位置していることです。デフォルトで、MATLABは印刷時に、バックグラウンドを白に変換し、白いラインを黒く変えます。これを防ぐためには、印刷時にバックグラウンドカラーを保持してください。Retaining Background Colorsを参照してください。
その他の考えられる原因としては、ユーザがWindowsプリンタドライバを使用していて、このドライバがMATLABに対し、誤ったカラー情報を送っている可能性があります。詳細は、Correcting Color Results with Windows Driversを参照してください。
プリンター
カラープリンターを使っていますが、フィギュアを印刷すると白黒になってしまいます。
デフォルトでは、MATLABは、モノクロのプリンタドライバを使っています。したがって、カラープリンタドライバを指定する必要があります。解説については、Printer Driversを参照してください。ユーザがすでにWindowsカラードライバを使用している場合、プリンタは、カラーのプロパティについて誤った情報を返してくるかもしれません。詳細は、Correcting Color Results with Windows Driversを参照してください。
自分のシステムに一台以上のプリンターを接続しています。フィギュアの印刷をするプリンターをどのようにして指定すればよいのでしょうか。
印刷ダイアログボックスをご利用ください。
UNIX上では、 print
コマンドで-P
スイッチを使うこともできます。それらの方法の解説については、Selecting a Printerを参照してください。
テキストの回転
フィギュアの中に回転させたテキストがいくつかあります。スクリーン上では、うまくいっているように見えるのですが、印刷すると、解像度が悪くなります。
おそらくビットマップ化されたフォントを用いているのでしょう。ビットマップフォントでは、うまく回転しないことがあります。代わりにTrueTypeフォントを試してみてください。
ResizeFcn 警告
フィギュアのプリント時にResizeFcnが使われていますという警告がでます。
デフォルトで、MATLABはプリンタの座標に変換するときに、フィギュアをリサイズします。したがって、MATLABはフィギュアに対して作成したResizeFcn
をコールするため、ワーニングを出力します。フィギュアをスクリーンサイズで印刷するよう設定すると、このワーニングがあらわれなくなります。
![]() |
トラブルシューティング | 出力のトラブル | ![]() |