LaTeXのチャート

多くの場合、情報を簡単に表示するために、さまざまな図、グラフ、ツリーを作成する必要があります。 この問題は、プレゼンテーションを作成するときに特に重要です。 ほとんどのオフィススイートには、インタラクティブなインターフェイスを使用して美しい図を作成する機能があります。 また、大きなグラフを作成する必要がある場合はどうしますか? または、その中に数式を書きますか? 画面上の要素の設計とレイアウトではなく、コンテンツに焦点を合わせますか?



LaTeXを使用する利点は何度も議論てきました。 PGF / Tikzパッケージのビーマーとベクターグラフィックスを使用してプレゼンテーションを作成する方法と同様に。 しかし、LaTeXで、大規模で複雑なパッケージで得られたものより外観が劣らない図を取得することは可能ですか? 1つの方法を以下に示します。



開始する



まず、LaTeX( MiKTeXが Windowsに適し、 TeXliveがLinuxまたはMacに適しています)、およびbeamerおよびtikzパッケージが必要です。 両方ともMiKTeXに含まれています。 プロジェクトページまたはCTANから最新バージョンをダウンロードできます。 また、LaTeXの基本的な知識と、その中でのこれらのパッケージの使用も必要になります。 beamerはpdflatexの使用に焦点を合わせているため、主にPDFで使用されます。



シンプルなチャート



小さくてシンプルな図を作ってみましょう。 例として、LaTeXを実行するときのフォーマットの順次変換を見てみましょう: .tex> .dvi> .ps> .pdf 。 この図を配置するドキュメントがすでにあるとします。 前文では、tikzパッケージを接続し、必要なライブラリを接続します。 この場合、配置と矢印が必要です。これらは、要素を相対的に配置し、それぞれの間に矢印を描画するために必要です。

\usepackage { tikz }

\usetikzlibrary { positioning,arrows } <br>





ライブラリ名をコンマで区切ってリストする場合、スペースは許可されないことに注意してください。 これは、tikzがライブラリファイル名の一部として文字列を完全に置き換えるという事実によるものです。

ドキュメントの適切な場所に、 tikzpicture環境を追加します。その中にtikzコマンドがリストされています。 各コマンドはセミコロンで終わる必要があります。 たとえば、コマンドをネストして、符号付き矢印または子を作成できます。 一般的なコマンド構文:

\command [parameters] (name) {contents} arguments;





どこで チーム自体を除くすべてのパーツはオプションです。 tikzには何百ものチームがあり、 パスノードは興味深いものになります。

\ pathコマンドは、ベクターグラフィックスの用語で「パス」を作成します。 パラメータとして、この回路で正確に何を行う必要があるかが示されます。 また、矢印の存在と方向<-、->、<-> 、色、線の太さ、その他のパラメーターを示します。完全なリストはパッケージのドキュメントに記載されています。

引数は、輪郭が通過する座標です。 tikzで座標を設定するための多くのオプションがあります。 線を引くポイントは、演算子-で区切られます。 最適なLaTeXイデオロギーは、オブジェクトを基準とした位置決めです。 たとえば、 fooオブジェクトとbarオブジェクトの間に接続を描くには、次のコマンドを実行します

\path (foo) edge (bar);<br>







\ nodeコマンドは、通常はテキストを含むノード(またはオブジェクト)を作成します。 そのパラメータは、テキストのスタイル、色、存在に関する情報、輪郭の形状と色、他のオブジェクトとの相対的な位置、および他の多くのものです。 (x、y)の引数使用して座標(x、y)を持つ特定の場所にノードを配置できます。 しかし、最も興味深いのは、位置決めライブラリが提供する他のオブジェクトに対する相対的な位置です。 これを使用するには、指定されたオブジェクトが他のオブジェクトに相対的な方向をパラメータで示すだけで十分です。 例えば

\node (foo) { foo } ;<br>

\node [ right of=foo ] (bar) { bar } ;<br>







詳細については、ドキュメントを参照してください。 上記は、最初の単純な図を作成するのに十分です。 4つのオブジェクトと、それらの間にある3つの矢印が必要です。 実装は次のようになります

\node (tex) { .tex } ;<br>

\node [ right of=tex ] (dvi) { .dvi } ;<br>

\node [ right of=dvi ] (ps) { .ps } ;<br>

\node [ right of=ps ] (pdf) { .pdf } ;<br>

<br>

\path [ -> ] (tex) edge (dvi);<br>

\path [ -> ] (dvi) edge (ps);<br>

\path [ -> ] (ps) edge (pdf);<br>















チャートの改善



すでに最初の写真を取得しましたが、テキストのずれたライン、テキストの周囲にフレームがない、オブジェクトが近すぎるなど、まったく見ていません。 そして、これはグラデーションと透明度を持つ美しい写真の代わりに? ダイアグラムは間違いなく改善する価値があり、このためにスタイルのタスクを使用します。 スタイルはコマンドを使用して設定されます

\tikzstyle { name } = [ parameters ]





その後、スタイル名をパラメーターとして別のコマンドに渡すことができます。 さらに作業を進めるには、シェイプとシャドウライブラリを接続する必要もあります。 テキストに適した図は、ライブラリで利用可能な丸い長方形です。 そのためには、さらに背景と概要を説明する必要があります。 これを行う前に、tikzで色を設定する方法を見てみましょう。

色は、LaTeXで事前定義された名前とパッケージxcolorで指定できます。 コマンドを使用してRGBカラーを定義することもできます

\definecolor { name }{ rgb }{ 0.5,0.5,0.5 }





RGBコンポーネントはコンマで示され、その番号は0〜1です。または、他のシステムでは、xcolorパッケージのドキュメントで詳細を読むことができます。 定義済みの色を混ぜることもできます。 この操作の構文は次のとおりです。

color1 ! percent ! color2





結果は、最初の色のパーセント %と2番目の色の(100%) %を含む色になります。 2番目が指定されていない場合、デフォルトの色は白です。 たとえば、中間色を保持せずに色の混合を繰り返すことができます。

red ! 50 ! black ! 50 ! white





最初に、50%の赤と50%の黒の色が取得され、次に結果が50%の白と混合されます。 結果の赤と黒の色はそれぞれ25%です。



これで、スタイルのタスクに直接進むことができます

\tikzstyle { format } = [ rounded rectangle,<br>

thick,<br>

minimum size= 1cm ,<br>

draw=red!50!black!50,<br>

top color=white,<br>

bottom color=red!50!black!20,<br>

font= \itshape ,<br>

drop shadow ] <br>





このスタイルは、角が丸い長方形、 赤の太い輪郭線を描くことを規定しています!50!黒!50 、白からへのグラデーションを使用して塗りつぶします!50!黒!20 、影付き、内側のテキストを斜体で印刷します。

次に、テキストのベースラインを揃える必要があります。 これを行うには、まずバイアスがかかっていることがわかった。 「tex」、「ps」、および「pdf」という単語の高さはそれぞれ異なるため、オブジェクト内の中心が異なっています。 したがって、テキストの高さを明示的に指定すると、この問題を解決できます。

tikzpicture環境では、この環境内のすべてのチームに適用されるパラメーターを設定することもできます。 これを利用して、通信回線の太さ、オブジェクト間の最小距離、およびその中のテキストの高さパラメーターを設定します。

\begin { tikzpicture }[ thick,<br>

node distance=2cm,<br>

text height=1.5ex,<br>

text depth=.25ex ] <br>

\node [ format ] (tex) { .tex } ;<br>

\node [ format,right of=tex ] (dvi) { .dvi } ;<br>

\node [ format,right of=dvi ] (ps) { .ps } ;<br>

\node [ format,right of=ps ] (pdf) { .pdf } ;<br>

<br>

\path [ -> ] (tex) edge (dvi);<br>

\path [ -> ] (dvi) edge (ps);<br>

\path [ -> ] (ps) edge (pdf);<br>

\end { tikzpicture } <br>















タスクを複雑にします



単純な図の許容可能なバージョンができたので、タスクを複雑にしようとします。 この図に、データの表示方法(画面上および印刷)と中間フォーマットなしでの変換の可能性を追加します。 図には多くの行があるため、署名する価値があります。

データの表示方法に異なるノードスタイルを定義します。 上から下への青のグラデーション、濃い青のアウトライン、影を持つ楕円とします。 スタイルの説明は前の説明と似ています。

\tikzstyle { format } = [ ellipse,<br>

thick,<br>

minimum size= 1cm ,<br>

draw=blue!50!black!50,<br>

top color=white,<br>

bottom color=blue!50!black!20,<br>

drop shadow ] <br>







しかし、行を追加すると、別の問題が発生します。 パスを(tex)から(pdf)に設定すると tikzはデフォルトで直線で描画しますが、これは私たちにはまったく適していません。 残念ながら、このパッケージはまだgraphviz機能を使用できないため、要素の周りのパスを自分で記述する必要があります。 このために、相対パス指定を使用します。

\path [ ->, draw ] (tex) -- +(0,2) -| (pdf);<br>

\path [ ->, draw ] (dvi) -- ++(0,1) -- ++(3,0) -- (pdf);<br>





最初の輪郭はノード(tex)から始まり、2相対単位だけ上に上がります。 次に、ノードに垂直な垂線(pdf)が形成されるまで右に進み、ノードまで下降します。 2番目の回路はノード(dvi)から始まり、1単位上昇し、前のポイントから右に3単位進み、ノード(pdf)に直線で進みます。 等高線にラベルを追加するには、ネストされたコマンドを使用して、等高線にノードを追加します。

\path [ ->, draw ] (tex) -- +(0,2) -| node [ near start ] { pdf \LaTeX } (pdf);<br>







ただし、このコマンドはオブジェクトを追加して、輪郭とノードの中心が一致するようにします。 テキストは、通信回線で取り消し線で示されます。 これがtikzpicture環境で発生するのを防ぐために、 自動署名の自動配置オプションを指定します。 ダイアグラムの説明は次の形式になります

\begin { tikzpicture }[ thick,<br>

node distance=3cm,<br>

text height=1.5ex,<br>

text depth=.25ex,<br>

auto ] <br>

\node [ format ] (tex) { .tex } ;<br>

\node [ format,right of=tex ] (dvi) { .dvi } ;<br>

\node [ format,right of=dvi ] (ps) { .ps } ;<br>

\node [ format,right of=ps ] (pdf) { .pdf } ;<br>

\node [ medium,below of=dvi ] (screen) { screen } ;<br>

\node [ medium,below of=ps ] (verbatim) { verbatim } ;<br>

<br>

\path [ -> ] (tex) edge node { \LaTeX } (dvi);<br>

\path [ -> ] (dvi) edge node { dvips } (ps);<br>

\path [ -> ] (ps) edge node { ps2pdf } (pdf);<br>

\path [ -> ] (dvi) edge node { xdvi } (screen);<br>

\path [ -> ] (ps) edge node [ near start ] { gs } (screen);<br>

\path [ -> ] (pdf) edge (screen);<br>

\path [ -> ] (ps) edge node { print } (verbatim);<br>

\path [ -> ] (pdf) edge (verbatim);<br>

\path [ ->, draw ] (tex) -- +(0,2) -| node [ near start ] { pdf \LaTeX } (pdf);<br>

\path [ ->, draw ] (dvi) -- ++(0,1) -- node [ near start ] { dvipdf } ++(3,0) -- (pdf);<br>

\end { tikzpicture } <br>















プレゼンテーションで使用



結果の図は、記事または説明の静的な図として使用できます。 しかし、プレゼンテーションでは、チャートオブジェクトを特定の順序で表示する必要があります。 LaTeXはbeamerパッケージを使用してプレゼンテーションを作成します。 彼の作品は、オーバーレイという概念を中心に構築されています。つまり、同じスライドの異なる表現です。 beamerの使用についてはすでに書いたので、オーバーレイの仕様を思い出しましょう。 ほとんどすべてのLaTeXチームに追加でき、tikzチームも例外ではありません。 したがって、このパッケージを使用して得られたイラストは、簡単にパーツに分割され、ビーマーと統合されます。 ただし、このコマンドはオーバーレイの追加にはあまり便利ではありません。 オブジェクトを同時に表示し、既存のオブジェクトとのすべての接続を表示する場合は、各チームに仕様を追加する必要があります。 スライドに表示される時間に応じてコマンドを順番に並べる方が論理的です。 ここに、チームをグループ化する機会があります。これは最初に言及されました。 \ pathコマンドでは、接続するノードを指定できます。 したがって、オーバーレイごとに1つのチームを作成できます。

\begin { frame } <br>

\frametitle { \LaTeX workflow } <br>

\begin { tikzpicture }[ thick,<br>

node distance=3cm,<br>

text height=1.5ex,<br>

text depth=.25ex,<br>

auto ] <br>

<br>

\path [ use as bounding box ] (-1,0) rectangle (10,-2);<br>

\path [ -> ] <1-> node [ filename ] (tex) { .tex } ;<br>

\path [ -> ] <2-> node [ filename, right of=tex ] (dvi) { .dvi } <br>

(tex) edge node { \LaTeX } (dvi);<br>

\path [ -> ] <3-> node [ display, below of=dvi ] (screen) { screen } <br>

(dvi) edge node { xdvi } (screen);<br>

\path [ -> ] <4-> node [ filename, right of=dvi ] (ps) { .ps } <br>

(dvi) edge node { dvips } (ps);<br>

\path [ -> ] <5-> (ps) edge node { gs } (screen);<br>

\path [ -> ] <6-> node [ display, below of=ps ] (verbatim) { verbatim } <br>

(ps) edge node { print } (verbatim);<br>

\path [ -> ] <7-> node [ filename, right of=ps ] (pdf) { .pdf } <br>

(ps) edge node { ps2pdf } (pdf);<br>

\path [ -> ] <8-> (pdf) edge (screen)<br>

edge (verbatim);<br>

\path [ ->, draw ] <9-> (tex) -- +(0,2) -| node [ near start ] { pdf \LaTeX } (pdf);<br>

\path [ ->, draw ] <10-> (dvi) -- ++(0,1) -- node [ near start ] { dvipdf } ++(3,0) -- (pdf);<br>

\end { tikzpicture } <br>

\end { frame } <br>










結果として何が起こったかはここで見つけることができます

_________

中古を準備するとき

PGF / Tikzマニュアル

Xcolorマニュアル

ビーマーマニュアル

Texワークフローの例




All Articles