diff options
author | Karl Berry <karl@freefriends.org> | 2010-05-18 18:19:00 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-05-18 18:19:00 +0000 |
commit | a9eff7800c1787b0af5f140437003eea9e53cbb3 (patch) | |
tree | 6a6bee46035290fe65d79ff8cae90279eca08759 /Master/texmf-dist/doc/ptex/base/jfm.tex | |
parent | 8c3ddaae131e42eb2318cfe675eaff5a184892e1 (diff) |
towards 2010 pretest: enabling restricted write18, PDF 1.5 by default, ptex support files, other new programs, with i386-linux binaries
git-svn-id: svn://tug.org/texlive/trunk@18336 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/ptex/base/jfm.tex')
-rw-r--r-- | Master/texmf-dist/doc/ptex/base/jfm.tex | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/ptex/base/jfm.tex b/Master/texmf-dist/doc/ptex/base/jfm.tex new file mode 100644 index 00000000000..9e97f594e38 --- /dev/null +++ b/Master/texmf-dist/doc/ptex/base/jfm.tex @@ -0,0 +1,168 @@ +\documentclass[twoside]{jarticle} +\addtolength{\textwidth}{0.9in} +\setlength{\oddsidemargin}{.4in} +\setlength{\evensidemargin}{.4in} +\pagestyle{headings} +\begin{document} +\section{JFM file format} +%JFMファイルフォーマット +JFMファイルのフォーマットは、 +基本的にはTFMファイルのフォーマットに準拠しており、 +TFMを拡張した形になっている。 +ここでは、主にその拡張部分について説明を行い、 +その他の部分に関しては、 +\TeX\ the program等のTFMの説明を参照してもらいたい。 +\subsection{JFMファイルの構成} +JFMファイル全体の構成は、 +Table\ref{構成}(\pageref{構成}ページ)に示すとおりである。 \\ +ここでTFMと異なるのは次の点である。 +\begin{enumerate} +\item {\it char\_type}のテーブルが付け加えられたこと。 +\item {\it ligature}の換わりに{\it glue}のテーブルが設けられたこと。 +\item 2に関連して、{\it lig\_kern}から{\it glue\_kern}テーブルへ変更されたこと。 +\item これらに伴い、先頭のファイル内の各部分を規定する + パラメータ表が変更されている。 + また、オリジナルのTFMとの区別のためにidを付加している。 +\end{enumerate} + +\subsection{char\_type} +今回の\TeX の日本語化においては、同一の文字幅、 +高さ前後に挿入されるグルー等、その文字が持つ属性全てが +同じものを、1つの{\it `char\_type'}として英字フォントの1キャラクタと +同様にして扱うようにしている。 +そこで、漢字の2バイトコードとこの{\it char\_type}との対応付けを +このテーブルを使って行う。 + +このテーブルの各エントリーは1ワードで構成され、 +上位半ワードに漢字コード、下位半ワードに{\it char\_type}を持ち、 +テーブル内にはコードの値の順番に収められていなければならない。 +またこのテーブルの先頭には、デフォルトのインデックスとして +漢字コード及び{\it char\_type}の項が0のものが、 +必ず1つ存在しなければならず、このテーブルに登録されていない文字は、 +$char\_type = 0$として扱う。 +つまり、このデフォルト以外の文字幅、カーン等の属性を持つキャラクタ +のコードとタイプが2番目以降のエントリーとして存在しなければならない。 + +\subsection{char\_info} +{\it char\_type}をインデックスとしてこのテーブルを +参照することにより、各{\it char\_type}の属性を検索する。 +各テーブルへのインデックス等の情報を次の順番でパッキング +して1ワードに収めてある。 +\begin{description} +\item{width\_index(8bits)} width\_table へのインデックス +\item{height\_index(4bits)} height\_table へのインデックス +\item{depth\_index(4bits)} depth\_table へのインデックス +\item{italic\_index(6bits)} italic\_table へのインデックス +\item{tag(2bits)} + \begin{description} + \item{tag=0} {\it remainder}の項は無効であり使用しないことを示す。 + \item{tag=1} {\it glue\_kern}プログラムが{\it glue\_kern[remender]} + からに収めれれていることを示す。 + \item{tag=2、3} 使用しない。 + \end{description} +\item{remainder(8bits)} +\end{description} +% +\subsection{glue\_kern} +特定のキャラクタタイプの組み合せ時に挿入すべきglue又はkernを +簡単なプログラム言語によって指定する。 +各命令は、以下の4バイトで構成される。 +\begin{description} +\item{第1バイト} 128以上の時、このワードでプログラム終了。 +\item{第2バイト} + \begin{itemize} + \item 次の文字のキャラクタタイプが、 + このバイトで示すキャラクタタイプと同じ場合、 + 第3バイトの処理を実行し、プログラム終了。 + \item そうでなければ次のステップへ。 + \end{itemize} +\item{第3バイト} + この値によってグルーを扱うかカーンを扱うかを規定する。 + \begin{itemize} + \item 127以下の場合{\it glue[remainder$\times$3]}のグルーを挿入。 + \item 128以上の場合{\it kern[remainder]}のカーンを挿入。 + \end{itemize} +\item{第4バイト} remainder +\end{description} +\subsection{glueテーブル} +3ワードで1つのグルーを構成する。 +各値は、$design size\times2^{-20}$を単位として表す。 +\begin{description} +\item{第1ワード} width +\item{第2ワード} stretch +\item{第3ワード} shrink +\end{description} +\subsection{paramテーブル} +\begin{description} +\item{param[1]} italic slant。 +\item{param[2][3][4]} 漢字フォント間に挿入するグルーのデフォルト値。 +\item{param[5][6][7]} 漢字--英字フォント間に挿入するグルーのデフォルト値。 +\end{description} +\newpage +\begin{table}[h] +\begin{minipage}[b]{2in} +\begin{tabular}{|c|c|} \hline +\hbox to.8in{\hfil$id$\hfil} & \hbox to.8in{\hfil$nt$\hfil} \\ \hline +$lf$ & $lh$ \\ \hline +$bc$ & $ec$ \\ \hline +$nw$ & $nh$ \\ \hline +$nd$ & $ni$ \\ \hline +$nl$ & $nk$ \\ \hline +$ng$ & $np$ \\ \hline +\multicolumn{2}{|c|}{} \\ +\multicolumn{2}{|c|}{header} \\ +\multicolumn{2}{|c|}{}\\ \hline +\multicolumn{2}{|c|}{} \\ +\multicolumn{2}{|c|}{char\_type} \\ +\multicolumn{2}{|c|}{}\\ \hline +\multicolumn{2}{|c|}{}\\ +\multicolumn{2}{|c|}{char\_info} \\ +\multicolumn{2}{|c|}{}\\ \hline +\multicolumn{2}{|c|}{}\\ +\multicolumn{2}{|c|}{width} \\ +\multicolumn{2}{|c|}{}\\ \hline +\multicolumn{2}{|c|}{}\\ +\multicolumn{2}{|c|}{height} \\ +\multicolumn{2}{|c|}{}\\ \hline +\multicolumn{2}{|c|}{}\\ +\multicolumn{2}{|c|}{depth} \\ +\multicolumn{2}{|c|}{}\\ \hline +\multicolumn{2}{|c|}{}\\ +\multicolumn{2}{|c|}{italic} \\ +\multicolumn{2}{|c|}{}\\ \hline +\multicolumn{2}{|c|}{}\\ +\multicolumn{2}{|c|}{glue\_kern} \\ +\multicolumn{2}{|c|}{}\\ \hline +\multicolumn{2}{|c|}{}\\ +\multicolumn{2}{|c|}{kern} \\ +\multicolumn{2}{|c|}{}\\ \hline +\multicolumn{2}{|c|}{}\\ +\multicolumn{2}{|c|}{glue} \\ +\multicolumn{2}{|c|}{}\\ \hline +\multicolumn{2}{|c|}{}\\ +\multicolumn{2}{|c|}{patam} \\ +\multicolumn{2}{|c|}{}\\ \hline +\end{tabular} +\end{minipage} +\begin{minipage}[b]{3.3in} +\noindent +\begin{tabular}{l} +$id=$ JFM\_ID number. ($=11$) \\ +$nt=$ number of words in the character type table. \\ +$lf=$ length of the entire file, in words. \\ +$lh=$ length of the header data, in words. \\ +$bc=$ smallest character type in the font. \\ +$ec=$ largest character type in the font. \\ +$nw=$ number of words in the width table. \\ +$nh=$ number of words in the height table. \\ +$nd=$ number of words in the depth table. \\ +$ni=$ number of words in the italic correction table. \\ +$nl=$ number of words in the glue/kern table. \\ +$nk=$ number of words in the kern table. \\ +$ng=$ number of words in the glue table. \\ +$np=$ number of font parameter words. \\ +\end{tabular} +\end{minipage} +\caption{JFMファイルの構成\label{構成}} +\end{table} +\end{document} |