グレインの備忘録

プログラミング関係とかをつらつらと。

LibreOffice DrawでLaTeX文書用の格好良い図を作る

巷のLaTeX文書によく埋まってるかっこいいグラフや図を自分で作ってみる。

LibreOffice Drawで図を描く

LibreOffice Drawはドロー系の描画ソフトで、ベクター画像を生成することができる。

ラスタ画像とは違って拡大してもぼやけたりすることがないのが特徴である。(要するに形状そのものの情報を出力する)

グラフっぽい図を書いてみる

Drawでは式を指定してグラフを描くことはできないが、ベジェ曲線を用いて概形を描くことはできる。

試しに三次関数っぽいグラフを作ってみる。

まずは矢印ツールで座標平面を作る。

f:id:grainrigi:20171008234439p:plain

次に、ベジェ曲線描画ツールを使ってグラフ本体を描く。

f:id:grainrigi:20171008235524p:plain

このツールには癖があり、以下のように制御点を配置する。

  1. 最初の制御点の位置でクリック
  2. そのままマウスをドラッグして制御バーを伸ばす
  3. 伸ばせたらマウスボタンを離し、次の制御点の位置をクリック
  4. そのままマウスをドラッグして制御バーを伸ばす
  5. 以降その繰り返しで、終点ではマウスをダブルクリック

正直操作性が悪いので一発ではうまく行かない。(ホントは制御点だけポチポチ配置できればいいのだが。)

後から修正するには曲線を選択し右クリックメニューから「制御点の編集」を有効にする。

f:id:grainrigi:20171009001447p:plain

手動で調整するとそれなりの形ができる。

f:id:grainrigi:20171009001752p:plain

TeX数式を挿入する

Drawはプラグインを導入することでTeXの数式を挿入できる。

TexMaths Homepage

このサイトからプラグインをダウンロードできる。

導入後Drawを再起動すると、左上にメニューが現れる。

クリックすると入力画面が現れるので、TeX数式を入力すれば良い。

ただし、横の「Transparency」にチェックを入れるのを忘れないこと。(これをしないと背景が白くなってしまう)

適当に字を付けてみた。

f:id:grainrigi:20171009004240p:plain

LaTeX文書に画像を埋め込む

先ほどの画像をLaTeX文書に埋め込んでみよう。

まずは、Drawのツールバーの、保存ボタンの右の「エクスポート」からエクスポートする。

形式は必ず「EPS」にし、文書と同じディレクトリに保存する。

あとは、以下のようにして埋め込む。(ここでは「image.eps」に保存したと仮定する。)

\documentclass{jsarticle}
\usepackage{graphicx}

\begin{document}
画像を挿入
\begin{figure}[h]
  \centering
  \includegraphics{image}
  \caption{グラフ}
\end{figure}
\end{document}

ポイントとしては、

  • \usepackage{graphicx}が必須(\includegraphics用)
  • \begin{figure} 〜 \end{figure}内に図を配置する
  • \begin{figure}の後ろの[]には配置指定子を入れる。h:その場所、t:ページ上部、b:ページ下部、p:別ページ
  • \captionで図の名前を入れられる(番号は自動振り)

文書例

さっきの図とは違うものだが、図とLaTeXを活用すればこのような文書もできる。

ソース

\documentclass{jsarticle}
\usepackage{graphicx}
\usepackage[top=30truemm,bottom=30truemm,left=30truemm,right=30truemm]{geometry}

\begin{document}
\large

\section{微分の基本定義}

まずは、関数$y=f(x)$の平均変化率を考えてみる。
\begin{figure}[h]
    \centering
    \includegraphics[width=95mm]{diff}
    \large
    \caption{関数の平均変化率}
\end{figure}

$x$$a$から$\Delta x$だけ変化した時の$f(x)$の平均変化率は、図のように変化前後の2点を通る直線の傾き、即ち$\frac{\Delta y}{\Delta x}$で表される。ここで、$\Delta x$を0に近づけていくと、2点を結ぶ直線は$x=a$における接線に近づいていく。$\Delta x$を限りなく0に近づけていった時の直線の傾き、即ち瞬間の変化率を関数$f(x)$$x=a$における微分係数といい、

\[f'(a)=\lim_{\Delta x \to 0} \frac{\Delta y}{\Delta x} = \lim_{h \to 0} \frac{f(a+h)-f(a)}{h}\]

というふうに記号$f'(a)$を用いて表す。

さらに、関数$f(x)$の任意の点における微分係数を表す関数を導関数といい、記号$f'(x)$で表される。


\end{document}

文書

f:id:grainrigi:20171009005914p:plain

かなり格好いい感じになる。