\documentstyle[a4j,wadalab,twocolumn]{jarticle}

\title{漢字スケルトンエディタの使い方}
\author{東京大学工学部 和田研究室 \\
石井 裕一郎 \\
\UTokyo}

\textwidth 180mm
\hoffset -20mm

\begin{document}

\maketitle

\begin{abstract}
和田研究室漢字分科会では漢字フォントを骨組みから組み合わせて作り出す
方法について研究しています。漢字スケルトンエディタはこの骨組みを
編集するための道具です。
\end{abstract}

\section{編集の対象}
漢字スケルトンエディタが編集の対象にできるのは漢字プリミティブです。
漢字プリミティブがどのようなエレメントから構成されているかを
編集することができます。
また、漢字だけではなく、平仮名や片仮名の編集もできます。

\section{使用の前準備}
漢字プリミティブエディタは{\sf UtiLisp/C}上のアプリケーションです。
{\sf UtiLisp/C}では、ヒープを十分にとっておく必要があります。
\begin{quote}
\begin{verbatim}
$ utilisp -h 3000
\end{verbatim}
\end{quote}
また同時にULX(UtiLisp X interface)をロードする必要があります。
これは、例えば各々の{\tt \$HOME/.utilisprc}に次のような行を
追加しておくと容易におこなえます。
\begin{quote}
\begin{verbatim}
(defun ulx () 
 (exfile 
  (string-append
    system_lib_path
    "ulx/loadulx.l")))
\end{verbatim}
\end{quote}
コマンドモードで{\tt (ulx)}と入力すればロードが実行されます。

漢字スケルトンエディタのプログラムがあるディレクトリは
{\verb+~kanji/lib/tools/+}です。
初期設定をするには、以下のようにします。
\begin{quote}
\begin{verbatim}
> (cd (expand-filename 
   "~kanji/lib/tools"))
> (exfile "skeledit.l")
> (reload-skelton)
> (initialize-skelton-editor)
\end{verbatim}
\end{quote}
これ以降は次のようにして編集を実行できます。
\begin{quote}
\begin{verbatim}
> (skelton-edit)     
  ;; 何もないところから編集を開始する
> (skelton-edit ぱ)  
  ;; 「ぱ」の定義を編集する
> (skelton-edit 亜)  
  ;; 「亜」の定義を編集する
\end{verbatim}
\end{quote}
関数{\tt skelton-edit}の返す値が新しいプリミティブの構成になっています。
したがって、値をまったく書き換えてしまうには、
\begin{quote}
\begin{verbatim}
> (setq ぱ (skelton-edit ぱ))
\end{verbatim}
\end{quote}
のようにすればよいわけです。

\section{ユーザ独自の構成}
表の変数をあらかじめ定義しておくことによって
自分専用の環境を作ることができます。
\begin{table*}
\begin{center}
\begin{tabular}{|c|l|} \hline
変数名(既定値) & 目的\\ \hline
\verb+*near-range*+ (400) & 
{ポインタと選ぶ対象の最大距離の自乗 } \\ \hline
\verb+*select-nearest*+ (2) & 
{もっともらしい位置を選ぶボタン} \\ \hline
\verb+*end-mode*+ (3) & 
{あるモードの終了を知らせるボタン} \\ \hline
\verb+*link-near-range*+ (16) & 
{制御点とエレメントが接続しているとみなす最大距離の自乗} \\ \hline
\verb+*default-hirawidth*+ (8) & 
{指定がない場合の平仮名の太さ} \\ \hline
\end{tabular}
\end{center}
\end{table*}

\section{エディタの使い方}
漢字スケルトンエディタを起動すると図のような表示がされます。
左のメニューでコマンドを選び、右上のウィンドウで編集をおこないます。
\begin{figure}
\begin{center}
(スナップショットがはいる)
\end{center}
\end{figure}

\subsection{エレメントの表示}
通常のエレメントは制御点とそれを結ぶ線分の列でしめされます。
制御点は、ほかの近傍のエレメントと接続してもよい場合は四角で
それ以外は三角で表示されます。
ぱぴぷぺぽの丸エレメントはさらに中心のまわりに八角形が表示されます。

\subsection{メニューの選び方と使い方}
メニューは、そこにポインタを動かしてどれかのボタンを押すと
選択できます。

\subsubsection{点の移動}
すでに表示されているエレメントの制御点を移動します。
ボタンを押して制御点を選択し、ボタンを押したままポインタを移動し、
ボタンを離すと制御点が移動します。
使うボタンによって挙動が違います。
\begin{description}
\item[\verb+*select-nearest*+ボタン]
選んだ制御点とつながっている制御点の数が1つのときは、2点を結ぶ線分の
傾きによって水平または鉛直に移動します。
2つの時はその2点を直角三角形の斜辺とし、直角の点を選んだ制御点とし、
直角をはさむ2辺が鉛直と水平になるように移動します。
それ以外の場合は、ボタンを離した位置に移動します。
\item[それ以外のボタン]
ボタンを離した位置に制御点を移動します。
\end{description}

\subsubsection{点の接続/非接続}
その制御点をほかのエレメントと接続してよいかを決めます。
ボタンを押して制御点を選ぶと現在の状態を反転します。
接続してよい場合は制御点を四角で、
接続しなくてよい場合は制御点を三角で表示しています。
接続するかどうかはエディタが自動的に計算しますが、
その際に{\tt *link-near-range*}を参照します。

\subsubsection{線の削除}
エレメントを削除します。
ボタンを押して削除するエレメントを決定します。

\subsubsection{肉付(明朝)/肉付(ゴシック)}
メニューを選択すると直ちに肉付を計算し、計算が終わると
表示します。計算中はポインタの形状が変わります。

\subsubsection{・点 $\cdots$ ・しんにゅう/・短い平仮名/・ぱぴぷぺぽ
の丸}
エレメントを加えます。必要な制御点を指定しきるまで、
このモードを抜けることはできません。
制御点の数はエレメントによって違います。
制御点の指定はボタンを押しておこないます。
押すボタンによって挙動がちがいます。
\begin{description}
\item[\verb+*select-nearest*+ボタン]
ポインタの位置に最も近い、すでにほかのエレメントの制御点となっている
点を制御点として指定します。複数のエレメントを制御点で接続することが
できます。
\item[それ以外のボタン]
ポインタの位置を制御点とします。制御点は新しく作ります。
\end{description}

\subsubsection{平仮名の太さ}
平仮名のエレメントは各制御点に太さを指定することができます。
この太さはその制御点を中心とした円でしめされます。
太さを変更するには、ボタンを押して制御点を指定し、
ボタンを押したまま太さを変更し、
ボタンを離すとその太さに変わります。

\subsubsection{・長い平仮名}
エレメントを加えます。このエレメントは制御点の数を
いくらでも増やすことができます。
制御点の指定はボタンを押しておこないます。
押すボタンによって挙動がちがいます。
\begin{description}
\item[\verb+*select-nearest*+ボタン]
ポインタの位置に最も近い、すでにほかのエレメントの制御点となっている
点を制御点として指定します。複数のエレメントを制御点で接続することが
できます。エレメントの指定は続行します。
\item[\verb+*end-mode*+ボタン]
このエレメントの指定を終了します。制御点は作りません。
\item[それ以外のボタン]
ポインタの位置を制御点とします。制御点は新しく作ります。
エレメントの指定は続行します。
\end{description}

\subsubsection{平仮名を長くする/平仮名を短くする}
長い平仮名のエレメントの長さを変更します。
エレメントの端点の近傍でボタンを押すと、その端点側を
変更することができます。
長くする場合は通常のエレメントの指定と同じ方法で新しい制御点を
決めます。
短くする場合はボタンを押すとすぐにエレメントが短くなります。

\subsubsection{終わり}
編集を終了します。

\subsubsection{テスト用1$\cdots$テスト用3}
将来の拡張用のメニューです。

\section{終わりに}
この漢字スケルトンエディタは将来は漢字フォント作成統合環境の一部
となるものです。みなさんの助言をお待ちしています。


\end{document}