天地有情

[LaTeX] textpath --- MetaPostのフリーパスに沿ってテキストを植字する

textpath --- MetaPostのフリーパスに沿ってテキストを植字する

§1 はじめに

textpath.mp は MetaPost パッケージによるフリーパスに沿ってテキストを植字するマクロを提供します.

1.1 インストール

TeXLive/W32TeX などには標準でインストールされていますので,インストール作業は必要ありません.
すぐに利用できる状態にあると思われます.

1.2 マニュアル

コマンドラインから texdoc textpath を実行してください.

§2 作成と実行について

2.1 MetaPostソースファイル(.mp)の作成

(1)次のフォーマットで foo.mp ファイルを作成します.

■■■■■■■■■■■■■■■■■■■■■■■■■■■
input latexmp;
setupLaTeXMP(packages="textpathmp", mode=rerun);
input textpath;

beginfig(1);
--- MetaPost コードを記述 ---
endfig;
bye;
■■■■■■■■■■■■■■■■■■■■■■■■■■■

(2)コンパイルの実行

   mpost foo[.mp]

正しくコンパイルされたら foo.1 が生成されます.
拡張子は beginfig(2) ならば foo.2 となります.



2.2 LaTeX ソースファイル(.tex)の作成

(1)次のフォーマットで foo.tex ファイルを作成します.

■■■■■■■■■■■■■■■■■■■■■■■■■■■
\documentclass{article}
\usepackage[dvips]{graphicx}
\begin{document}
\includegraphics{foo.1}
\end{document}
■■■■■■■■■■■■■■■■■■■■■■■■■■■

(2)コンパイルの実行

   latex foo[.tex]
続いて,
   dvipdfmx foo[.dvi]


§3 Examples

3.1 sampleA

(1)sampleA.mp



【簡単な説明】
10,11行目:パスは,-90度の角度で始まり”時計回り”に実行されます.
     最後のパラメータ(j)は,パス上のテキストの位置揃えを制御する数値です.
     ・j=0 ---- text is left aligned
     ・j=0.5 -- text is centered
     ・j=1 ---- text is right aligned

macro: textpath(expr t, p, j)
マクロはパスに変換されたテキストが含まれている画像を返します.
マクロの詳細は textpath.mp を参照してください.

(2)sampleA.tex



(3)結果

tpath-A.png





3.2 sampleB

(1)sampleB.mp



(2)sampleB.tex



(3)結果

tpath-B.png





3.3 sampleC

(1)sampleC.mp



(2)sampleC.tex



(3)結果

tpath-C.png





3.4 sampleD

(1)sampleD.mp



(2)sampleD.tex



(3)結果

tpath-D.png





3.5 sampleE

(1)sampleE.mp



(2)sampleE.tex



(3)結果

tpath-E.png





3.6 sampleF

(1)sampleF.mp



(2)sampleF.tex



(3)結果

tpath-F.png





3.7 sampleG

(1)sampleG.mp



(2)sampleG.tex



(3)結果

tpath-G.png




(EOF)
スポンサーサイト
  1. 2015/09/28(月) 09:06:24|
  2. LaTeX Tools

[LaTeX] lgrind --- LaTeXでソースコードの美しいリストを生成

§1 はじめに

更新版: 2017/04/25

lgrind は LaTeXでソースコードの美しいリストを生成します.
同種のものとして,本blog で既に紹介した minted や listings などがあります.

http://konoyonohana.blog.fc2.com/blog-entry-106.html minted

http://konoyonohana.blog.fc2.com/blog-entry-120.html listings

1.1 インストール

TeXLive/W32TeX などには標準でインストールされています.

1.2 マニュアル

コマンドラインから texdoc lgrind を実行するか,
上記に同梱の lgrind.pdf をお読み下さい.

§2 使い方

2.1プリアンブルに
   \usepackage{lgrind} を記述します.

2.2 ファイル構成

lgrindパッケージは3つのファイルで構成されています.

● lgrind.exe --- 実行ファイルです.ソースコードファイルを使用して,LaTeX ファイルに変換します.

● lgrind.sty --- 環境やマクロを提供します.

● lgrindef --- 文字列からのコメントやキーワードを伝えるために必要な情報が含まれています.

2.3 その他

(1)例えば,C言語のソースファイル(foo.c)をLaTeXのファイル(foo.tex)への変換は,

   lgrind -i -lc sample.c > sample.tex

(2)上記の sample.tex を取り込む main.tex を作成します.この中に

   \lgrindfile{sample.tex} の一行を記述します.

(3)pdflatex main.tex としてコンパイルします.



§3 サンプル

3.1 c言語の例


(1)foo.c の作成
==============================
int main(){
printf("Hello World\n");
return 0
}
==============================

(2)foo.tex への変換

lgrind -i -lc foo.c > foo.tex

(3)main-c.tex の作成(foo.tex の取り込み)と コンパイル

   コンパイル: pdflatex main-c

   結果:

lgrind01.png

【簡単な説明】

1行目:欧文クラスを使う.(日本語には対応していません)
2行目:lgrind.sty を登録する.
4行目:行番号は1からの一貫番号とする.
5行目:行番号は左端に置く.
6行目:プロセス名は任意である.ここでは[Sample]としてある.
7行目:\lgrindfile{foo.tex}でファイルを取り込む

3.2 Fortranの例

(1)fort.f の作成
========================
program calc
integer i,j,k
real answer
i=5
j=2
k=4
answer=i/j*k
print *,answer
end
========================

(2)fort.tex への変換

lgrind -i -lc fort.f > fort.tex

(3)main-f.tex の作成(fort.tex の取り込み)と コンパイル

   コンパイル: pdflatex main-f

   結果:

lgrind02.png

§4 参考(マニュアルから抜粋)

4.1 lgrindコマンド詳細

lgrind [-s] [-e] [-i] [-o <file>] [-n] [-c] [-t<width>] [-h <header>]
[-v <varfile>] [-d[!] description file] [-l<language>] [name|-]

-e process a LATEX-file for embedded text.
-i process for inclusion in a LATEX-document.
- take input from standard input.
-o redirect output.
-n don’t boldface keywords.
-a don’t treat @, etc. specially in LATEX.
-c don’t treat @, etc. specially in comments.
-t change tab width (default 8).
-h specifies text to go on the left side of every output page (default is none).
-v take variable substitution strings from file.
-d specifies the language definitions file.
-d! same as -d, except the change is permanent (modifies executable)
-l specifies the language to use.
-s shows a list of currently known languages.

4.2 対応言語

Ada    LATEX     RATFOR
Asm    LDL      RLaB
Asm68   Lex      Russell
BASIC   Linda     SAS
Batch   Lisp(Emacs)  Scheme
C     MASM      sh
C++    MATLAB     SICStus
csh    ML       src
FORTRAN  Mercury    SQL
Gnuplot  model     Tcl/Tk
Icon    Modula2    VisualBasic
IDL    Pascal     VMSasm
ISP    PERL      yacc
Java    PostScript
Kimwitu++ PROLOG

(EOF)

  1. 2015/09/27(日) 07:08:47|
  2. LaTeX Tools

[LaTeX] pgf-pie --- pieチャート(円グラフ) を描画する

pgf-pie --- pieチャート(円グラフ) を描画する

§1 はじめに

pgf-pie パッケージは 円グラフ(および変形チャート)を描画するための LaTeXパッケージ です.
このドキュメントでは,pgf-pie パッケージ の使用法を提示します.

1.1 インストール

TeXLive/W32TeX などには標準でインストールされていますので,インストール作業は必要ありません.
すぐに利用できる状態にあると思われます.

1.2 マニュアル

コマンドラインから texdoc pgf-pie を実行してください.

§2 LaTeX2e 文書での指定方法

2.1 書式

プリアンブルに
\usepackage{pgf-pie} を記述します.

2.2 構文

\pie[<options>]{グラフ仕様}

● \pie は pgf-pie が提供している唯一の command です.

● {グラフ仕様} は number/text 形式の組み合わせの list です.例えば,{10/A, 20/B, 30/C, 40/D}
  number は整数/実数 共に指定可能です.

● <options> は "§3 サンプル" を参考にして下さい.

2.3 簡単な例

pgf-pie01.png





【簡単な説明】

(1)チャートのサイズは半径によって設定されます.(デフォルトは3[単位:cm])

(2)カラーは反時計回りに,以下の10種が事前定義されています.

color={blue!60, cyan!60, yellow!60, orange!60, red!60,
blue!60!cyan!60, cyan!60!yellow!60, red!60!cyan!60,
red!60!blue!60, orange!60!cyan!60}

   color= オプションで任意に設定することができます.

(3)チャートの中心は,pos= オプションで設定することができます.(デフォルトは{0,0})

(4)フォントのサイズは pie size で一部が自動的に大きなに応じて拡大縮小することができます.
   scale font オプションを指定します.

(5)text = inside オプションを指定すると,ラベル文字を円内に配置できます.

(6)コンパイルについて
   欧文onryなら pdflatex foo.tex としますが,
   この例のように,和文が混在する場合には lualatex foo.tex とします.
   (クラスファイルは ltjsarticle または ltjarticle を利用します)

§3 サンプル

3.1 オプション [text=inside] を指定した例

pgf-pie02.png





3.2 オプション [explode ={0.1,0,0,0,0}] を指定した例

pgf-pie03.png



なお,[explode =0.1]とすれば,すべてのエリアに間隙が入ります.


3.3 Angle of slices

sum の値がグラフ内のすべてのデータの合計を示し,それはデフォルトでは100です.
auto が設定されているとき,それは自動的に計算され,その後,スライスの角度を数値との和によって決定されます.

pgf-pie04.png





3.4 Variant Charts --- Polar area diagram(鶏頭図:トサカ)の例

Polar area diagram は、通常の円グラフに似ています.

pgf-pie05.png





3.5 Variant Charts --- Square

pgf-pie06.png





3.6 Variant Charts --- Clouds

pgf-pie07.png





(EOF)
  1. 2015/09/20(日) 10:39:18|
  2. LaTeX Tools

[LaTeX] tabulary --- セル幅列がバランスのとれた表形式

tabulary --- セル幅列がバランスのとれた表形式

§1 はじめに

● tabulary パッケージは,セル幅列がバランスのとれた表形式を提供します.
● 各列の幅は,列内の最も幅の広いセルの自然の幅に応じて重み付けされます.
● tabulary 環境におけるセル幅の列仕様は L,C,R,J(大文字)を使用します.
     (\raggedright', \centering, \raggedleft, and normally justified)
  大文字指定以外は,標準的な表形式のtabular環境,array環境と同じように機能します.

1.1 インストール

TeXLive/W32TeX などには標準でインストールされていますので,インストール作業は必要ありません.
すぐに利用できる状態にあると思われます.

1.2 マニュアル

コマンドラインから texdoc tabulary を実行してください.


§2 LaTeX2e 文書での指定方法

2.1 書式

プリアンブルに
  \usepackage{tabulary} を記述します.

2.2 構文

\begin{tabulary}{<length>}{<pream>} . . . \end{tabulary}

   <length> 表の全幅長を指定.
   <pream> 列仕様(L,C,R,J)を指定.

§3 サンプル

<length> に等しい合計表の幅を作るために LCRJ列 は p列 に変換され,
これらの変換された列の幅は、各列の一番長いエントリの自然幅に比例しています.

パッケージオプション debugshow を付けると,即ち,\usepackage[debugshow]{tabulary} として
実行すると,コンパイル時に 各セルのサイズ が次のようにコンソール表示されます.


【コンソール表示】
---------------------------------------------------------------------
Table
Target Width: 327.0pt
\tabcolsep: 6.0pt \arrayrulewidth: 0.4pt \doublerulesep: 2.0pt
\tymin: 10.0pt \tymax: 654.0pt
Col 3: Initial=31.64432pt -12.4pt Final=19.24432pt > tymin
Col 2: Initial=51.44981pt -12.4pt Final=39.04982pt > tymin
Col 1: Initial=41.66647pt -12.4pt Final=29.26648pt > tymin

Line Width: 289.40002pt, Natural Width: 87.56062pt, Ratio: 1
29.26648pt, 39.04982pt, 19.24432pt,
Total:87.56062pt
---------------------------------------------------------------------


上記から,<length> を \textwidth(327.0pt)にした場合の各セルの長さとその合計は
31.64432pt + 51.44981pt + 41.66647pt = 124.7606pt → 125pt となります.
\textwidth の代わりに 125pt を使っても,上記と同じ結果となります.

また,LCRJ列 は p列 に変換されますが,コンソール表示の下段がその値と思われます.
即ち,29.26648pt + 39.04982pt + 19.24432pt = 87.56062pt
従って,この値を使うと p列 は概算で,
\begin{tabulary}{87.6pt}{|p{29.3pt}|p{39pt}|p{19.3pt}|}とすることが出来ます.

<length> を 125pt および p列変換値を使い並置すると次のようになります.
コンソール表示は前出と同じです.

tablary02.png


結論的には <length> を \textwidth 或いは パッケージオプション debugshow を指定してセル長さを合計
したものを指定(この例では 125pt)すればよいことになります. p列値はパッケージの内部処理であり,気にする
ことはないと思われます.

(EOF)
  1. 2015/09/16(水) 14:11:52|
  2. LaTeX Tools

[LaTeX] ctable --- もう一歩進んだテーブル環境

ctable --- もう一歩進んだテーブル環境

標準の tabularパッケージ では表直下に footnote を置くことができません.これを改善したものに
threeparttable環境があり表直下に footnote を置くことができ,中味が "表題部","表作成部","脚注部" の
3部構成となっており,少しばかり複雑です.
今回,紹介する ctableパッケージ は,より進化したものと考えられシンプルで高機能です.

§1 はじめに

● ctableパッケージ は,表と図の組版のための ctableコマンドと多様なオプションを有しています.
  オプションは key=value のペア形式が一般的です.

● 表自体は booktabsパッケージが使われ,表の脚注を作成するための機能が付加されています.

● ctableパッケージ は,xcolor,array,tabularx,booktabs,rotating をインポート
  しているので,それらのパッケージのすべてのコマンドも利用できます.

● ctableパッケージには,コマンド \tnote と \tmark があり,脚注を生成します.
  また,キャプションと脚注の両方が,通常,テーブルの幅の範囲内に強制されます.

● カラム分離用の垂直線は\ctableで生成することができますが,規定は,それらが水平線に交差する
  ようには考えられていません.即ち,"縦罫線"は使えません.注意が必要です.

1.1 インストール

TeXLive/W32TeX などには標準でインストールされていますので,インストール作業は必要ありません.
すぐに利用できる状態にあると思われます.

1.2 マニュアル

コマンドラインから texdoc ctable を実行してください.


§2 LaTeX2e 文書での指定方法

2.1 書式

プリアンブルに
  \usepackage{ctable} を記述します.

● \ctableのデフォルトは preamble または body のいずれかで、設定できます.
  \setupctable{options}   \setupctableは caption, cap, label を除くすべてのオプションのデフォルト値を設定することができます.
  すべてのテーブルが左揃えしたい場合は,preamble または body のいずれかで \setupctable{left} とします.
  表全体に影響するような,即ち,グローバルなオプションが設定できます.

● \ctableは、4つのパラメータを使用して呼び出されます.

  \ctable[options]{列仕様}{脚注部仕様}{表仕様}

  options はカンマで区切られた key=value のペアとして指定されます.
  表個別なオプションが設定できます.

● "オプション" の種類については マニュアル を参照してください.

2.2 \tnote と \tmark

(1)\tnote
   \tnote[label]{footnote text}

  テーブルの下に脚注テキストにラベルを付けます.
  このコマンドは,\ctableの第3引数に使用することができます.ラベルは任意です.

(2)\tmark
   \tmark[label]

  このコマンドは,テーブルに上付き文字のラベルを配置します.これは$^{label}$.と等価です.ラベルは任意です.

2.3 表の改行を生成するコマンド

(1)\FL[<wd>] (\toprule のエイリアス)
   最初の行は,新しい行とその下にいくつかの余分なスペースをもつ太い線を生成します.
   <wd> パラメータは,線幅を設定します.デフォルトは0.08emです.

(2)\ML[<wd>] (\tabularnewline\midrule のエイリアス)
   新しいラインとその下にいくつかの余分なスペースとの細い線を生成します.
   <wd> パラメータは,線幅を設定します.デフォルトは0.05emです.

(3)\LL[<wd>] (\tabularnewline\bottomrule のエイリアス)

   最後の行は新しい行とその上にいくつかの余分なスペースを持つ太い線を生成します.
   <wd> パラメータは,線幅を設定します.デフォルトは0.08emです.

(4)\NN[<wd>] (\tabularnewline のエイリアス)

   通常の改行は,普通の新しい行を生成します.
   <wd> パラメータは,ラインの下に余分な縦方向の空白を挿入します.

複雑な表のソース・テキストは,多くの場合,非常に混雑となっているため短い名前(エリアス)が定義されています.
以下は正式なコマンド名ですが,詳細は booktabs パッケージを参照してください.

\toprule[<wd>]
\midrule[<wd>]
\bottomrule[<wd>]
\cmidrule[<wd>](<trim>){a-b}
\morecmidrules(二つの連続 cmidrules を分離するために使用する)
\addlinespace[<wd>]
\specialrule{<wd>}{<abovespace>}{<belowspace>}

§3 簡単なサンプル

(1)標準的な例

ctable01.png


(2)カラー指定の例

ctable02.png


(3)図配列の例

ctable03.png

3.1 コンパイル・コマンド

ctableパッケージは pdflatex と lualatex で動作します.日本語を含む場合は luatex-ja で対応できます.

上記3例のコンパイルは lualatex foo.tex で実行しています.


(EOF)
  1. 2015/09/06(日) 17:13:54|
  2. LaTeX Tools

[MetaPost] mpgraphics による "MetaPost Examples"集

mpgraphics による "MetaPost Examples"集

§1 はじめに

MetaPost による図形の作成は,次のようなクラシックな手法で生成していました.

(1) MetaPost ソースファイル foo.mp を作成.
(2) foo.mp をコマンド mpost foo.mp で処理.foo.n(n=1,2,...n)が生成される.
(3) foo.n を LaTeX ソースファイル中の \includegraphics で foo.tex に取り込む.
(4) latex foo.tex で処理.(foo.dvi を生成)
(5) dvips foo.dvi で処理.(foo.ps を生成)
(6) ps2pdf foo.ps foo.pdf (PDF を生成)

さて,今回紹介する "mpgraphicsパッケージ" を使うと,上記の一連の流れを自動化したものと考えられ,
pdflatex foo とすると,1回のコンパイルで PDF が生成されます.

mpgraphics パッケージに関しては "mpgraphics --- LaTeX文書中に MetaPostコード を埋め込み実行する"

で,概要が説明されています.ご一読の程,お願いします.

今回,mpgraphicsパッケージ で利用する (.mp)ソースファイル はネットで検索した "MetaPost:Examples" です.

ダウンロードの上,examples.mp を利用するものとします.

§2 mpgraphics の基本的な構成

mpgraphics-style.png

説明:
● mpdefs環境はオプションです.必要なければ省略できます.
● ltxpreamble環境はオプションです.必要なければ省略できます.
● mpdisplay環境は必須です.ここに,MetaPostコードを記述します.

§3 ソースファイルの例

■■■■■■■■■■■■■■■■■■■■
\documentclass{article}
\usepackage{mpgraphics}
\usepackage{color}
\begin{document}
\begin{mpdisplay}
pair A, B, C;
A:=(0,0); B:=(1cm,0); C:=(0,1cm);
draw A--B--C;
\end{mpdisplay}
\end{document}
■■■■■■■■■■■■■■■■■■■■

(注)
● クラスファイルは欧文用を使います.この場合は article を指定しています.
● ダウンロードで得られた examples.mp において beginfig(1) と endfig; を除いた部分をコピーし,
  \begin{mpdisplay}~\end{mpdisplay} の間にペーストしてください.
● コンパイルは pdflatex foo.tex です.

● クラスファイルが和文用の場合には "日本語 MetaPost --- uplatex , platex で使ってみる"
  をご覧ください.

§4 実行結果

次の Example01.pdf ~ Example04.pdf (4分割)をクリックの上,ご覧ください.

(1) Example01.pdf
(2) Example02.pdf
(3) Example03.pdf
(4) Example04.pdf

(EOF)
  1. 2015/09/01(火) 08:54:50|
  2. MetaPost