グラフの貼り付けについて

グラフの貼り付けについて

- 渡辺 和利 の投稿
返信数: 10
こんにちは。

Excelで作ったグラフを挿入するときに、余白が空いてしまい困っています。

例えば、

\documentclass{article}
\usepackage[dvipdfmx]{graphicx}
\begin{document}

あああ

\includegraphics[width=7cm]{sinx.pdf}

いいい

\end{document}

というdocumentを出力すると、添付ファイルのように、文章とグラフの間に大きな余白が空いてしまいます。

調べたら、Adobe AcrobatでPDFファイルをトリミングする、という方法がありましたが、やはりこの方法が一番良いのでしょうか(Adobe Acrobatはまだインストールしていません)。

教えてください。
よろしくお願いします。
渡辺 和利 への返信

Re: グラフの貼り付けについて

- aminophen の投稿
貼りつけた Excel グラフの PDF に余白が多くて困っているということでしょうか。
TeX Live には pdfcrop というプログラムがありますので、これを使ってトリミングできます。

ちなみに、先日の「/DecodeParams を持った PDF を取り込めない」という問題の対処法
としても一旦 pdfcrop を通すことは有効です。使いかたは TeX Wiki にあります。
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?pdfcrop
aminophen への返信

Re: グラフの貼り付けについて

- 渡辺 和利 の投稿
アセトアミノフェンさん

返信ありがとうございます。

さっそく使ってみましたが、例えばターミナルから

pdfcrop sinx.pdf

と入力すると、

!!!Error:Input file 'sinx.pdf' not found!

のようなエラーメッセージが返ってきてしまいます。他のファイルで試しても同じです。

何がまずいと考えられるでしょうか(情報が少なくてすみません…)。
渡辺 和利 への返信

Re: グラフの貼り付けについて

- aminophen の投稿
おそらく「カレントディレクトリ」という概念がおわかりでないのでしょう。
何かのプログラムを実行するとき、その対象となるファイルが置かれた場所で実行しないといけません。
すなわち、cd コマンドで sinx.pdf があるディレクトリ(フォルダ)に移動する必要があります。

例えば Windows なら、普通はコマンドプロンプトを起動した直後(ホームディレクトリ)が
C:\Users\ユーザ名
になっていますので、デスクトップに sinx.pdf がある場合は
cd Desktop
と入力します。(これでカレントディレクトリが C:\Users\ユーザ名\Desktop になります)

コマンドで操作するプログラムを実行する際は、この概念が必須です。
aminophen への返信

Re: グラフの貼り付けについて

- 渡辺 和利 の投稿
アセトアミノフェンさん

おっしゃる通りにやったらうまくできました。

ありがとうございます。

今回もすごく勉強になりました。



渡辺 和利 への返信

Re: グラフの貼り付けについて

- aminophen の投稿
美文書6版 p.130-131 にもしっかり「pdfcrop 使え」と書かれてました…
aminophen への返信

Re: グラフの貼り付けについて

- 渡辺 和利 の投稿
本当ですね…。

気が付きませんでした(気が付いて試していたとしても件のエラーの意味が分からずあたふたしていたと思いますが…)。

渡辺 和利 への返信

Re: グラフの貼り付けについて

- 匿 名 の投稿
viewport の設定と clip オプションを includegraphics で使うといいんじゃなかったでしょうか。
匿 名 への返信

Re: グラフの貼り付けについて

- 渡辺 和利 の投稿
匿名さん

返信ありがとうございます。

申し訳ありませんが、「viewport」と「clipオプション」の語の意味が(勉強不足ゆえ)よくわからない(調べてもすぐには理解できなかった)ので、匿名さんがおっしゃっていることがよくわかりません。

もう少し勉強します。
渡辺 和利 への返信

Re: グラフの貼り付けについて

- aminophen の投稿
viewport, clip は私は積極的に使ったことはありませんが、一応情報だけ。

【viewport とは】
画像の一部分だけを挿入したい場合、左下と右上の座標を指定して
\includegraphics[viewport=llx lly urx ury]{hoge.png}
などとすると、viewport で指定された矩形領域を画像として扱います。
llx, lly が左下の座標、urx, ury が右上の座標です。

【trim とは】
こちらも画像の一部だけを挿入しますが、トリムするサイズを指定して
\includegraphics[trim=left bottom right top]{hoge.png}
とすると、左端から left・下端から bottom・右端から right・上端から top だけトリムして
残った領域を画像として扱います。先ほどとカットする領域の指定法が違うだけです。

【clip とは】
トリミングしたい場所を指定しただけでは、その領域の外側もはみ出して描画されるので
\includegraphics[clip,viewport=llx lly urx ury]{hoge.png}
のように clip をつけることで viewport で指定された領域だけを描画させます。

ただし、この方法はバウンディングボックスの概念を正しく理解しないと間違えやすいです。
aminophen への返信

Re: グラフの貼り付けについて

- 渡辺 和利 の投稿
アセトアミノフェンさん

わざわざありがとうございます。

いろいろな方法があるのですね。

またいろいろ試してみます。