天地有情

[LaTeX] keyvaltable --- 再利用可能なコンテンツとプレゼンテーションを分離するテーブル

keyvaltable --- 再利用可能なコンテンツとプレゼンテーションを分離するテーブル

§1 はじめに

keyvaltableパッケージは,"コンテンツとプレゼンテーションを分離するテーブル" のために以下の手段を提供します.

(a) テーブルタイプ
  テーブルタイプは「テーブル名」によって識別され,さらにプロパティのリストをもっています.
  各列には,「列名前」や列の見出し,列のコンテンツの配置などがあります.

(b) テーブルの行
  テーブルの行は,key-valueのペアのリストで指定されます.
  key は「列名前」であり,対応する value は,その「値」です.

1.1 インストール

TeXLive(2015) には標準でインストールされていますので,インストール作業は必要ありません.
W32TeX では不足している以下のパッケージを CTAN より入手の上,適切にインストールしてください.

・bbding.zip
・engrec.zip
・enumitem-zref.zip
・esvect.zip
・interfaces.zip
・linegoal.zip
・ltxnew.zip
・makecell.zip
・moresize.zip
・tabu.zip
・wasysym.zip

1.2 マニュアル

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

§2 使い方

(1)プリアンブルに
   \usepackage {keyvaltable} を記述します.

(2)書式例

■■■■■■■■■■■■■■■■■■■■■■■■■■■■
\documentclass{jsarticle}
\usepackage{keyvaltable}
\begin{document}
\NewKeyTable{テーブル名}{% ------------ 新しいテーブル型を定義
列名1:配置1 ;
列名2:配置2 ;
列名n:配置n ;
}
%
\begin{KeyValTable}{テーブル名} % ------ 属性と値を定義
\Raw{key11=value11, key12=value12,...}
\Raw{key21=value21, key22=value22,...}
\Raw{key31=value31, key32=value32,...}
\end{KeyValTable}
\end{document}
■■■■■■■■■■■■■■■■■■■■■■■■■■■■

§3 サンプル

(1)標準的な例

keyval01.png


このコードは,このタイプに属する列と一緒に,新しいテーブル型,「価格表」 を定義しています.
その仕様はセミコロンで区切られている3つの列(品名,単価(円),個数)があります.
:(コロン) で分離後,列ごとに,列の配置を設定します.r(right) ,l(left) は,標準的な表形式のアラインメントです.

テーブル型を定義した後,例では,行ごとに KeyValTable環境 と \Row マクロを使用しています.
KeyValTableのパラメータ「価格表」は,テーブルのタイプを識別します.

【補足説明】

● \NewKeyValTable

テーブルタイプを定義し一般的な形式は,\NewKeyValTable{<tname>}{<colspecs>}

   <tname>はテーブルタイプの名前.
   <colspecs>は個々の列仕様のセミコロン区切りリスト

各列の指定の形式は

   <colname>: <property>=<value>, <property>=<value>, .....

この仕様記述では,<colname>は,列の名前を表し,<property>= <value>ペアは,列の特定のプロパティを設定します.
<property>は,次のいずれかになります.

・align --- これは, l, c, r, p, X を含みます.デフォルトでは "l" に設定されています.

・default --- \Rowは,セルのコンテンツを提供しない場合には,この列,すなわちセルのデフォルト値を指定します.
      デフォルトは空の文字列です.

・format --- セルの内容の書式マクロを指定します.

・head --- 列のヘッダー行の内容を指定します.デフォルト値は列の名前です.

・hidden ---- テーブルのカラムの表示,非表示をしなければならないかどうかを指定します.
      このプロパティの<value>は"true"(セルを表示する;デフォルト) または"false"(セルを表示しない).

(2)head や row をカラー指定する

keyval02.png


環境自体はヘッダー行といくつかの水平線を生成し,行の背景色を設定します.

【補足説明】

● KeyValTable環境

KeyValTable[<options>]{<tname>}環境は <tname>タイプのテーブルを作成します.
その前に \NewKeyValTable を使用して <tname> が作成されている必要があります.

<options> 設定は,<property>=<value> のペアのカンマ区切りのリストでなければなりません.
次のプロパティ名を使用することができます.

・rowbg --- コンテンツの行の背景色を指定します.
      <value>の形式は,<oddcolor>.. <evencolor>でなければなりません.
      デフォルトは white..black!10,すなわち,交互に白と灰色となります.

・headbg --- ヘッド行の背景色を指定します.
      <value> は xcolorパッケージ によって理解されている単一の色指定でなければなりません.
      デフォルトはblack!14


・\Row --- テーブル行は,\Row{<content>} マクロによって生成されます.
      <content> は <cname>= <text> ペアのカンマ区切りのリストでなければなりません.
      <cname> は,テーブル型 <tname> のために登録された列を識別します.
      <text> それぞれの列のセルの内容を指定します.

(3)行を追加する例(品名 "いちご" を追加)

keyval03.png


\AddKeyValRow で行を追加し,\ShowKeyValTable で表示できます.
行の追加環境には KeyValTableContent環境が使われます.

【補足説明】

● KeyValTableContent環境

行の追加を簡単にするため,KeyValTableContent{<tname>}環境を 使用します.
この環境では,\Rowマクロを使用することができます.
KeyValTable環境との唯一の違いは,KeyValTableContent環境テーブルが表示されません.
このため,\ShowKeyValTableマクロを使用することができます.

● \AddKeyValRow

追加のテーブル行は,\AddKeyValRow{<tname>}{<content>} マクロによって生成されます.
<tname>テーブルタイプを識別し,<content>は,行のセルのコンテンツを提供しています.
<contentの形式は,前述の \Rowマクロ の場合と同じです.

● \ShowKeyValTable

\AddKeyValRowで定義された行の表は,\ShowKeyValTable[<options>]{<tname>} マクロで表示することができます.
パラメータはKeyValTable環境の場合と同じ意味を有します.

(4)セル中で計算を行う例

keyval04.png


セルの書式設定マクロのメカニズムは,列に含まれている数式を自動的に計算を可能にします.
これは,計算を引き継ぐ xintパッケージ とカスタム形式のマクロ(ここでは\Math)を使用して,
インスタンスのために行うことができます.

§4 ファイル(フレーム)の分離と結合

前述の最初の例と,その次の例を取り出して説明します.
これらは,テーブル型定義部(クラスフレーム)と行制御部(インスタンスフレーム)
に分離することができます.下図に示すように

keyval05.png


(a) 1.tex + 11.tex
(b) 1.tex + 12.tex

とし,メインのファイル(main.tex)で次のように結合できます.

keyval06.png

(EOF)
スポンサーサイト
  1. 2016/04/11(月) 06:59:51|
  2. LaTeX Tools