天地有情

[LaTeX] geometryパッケージ 再訪

geometryパッケージ 再訪

§1 はじめに

geometryはページレイアウトに関し有名なパッケージです.バージョン5になっており,見直してみました.
このパッケージはページレイアウトに関して直感的なパラメータを使用して容易なインタフェースを提供します.
例えば,用紙の各端から2cmまでのマージンを設定する場合,

   \usepackage[margin=2cm]{geometry}

と記述できます.
また,ページレイアウトは文書の途中で変更することができ,\newgeometry コマンドが使用されます.

■ インストール

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

■ マニュアル

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

§2 最新版 バージョン5 に追加された幾つかの項目

● ページレイアウトを文書の途中で変更できます.
  新しいコマンド \newgeometry{...} と \restoregeometry で,ドキュメントの途中でページレイアウトを
  変更することができます.\newgeometry はプリアンブルで指定された用紙サイズ関連のオプションを除き
  すべてのオプションを無効にします.

● layout,layoutsize,layoutwidth,layoutheightなどのオプションは,異なるサイズの用紙に指定された
  レイアウトを印刷するのに役立ちます.

● 新しいドライバオプション xetex が追加されました.

● JIS(日本工業規格)の Bシリーズ および ISO の Cシリーズ の用紙サイズが追加されました.

● オプション showframe と showcrop は,すべてのページで動作します.
  showframe オプションを使用すると,ページ・フレームは,すべてのページに表示されます.
  オプション showcrop は,すべてのページにレイアウト領域の四隅にcrop marks をプリントします.

§3 ユーザインタフェース

3.1 コマンド   
geometry パッケージには,次のコマンドが用意されています.

● \geometry{<options>}
引数で指定されたオプションに応じてページのレイアウトを変更します.
このコマンドは,もしあれば,プリアンブルのみに配置する必要があります.
\geometry はプリアンブル中の設定の一部を上書きすることができます.\geometry の複数使用は許可されされます.

geometryがまだロードされていない場合,\geometryの代わりに
  \usepackage[<options>]{geometry}
を使用することができます.

● \newgeometry{<options>} and \restoregeometry
\newgeometry{<options>} は文書の途中で変更することができます.
\newgeometry は,\geometry とほぼ同様ですが,プリアンブルに \usepackage と \geometry で指定された
すべてのオプションを無効にし用紙サイズ関連のオプションをスキップします.

\restoregeometry は,プリアンブルで指定されたページレイアウトを復元します.
このコマンドには引数はありません.

● \savegeometry{<name>} と \loadgeometry{<name>}
\savegeometry{<name>} は <name> としてページのサイズを保存します.
\loadgeometry{<name>} は <name> として保存したページのサイズをロードします.

3.2 オプションの引数

geometry package のオプション引数は \usepackage, \geometry および \newgeometry のために
<key>=<value> 形式を採用しています.

引数は,カンマで区切られた keyval options のリストが含まれており,次のように基本的なルールがあります.

● 空白行ではないながら,複数の行は,許可されています.
● 単語の間にスペースは無視されます.
● オプションは基本的に順序に依存しません.

例えば,

   ===========================================
   \usepackage[ a5paper , hmargin = { 3cm,
        .8in } , height
       = 10in ]{geometry}
   ===========================================
   は

   ==============================================================
   \usepackage[height=10in,a5paper,hmargin={3cm,0.8in}]{geometry}
   ==============================================================
   
と同等です.

一部のオプションは,{3cm,0.8in} のような サブリスト を持つことが許可されています.
サブリストの値の順序が重要ですので注意してください.上記の設定は,以下のものと同等です.

\usepackage{geometry}
\geometry{height=10in,a5paper,hmargin={3cm,0.8in}}

または,

\usepackage[a5paper]{geometry}
\geometry{hmargin={3cm,0.8in},height=8in}
\geometry{height=10in}.

したがって,\geometryの複数使用でき,オプションが追加されます.

geometryは,calc パッケージをサポートしており,次のような記述が可能となります.

\usepackage{calc}
\usepackage[textheight=20\baselineskip+10pt]{geometry}

3.3 オプションのタイプ

geometry オプションは,4つのタイプに分類されます.

(1)Boolean type
   ブール値(trueまたはfalse)をとります.値なしならば,trueがデフォルトで設定されています.
   <key>= true|false.
   値を持たない<key> は <key>=true と等価です.
   
   Examples:
   verbose=true, includehead, twoside=false.

(2)Single-valued type
   必須値をとります.
   <key>=<value>
   
   Examples:
   width=7in, left=1.25in, footskip=1cm, height=.86\paperheight

(3)Double-valued type
   中括弧内のカンマ区切り値のペアを取ります.
   それらが同一である場合,2つの値は1つの値に短縮することができます.

   <key>={<value1>,<value2>}
   <key>=<value> は <key>={<value>,<value>} 等価です.
   
   Examples:
   hmargin={1.5in,1in}, scale=0.8, body={7in,10in}

(4)Triple-valued type
   中括弧で3つの必須,カンマで区切られた値をとります.
   <key>={<value1>,<value2>,<value3>}

   各値は,ディメンションまたはnullでなければなりません.
    `* 'は,nullを意味し,自動補完機構に適切な値を残します.

   Examples:
   hdivide={2cm,*,1cm}, vdivide={3cm,19cm, }, divide={1in,*,1in}

§4 オプションの処理

4.1 loadingの順序

geometry.cfg どこかがあれば TeX は最初の geometry をロードして,それを見つけることができます.
例えば,geometry.cfg で,\ExecuteOptions{a4paper}を書き込むことができます.
これはデフォルトの用紙としてA4用紙を指定します.

基本的には \ExecuteOptions{} でgeometry に定義さデすべてのオプションを使用することができます.

文書のプリアンブルで loading の順序は,次のとおりです.

   1. geometry.cfgが存在する場合
   2. \documentclass[<options>]{...}
   3. \usepackage[<options>]{geometry}
   4. \geometry{<options>}, 複数回呼び出すことができます

   (reset option は \usepackage{geometry} or \geometry で与えられた options をキャンセルします.

4.2 optionの順序

geometry オプションの指定は順序に依存せず,同じ設定の場合は以前のものを上書きします.

   Examples:
   [left=2cm, right=3cm] は [right=3cm, left=2cm] と同等です.(オプションの並べ方は順不同)

複数回呼ばれるオプションは,以前の設定を上書きします.

   Examples:
   [verbose=true, verbose=false] 前の設定を上書きし verbose=false が設定されます.
   [hmargin={3cm,2cm}, left=1cm] は [hmargin={1cm,2cm}] と同等です.
   ただし,reset と mag オプションは例外です.

reset オプションは,その前の,すべてのgeometry のオプションを削除します.

   Examples:
   
   \documentclass[landscape]{article}
   \usepackage[margin=1cm,twoside]{geometry}
   \geometry{a5paper, reset, left=2cm}
   
   は
   
   \documentclass[landscape]{article}
   \usepackage[left=2cm]{geometry}
   
   と同等です.

mag オプションは,長さを有する任意の他の設定を事前に `true ' に設定する必要があります
left=1.5truecm, width=5truein のように記述します..
このパッケージが呼び出される前に \mag プリミティブを設定することができます.

4.3 Priority

body の大きさを設定するには,いくつかの方法があります.(scale, total, text , lines)
geometry パッケージは,より具体的な仕様で優先順位を与えます.ここで body の優先ルールを示します.

geometry01.png


   Examples:
   \usepackage[hscale=0.8, textwidth=7in, width=18cm]{geometry}
   は
   \usepackage[textwidth=7in]{geometry}
   と同等です.

   \usepackage[lines=30, scale=0.8, text=7in]{geometry}
   は
   [lines=30, textwidth=7in].
   と同等です.

§5 文書の途中でのlayout変更

バージョン5 は,新しいコマンド \newgeometry{...} と \restoregeometry を提供しています.
これは,ドキュメントの途中でページサイズを変更することができます.

プリアンブルでの \geometry とは異なり,\newgeometry は \begin{document} を開始した後にのみ使用可能です.

今まで用紙サイズ関連のオプションを除き,指定されたすべてのオプションをリセットします.
これは,\newgeometry で変更することはできません.即ち,
landscape, portrait および用紙サイズのオプション(例えば,paper=a4paper など)

コマンドの \restoregeometry は,プリアンブルで指定したページのレイアウトを復元します.
なお,\newgeometry と \restoregeometry は,それらが呼ばれる場所には \clearpage が挿入されます.

文書に複数の異なるレイアウトを再利用する場合のコマンドセット
\savegeometry{<name>} と \loadgeometry{<name>} が便利です.

   Example:
   ==============================================
   \usepackage[hmargin=3cm,showframe]{geometry}
   \begin{document}
   L1
   \newgeometry{left=3cm,right=1cm,bottom=0.1cm}
   \savegeometry{L2}
   L2 (new, saved)
   \restoregeometry
   L1 (restored)
   \newgeometry{margin=1cm,includefoot}
   L3 (new)
   \loadgeometry{L2}
   L2 (loaded)
   \end{document}
   ==============================================

§6 参考:オプション一覧

geometry02.png
geometry03.png

7 Other options

(1)reset:

レイアウト寸法をバック設定し,geometry がロードされる前の設定に切り替わります.
geometry.cfg に与えられたオプションもクリアされます.
これはtruedimen とpass とmag をリセットすることはできませんので注意してください.

(2)mag:

倍率値(\mag)は倍率に応じて自動的に \hoffset and \voffset 修正.
<value>が通常のサイズ1000の整数値でなければならないことに注意してください.
例えば,mag=1414 -- a4paperがa3paperの拡大印刷めの設定を提供して,これはa4paperの1.414倍です.
magを設定すると,`true'の寸法の他の設定に先行する必要があることを注意してください,
1.5truein,2truecmとなど.またtruedimen オプションを参照してください.

(3)truedimen:

   §7(1)を参照してください.

(4)pass:

verbose and showframe 以外 geometry options および計算のすべてを無効にします.

(5)showframe:

最初のページに head and foot のためのテキスト領域、ページ、ラインなどの可視フレームを
表示します.

(6)showcrop:

ユーザーが指定したレイアウト領域の四隅にマークをプリントします.


§7 雑件

(1)truedimen オプションについて
   truedimenはすべての内部の明示的なディメンション値を変更します.
   例えば,1インチ は 1truein に変更されます.
   通常,このオプションは,magのオプションと一緒に使用されます.
   これは,外部から指定された寸法に対しては無効であることに注意してください.
   例えば,[mag=1440, margin=10pt, truedimen] に設定したときに,marginは'true`ではありません
   正確なマージンを設定したい場合は,次のように設定する必要があります.
   [mag=1440, margin=10truept, truedimen]

   ■注意1:
        奥村先生の新ドキュメントクラス(jsclasses)側で10pt 以外にする場合
        • geometry 側でオプション truedimen を指定します.
        • geometry 側でオプションmag は使えません.
   ■注意2:
        • \usepackage{geometry} を指定した場合,
         jsclasses側のクラスオプション papersize は使えません.


(2)ページの高さを増やす
   LaTeX ではページの高さを増やすコマンドとして \enlargethispage{<length>} があります.
   gepmetry では §5(文書の途中でのlayout変更)で述べたように \newgeometry でレイアウトできます.

(EOF)
スポンサーサイト
  1. 2015/05/24(日) 09:32:33|
  2. LaTeX Tools