2014年3月7日金曜日

LaTeXで法律文書を作る

今回は法律文書を作ります。
実用というよりもコード中心の話になるので、写真は置きません。
ソースコードはここからダウンロードしてください。
emagital.com/Blogs/legal.zip
この記事で説明することは2つです。
  1. 数値をイロハや丸付き数字に変更する方法。
  2. LaTeXでキー値コーディングを扱う方法。

1、数値をイロハや丸付き数字に変更する
イロハの出力は、Switch文でできます。
\newcount\tempvls
\def\toIroha#1{
____\tempvls=#1
____\ifcase\tempvls
________\or\or\or\or\or\or\or\or\or
________\else 未定義
____\fi
}
\toIroha{数値}を呼び出すことで変換されます。
この関数を書き換えることでたいていの変換ができますが、丸付き文字についてはフォント自体の問題が出てくるため、そのまま入力しても出力できないことがあります。
そこでpictureを使って、circleと数字を重ねます。
数値は適宜調整してください。
\def\marutsuki#1{
____\unitlength=1zw
____\begin{picture}(1,1)(0,0)
________\put(0.82,0.42){\circle{1.3}}
________\put(0,0){#1}
____\end{picture}
}

2、LaTeXでキー値コーディングを扱う
たとえば
居住用財産の買換えの場合等の長期譲渡所得の課税の特例
で触れている内容について書きたいことがあるとします。とても長い条目です。
「租税特別措置法の居住用財産の買換えの場合等の長期譲渡所得の課税の特例に上げた通り」なんて愚直に書こうものなら、それだけで紙面を潰してしまいますから、「第七条に上げた通り」などと書き換える必要があります。
しかしそのまま「第七条」と書いてしまうと、その前に新しい条を挿入して、番号が変わってしまったときに苦労します。番号が変わるたびに、第何条だ第何款だ第何項だと書いていた番号を片端から書き換えていくのは骨が折れます。そんな面倒なことはしたくない。
だからこういう方法を考えます。
  • key:居住用財産の買換えの場合等の長期譲渡所得の課税の特例
  • value:第七条
とするときに、キーである「居住用財産の買換えの場合等の長期譲渡所得の課税の特例」と打ち込むと、自動で「第七条」に変換されます。
キーと値を対応させるため、キー値コーディング(key value)と呼ばれる方法です。
LaTeXでは、それをラベルの再定義によって実装できます。
なお、値とキーのひも付けは一回前のコンパイルの時に行われています。
ですので、二回コンパイルするまでは反映されません。データがない間は??で置き換えられます。
%条番号を定義
\newcount\regsect

\makeatletter
____%labelと同様のものを別名で定義
____\newcommand{\slabel}[1]{%
____\@bsphack
________ \protected@write\@auxout{}%
________________{\string\newlabel{#1}{{\the\regsect}{\the\page}}}%
____\@esphack
____}

\makeatother

%呼び出し
\newcommand{\refSection}[1]{第 \ref{#1} 条}
\slabel{居住用財産の買換えの場合等の長期譲渡所得の課税の特例}と書くことで、第何条かという情報が登録されます。
その時点での\regsectの値と、「居住用財産の買換えの場合等の長期譲渡所得の課税の特例」がひもづけられます。
\refSection{居住用財産の買換えの場合等の長期譲渡所得の課税の特例}と書くと、ひもづけられた\regsectの値と置き換えられます。
  1. 居住用財産の買換えの場合等の長期譲渡所得の課税の特例は\refSection{居住用財産の買換えの場合等の長期譲渡所得の課税の特例}です
  2. 居住用財産の買換えの場合等の長期譲渡所得の課税の特例は第七条です
上の文章を入力すると、下の文章が出力されます。
詳細については実際に使っている部分を参考にしてください。legal.zipの中の、legal.texにある最終行がその部分です。
ざっくりと以上です。それでは、また。

0 件のコメント:

コメントを投稿