%表題   GRPH1 基本グラフィックルーチンライブラリ
%
%履歴
%\Drireki{
%         90/03/22 塩谷雅人
%         91/09/05 林祥介
%         91/12/11 塩谷雅人
%         92/02/07 塩谷雅人
%         92/04/22 林祥介   (4.1版)
%         94/03/12 塩谷雅人
%        }
%
%\Dchapter{CSGI : DCL フォントテーブルからの文字取得ルーチン}
%\Dchapterhead
%\label{csgi}
\section{関数の説明 : DCL文字関数}
\label{sgpack.csgi}

GRPH1で用いる文字コードの取り扱いに関する関数群.
% 使用例については\ref{sg.greek}節参照.

\vspace{1em}
GRPH1では, フォントテーブル
(\ref{append.table.sgfont1},\ref{append.table.sgfont2}節)を
見ると分かるように, 普通のASCII文字ばかりでなく, ギリシャ文字や特殊な
記号も使用できる.
テキストプリミティブで文字列を指定するには,
キーボードにある文字はそのまま文字列として書き込めばよい.
キーボードにない文字, あるいはキーボードにあっても正しく表現されない文字は,
関数副プログラム{\tt CSGI}の引数として
フォントテーブルに示してある番号
(以下ではDCL文字番号という)を与えることによって指定する.

\vspace{1em}
この文字関数{\tt CSGI}はASCIIコードを使用する計算機システムでは
FORTRANの{\tt CHAR}関数と同値である.
しかし, たとえばEBCDICコードを使用する計算機システムでは
{\tt CHAR}関数で正しい文字が得られない.
どのようなコード系を使用していても一意に文字を指定するための
関数が{\tt CSGI}である.
なおこの逆関数として, ある文字のDCL文字番号を返す
{\tt ISGC}がある.

\vspace{1em}
{\tt CSGI}の使用例としては, たとえば,
\begin{quote}
  cos$\alpha$x
\end{quote}
と書きたいとき
\begin{quote}
  {\tt CHARACTER CSGI*1}
\end{quote}
と宣言した上で
\begin{quote}
  {\tt 'cos'//CSGI(152)//'x'}
\end{quote}
のように文字列を生成してテキストプリミティブにわたせばよい.

\vspace{1em}
なおここに記されている関数群はシステムに依存しているので,
ソースコードは{\tt sgpack}の下にはなく{\tt csgi}という
独立したディレクトリに収められている.

%\section{関数の説明}

\subsection{CSGI}
\label{sgpack.csgi.csgi}
\begin{enumerate}
  \item 機能
  \begin{quote}
    DCL文字番号に対応する文字を返す.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CSGI(IC)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt IC} & {\tt (I)} & 与えるDCL文字番号.
        0から255の整数値で指定する.\\
      {\tt CSGI} & {\tt (C*1)} & DCL文字番号に対応する文字.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item この関数を用いるためには
      \begin{quote}
        {\tt CHARACTER CSGI*1}
      \end{quote}
      と宣言してなければならない.
    \item ASCIIコード系において{\tt CSGI}は{\tt CHAR}と同値である.
  \end{enumerate}
\end{enumerate}

\subsection{ISGC}
\label{sgpack.csgi.isgc}
\begin{enumerate}
  \item 機能
  \begin{quote}
    文字に対応するDCL文字番号を返す.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt ISGC(CH)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CH} & {\tt (C*1)} & 与えるの文字(文字長は1). \\
      {\tt ISGC} & {\tt (I)} & 文字に対応するDCL文字番号.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item ASCIIコード系において{\tt ISGC}は{\tt ICHAR}と同値である.
  \end{enumerate}
\end{enumerate}
