ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

トラブルシューティング

はじめに

ここでは、Figure の印刷またはエクスポートの際に発生する可能性がある一般的な問題について示しています。該当する問題が一覧にない場合は、MathWorks® テクニカル サポートのナレッジ ベースを検索してください。http://www.mathworks.co.jp/support にアクセスし、検索フィールドにトピックを入力します。

印刷の問題

プリンター ドライバー

Windows® のプリンター ドライバーを使っていますが、セグメンテーション違反、一般的な保護違反、アプリケーション エラー、予期しない出力などの問題が発生します。

以下の解決法のいずれかを試してみてください。

  • print リファレンス ページのドライバーの表をチェックし、利用可能な他のドライバーがあるかどうかを確認します。

    • プリンターが PostScript® 互換である場合は、MATLAB® 組み込み PostScript ドライバーのいずれかで印刷してみてください。

    • プリンターが PostScript 互換でない場合は、MATLAB の組み込みの Ghostscript デバイスがプリンター モデルに対して適切であるかどうかを確認してください。これらのデバイスは、Ghostscript を利用して、HP® LaserJet や Canon® BubbleJet のような他の形式に PostScript ファイルを変換します。

  • プリンターのベンダーに問い合わせし、他のネイティブ プリンター ドライバーを入手してください。この状況は、ネイティブ プリンター ドライバーのうち、あるバージョンのみに発生する場合があります。解決されなかった場合、および Windows システムをお使いの場合は、Windows のインストレーション ディスクと共に出荷されているドライバーを再インストールしてください。

  • Figure をグラフィックス形式ファイルにエクスポートし、印刷する前に別のアプリケーションにインポートしてください。MATLAB 製品を使った Figure のエクスポートに関する詳細は、ファイルへのエクスポート を参照してください。

PostScript 出力

関数 print を -deps スイッチと共に使用すると、以下のようなエラー メッセージが表示されます。

Encapsulated PostScript files cannot be sent to the printer. 
File saved to disk under name 'figure2.eps'

エラー メッセージが示すように、Figure はファイルに保存されました。EPS は、グラフィックス ファイル形式で、プリンター ドライバーを利用してプリンターに送ることはできません。Figure を直接プリンターに送るには、PostScript ドライバー スイッチのうちの 1 つを利用してください。print リファレンス ページの「ドライバー」の表を参照してください。EPS ファイルを印刷するには、最初にワード プロセッサまたは他のソフトウェア プログラムにインポートする必要があります。

既定値

プリンターが MATLAB の既定のタイプ “letter” 以外の既定の用紙タイプを使っています。用紙タイプを新規 Figure ごとに設定せずにすむように、既定の用紙タイプを変更するにはどうしたらよいですか。

startup.m に行を追加することによって、プロパティに対する既定値を設定することができます。次の行を追加すると、既定の用紙サイズを A4 に設定します。

set(0, 'DefaultFigurePaperType', 'A4'); 

set を呼び出して、単語 Default とオブジェクト名 Figure とプロパティの名前 PaperType を組み合わせます。

用紙の向きを横方向に設定しましたが、新規 Figure を印刷するたびに方向設定が縦になります。用紙方向を新規 Figure ごとに設定せずにすむように、既定の用紙方向を変更するにはどうしたらよいですか。

1 つ前の質問に対する説明を参照してください。次の行を startup.m に追加すると既定の用紙方向を横に設定します。

set(0, 'DefaultFigurePaperOrient', 'landscape')

カラーとモノクロ

Figure 内のラインを黒で印刷したいが、カラーで印刷されます。

カラー プリンターのプリンター ドライバーを使用しているものと思われます。関数 print あるいは [印刷プレビュー] ダイアログ ボックスを利用して、モノクロ ドライバーを指定し、現在の Figure のラインを強制的に黒で印刷することができます。詳細は、ラインとテキスト カラーの設定を参照してください。

Figure 内の白いラインが印刷時に黒で印刷されます。

この状況が発生する理由は 2 つあります。おそらく、ラインは暗い背景の上に置かれています。既定で、MATLAB は印刷の際に背景を白に反転させ、背景上の白いラインを黒に変更します。これを回避するには、印刷時に背景色を保持してください。背景色の設定を参照してください。

他の可能性は、Windows プリンター ドライバーを使っていて、プリンターが不正確な色情報を MATLAB に送っているためです。

カラー プリンターを使っていますが、Figure がいつも白黒印刷されます。

既定で、MATLAB はモノクロのプリンター ドライバーを利用します。カラーのプリンター ドライバーを指定する必要があります。詳細は、プリンター ドライバーの選択を参照してください。既に Windows カラー ドライバーを利用している場合は、カラー プロパティに関する不正確な情報が返されている場合があります。ドライバー固有の情報を参照してください。

プリンターの選択

システムに複数のプリンターが接続されています。Figure を印刷するプリンターをどのように指定したらよいですか。

[印刷] ダイアログ ボックス、あるいはプリンターを -P スイッチで指定して MATLAB 関数 print を利用することができます。これらの方法の説明は、プリンターの選択 を参照してください。

テキストの回転

Figure 内に回転されたテキストがあります。スクリーン上では適切に表示されますが、印刷時に解像度が悪くなります。

適切に回転しないビットマップ フォントを利用している可能性があります。代わりに TrueType フォントを使用してみてください。

ResizeFcn の警告

Figure の印刷時に利用する ResizeFcn に関する警告が表示されます。

既定で、MATLAB は Figure のプリンター座標への変換の際に、Figure をサイズ変更します。そのため、Figureに対して作成した ResizeFcn を呼び出し、警告を出力します。Figure がスクリーン サイズで印刷されるように設定することにより、この警告を回避できます。

不適切な印刷設定

LINUX/UNIX システムで "印刷失敗。システム上に適切に設定されたプリンターがありません。" というエラー メッセージが表示されます。

システム上の lpc コマンドの場所に問題がある可能性があります。/usr/sbin/lpc からシステム上の lpc コマンドの場所へのシンボリック リンクがない場合は作成してください。

エクスポートの問題

背景色

Figure に黒い背景を生成し、[設定] ダイアログ ボックスの [コピー オプション] パネルから [Figure の色を利用] を選択しました。しかし、Figure のエクスポート時に背景が白に変更されました。

Figure がファイルにエクスポートされていると考えられます。コピー オプションの設定は、クリップボードにコピーされる Figure のみに適用されます。

表示されている背景色を保持する方法は、2 つあります。[印刷プレビュー] ダイアログ ボックスを使用するか、InvertHardCopy プロパティを off に設定します。これらの方法の詳細は、「背景色の設定」を参照してください。

既定値

すべての Figure を同じサイズでエクスポートしようとしています。個々の Figure ごとにサイズを設定せずに行う方法はありますか。

startup.m に行を追加することによって、プロパティに対する既定値を設定することができます。次の行を追加すると、既定の Figure サイズを 4x3 インチに設定します。

set(0, 'DefaultFigurePaperPosition', [0 0 4 3]); 

set を呼び出して、単語 Default とオブジェクト名 Figure とプロパティ名 PaperPosition を組み合わせます。

Figure をメタファイルとしてエクスポートするためにクリップボードを利用します。すべてのコピー操作がメタファイル形式を利用するようにする方法はありますか。

Windows システムでは、[印刷] ダイアログ ボックスの [コピー オプション] パネルを使用します。Figure をメタファイルまたはビットマップのいずれかでコピーするかを含むここで行われる設定は、すべてのコピー操作に適用されます。詳細は、Windows または Macintosh クリップボードへのエクスポートを参照してください。

Microsoft Word

Figure を EPS ファイルにエクスポートし、Word ドキュメンテーションにインポートしようとしました。EPS ピクチャがプレビュー付きで保存されておらず、PostScript プリンターにのみ出力されるというエラー メッセージ付きの空フレームが表示されます。どのようにして TIFF プレビューを含めればよいでしょうか。

print コマンドで -tiff スイッチを利用してください。たとえば、次のようになります。

print -deps -tiff filename

非 PostScript プリンターに Word を使って印刷する場合は、印刷用のプレビュー イメージが用いられます。これは、EPS グラフィックスの品質を欠く低解像度イメージです。プレビュー イメージなどの EPF ファイルの特徴の詳細は、EPS ファイル を参照してください。

Figure を Word でサイズ変更しようとすると、品質が損なわれます。

ビットマップ形式を利用しているものと思われます。ビットマップ ファイルは、通常適切にサイズ変更を行いません。ビットマップ形式を使ってエクスポートを行う場合は、Figure が MATLAB にある間にサイズを設定してください。詳細は、Figure のサイズと位置の設定を参照してください。

代案として、ベクトル形式、EMF または EPS を利用することができます。これらの形式でエクスポートされた Figure は、品質に影響を与えることなく、Word でサイズ変更可能です。

Figure を EMFとしてクリップボードにエクスポートしました。Word に貼り付けると、ラベルのいくつかが正確に印刷されません。

この問題は、Microsoft® Word および Windows の一部のバージョンで発生します。Word でラベルを編集してください。

ファイル形式

エクスポートされた Figure をワード プロセッシング ドキュメンテーションにインポートしようすると、ファイル形式が認識できないというエラーが表示されます。

考えられる原因は 2 つあります。関数 print を利用し、エクスポート形式を指定し忘れているか、あるいはワード プロセッシング プログラムがエクスポート形式をサポートしていないかです。関数 print を利用する際に、形式スイッチを指定してください。単にファイルの拡張子を含めるだけでは不十分です。詳細は、ファイルへのエクスポートを参照してください。

問題が解決されない場合は、ワード プロセッサがサポートする形式をチェックしてください。

Figure を EPS ファイルに挿入しようとすると、エラー メッセージが表示されます。

Figure を EPS ファイルに挿入することができません。-append オプションは、PostScript ファイルに対してのみ有効です。EPS ファイルと混同しないでください。PostScript はプリンター ドライバーで、EPS はグラフィックス ファイル形式です。

サポートされているエクスポート形式の中で、HDF のみが複数 Figure の格納をサポートしますが、それらを挿入するには、関数 imwrite を使う必要があります。例は、imwrite のリファレンス ページを参照してください。

エクスポートされるファイルのサイズ

Figure をエクスポートするために EPS 形式を常に使っていますが、最近大きいファイルを生成するようになりました。一部のファイルは数メガバイトになっています。

グラフィックスがおそらく複雑になっており、Painter’s レンダラーではなく OpenGL® または Z-buffer レンダラーが使用されています。それは、表示時間を改善したり、ライティングのように Painter’s では不可能な属性を取り扱うためです。しかし、OpenGL または Z-buffer が使用されると、ビットマップが EPS ファイルに格納されるため、Figure が大きいとファイル サイズが大きくなってしまいます。

問題を解決する方法は 2 つあります。EPS へのエクスポートの際に Painter’s レンダラーを指定するか、あるいは TIFF のようなビットマップ形式を利用することができます。最適なレンダラーと形式タイプは、Figure によって異なります。判断に迷う場合は、ビットマップまたはベクトル グラフィックス出力の選択を参照してください。レンダリング法とそれらの設定方法に関しては、レンダラーの選択 を参照してください。

ムービーの作成

多くのフレームをMATLAB の関数で処理しました。これらのフレームを後でムービーに変換するために個々のファイルとして保存しようとしています。どのようにしたら良いでしょうか。

getframe を利用してフレームをキャプチャし、imwrite を利用してそれらをファイルに書き込み、movie を利用してファイルからムービーを作成します。getframe およびimwrite を利用してフレームの取得および書き込みの方法については、getframe を利用したエクスポート を参照してください。キャプチャしたフレームからのムービーの作成については、movie のリファレンス ページを参照してください。

複数の Figure を AVI ファイルに保存することも可能です。AVI ファイルは、MATLAB を起動する必要がないアニメーション化されたシーケンス用に利用可能です。しかしながら、AVI ビューアーは必要です。詳細は、『MATLABプログラミングの基礎』ドキュメンテーションの「オーディオとビデオへのエクスポート」を参照してください。

拡張操作

エクスポート ダイアログ ボックスを使って実行できないエクスポート操作があります。

以下の操作のいずれかを行うには、関数 print を使う必要があります。

  • [エクスポート] ダイアログ ボックスにリストされていない、サポートされているファイル形式へエクスポートします。[エクスポート] ダイアログ ボックスから利用できない形式には、HDF、BMP および PCX の変形、PBM、PGM、PPM の生データ版が含まれます。

  • 解像度を指定します。

  • 次のオプションのうちの 1 つを指定します。

    • TIFF プレビュー

    • EPS ファイルに対する loose 境界ボックス

    • JPEG ファイルに対する圧縮の品質

    • Windows プラットフォームでの CMYK の出力

  • バッチ エクスポートの実行

一般的な問題

背景色

Figure を出力する際、背景色が白に変更されます。表示された背景色にするにはどのようにしたらいいですか。

既定では、Figure の印刷またはエクスポートの際に、背景色は白に反転します。表示されている背景色を保持する方法は、2 つあります。[印刷プレビュー] ダイアログ ボックスを使用するか、InvertHardCopy プロパティを off に設定します。これらの方法の詳細は、「背景色の設定」を参照してください。

Figure をクリップボードにエクスポートする場合は、[設定] ダイアログ ボックスの [コピー オプション] パネルも使用できます。ここでの背景の設定は、クリップボードにコピーされるすべての Figure の背景を設定します。

既定値

出版用に図を生成する必要があります。Figure のサイズ、フォントのタイプ等、必ず満足しなければならない条件があります。どのようにしたら簡単、かつ確実に行うことができますか。

startup.m に行を追加することによって、プロパティに対する既定値を設定することができます。例として、次の行は既定の Axes ラベルのフォント サイズを 12 に設定します。

set(0, 'DefaultAxesFontSize', 12);

set を呼び出して、単語 Default とオブジェクト名 Axes とプロパティの名前 FontSize を組み合わせます。

出力の大きさ

出力が大きすぎます。小さくするにはどのようにしたらいいですか。

Figure サイズと解像度に対する設定をチェックしてください。これらは両方とも、Figure の出力の大きさに影響を与えます。

Figure のサイズは、8 x 6 インチです。[印刷設定] ダイアログ ボックスまたは PaperPosition プロパティを利用して、Figure サイズを設定することができます。Figure のサイズと位置の設定を参照してください。

既定の解像度は、エクスポート形式やプリンター ドライバーによって異なります。たとえば、TIFF のような組み込み MATLAB ビットマップ形式は、既定の解像度が 150 dpi です。関数 print-r スイッチを利用して解像度を変更することができます。既定の解像度の値とそれらの変更方法については、解像度の設定 を参照してください。

[印刷プレビュー] メニューから [自動 (実際のサイズ、中央)] を選択したが、出力は多少大きく、フォントが異なって見えます。

スクリーンの解像度よりも高い解像度を使って Figure を出力しているようです。スクリーンの解像度と同じ解像度を設定してください。

代案として、Figure をエクスポートしている場合は、アプリケーションが解像度を選択可能かどうかをチェックしてください。その場合は、エクスポートされたときと同じ解像度で Figure をインポートしてください。解像度とエクスポート時のそれらの設定方法については、解像度の設定 を参照してください。

軸と目盛りラベル

Figure をあるサイズ以下にサイズ変更すると、x 軸ラベルと x 軸目盛ラベルの下半分が出力から失われます。

Figure サイズが、ラベルを設置するには小さすぎる可能性があります。ラベルは、x 軸から固定された距離に置かれます。x 軸自体は、ウィンドウのエッジからの相対的な距離に置かれているので、ラベル テキストは適合しない場合があります。大きい Figure サイズあるいは小さいフォントを利用してください。Figure のサイズの設定については、Figure のサイズと位置の設定 を参照してください。フォント サイズの設定については、「Text プロパティ」リファレンス ページを参照してください。

出力において x 軸はスクリーン上よりも目盛りが少ないです。

出力 Figure のサイズが表示されたサイズと異なるため、MATLAB は、目盛りを再スケーリングしました。これを回避するには、2 つの方法があります。[印刷プレビュー] ダイアログ ボックスの [詳細設定] タブから [スクリーン範囲と目盛りを維持する] を選択するか、XTickModeYTickModeZTickMode の各プロパティを manual に設定します。詳細は、Axes の目盛りと範囲の設定を参照してください。

UI コントロール

Figure に UI コントロールが含まれています。これらが出力に表示されないようにするにはどうしたらいいですか。

関数 print-noui スイッチを利用してください。詳細については、ユーザー インターフェイス コントロールを印刷出力から除外するを参照してください。

トリミング

uncropped 設定を使って Figure を出力できません (loose BoundingBox)。

PostScript プリンター ドライバーおよび EPS エクスポート形式のみが uncropped の出力をサポートします。しかしながら、Windows のプリンター ドライバーに対しては、回避方法があります。関数 print を利用して、後で印刷可能なファイルに Figure を保存します。例は「Uncropped Figure の生成」を参照してください。

テキスト オブジェクトのフォント

PostScript プリンター ドライバーの印刷や EPS へのエクスポートの際、テキスト オブジェクトに問題があります。フォントはスクリーン上では正確ですが、出力では変更されています。

おそらく、EPS および PostScript でサポートされないフォントを使っています。すべてのサポートされていないフォントは、Courier に変換されます。サポートされているフォントの一覧は、PostScript と Ghostscript でサポートされるフォント を参照してください。

この情報は役に立ちましたか?