Skip to content

Commit

Permalink
Adapt longdescription to make-help
Browse files Browse the repository at this point in the history
  • Loading branch information
Affonso-Gui committed Apr 22, 2019
1 parent dd7e4bd commit b6a25e9
Show file tree
Hide file tree
Showing 25 changed files with 853 additions and 879 deletions.
27 changes: 22 additions & 5 deletions doc/help.eus/makehelp.l
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,30 @@
(setq type *type-VAR* args 2))
((string= buf "\\constdesc" :end1 10)
(setq type *type-CONST* args 2))
((string= buf "\\longdescription" :end1 16)
(if (eq (elt buf (1+ (position #\{ buf))) #\:)
(setq type *type-METHOD*)
(setq type *type-FUNC*))
(setq args 3))
((string= buf "\\classdesc" :end1 10)
(setq type *type-CLASS* args 4))
((string= buf "\\longdescription" :end1 16)
(let* ((pos (position #\} buf))
(tp (subseq buf (1+ (position #\{ buf)) pos)))
(cond
((string= tp "class")
(setq type *type-CLASS*))
((string= tp "method")
(setq type *type-METHOD*))
((string= tp "function")
(setq type *type-FUNC*))
((string= tp "macro")
(setq type *type-MACRO*))
((string= tp "constant")
(setq type *type-CONST*))
((string= tp "variable")
(setq type *type-VAR*))
((string= tp "special")
(setq type *type-SPEC*))
(t (error "Unknown type: ~a" tp)))
(setq args 3)
(setq buf (subseq buf (1+ pos)))
(incf seek pos)))
)
(if (not (eq type -1))
(progn (setf seek (+ seek (position #\} buf) 1))
Expand Down
33 changes: 15 additions & 18 deletions doc/jlatex/jevaluation.tex
Original file line number Diff line number Diff line change
Expand Up @@ -407,22 +407,19 @@ \subsection{コンパイル}\label{compiler}
\functiondescription{euscomp}{\&rest filename}{UNIXコマンド}{
Euslispコンパイラを呼びだす。}

\longdescription{compile-file}{srcfile \&key \= (:verbose nil) \hspace{43mm} \=
\` [関数]\\
\> (:optimize 2) (:c-optimize 1) (:safety 1) \> {\rm ;optimization level} \\
\> (:pic t) \> {\rm ;generate position independ-} \\
\>\>{ \rm ent code to build library} \\
\> (:cc t) \> {\rm ; run c compiler} \\
\> (:entry (pathname-name file)) \\}{
\longdescription{関数}{compile-file}{srcfile \&key \= (verbose nil) \hspace{43mm} \= \\
\> (optimize 2) (c-optimize 1) (safety 1) \> {\rm ; optimization level} \\
\> (pic t) \> {\rm ; position independent code} \\
\> (cc t) \> {\rm ; run c compiler} \\
\> (entry (pathname-name file))}{
ファイルをコンパイルする。
".l"が{\em srcfile}の拡張子として仮定される。
もし、{\em :verbose}がTならば、コンパイルされた関数やメソッド名が表示される。
これは、エラーが発生した箇所を簡単に探すのに役立つ。
{\em :optimize, :c-optimize}と{\em :safety}は、最適化のレベルを
指定する。
モジュールが作成中にEuslispのコアにハードリンクされていないかぎり、
{\em :pic}は、Tに設定すべきである。
}
{\em :pic}は、Tに設定すべきである。}

\funcdesc{compile}{funcname}{
関数をコンパイルする。{\bf compile}は、最初に関数定義をテンポラリファイルに
Expand Down Expand Up @@ -452,12 +449,13 @@ \subsection{コンパイル}\label{compiler}
\subsection{プログラムロード}
\begin{refdesc}

\longdescription{load}{fname \&key \= :verbose \hspace{20mm} \= *load-verbose* \` [関数]\\
\> :package \> *package* \\
\> :entry \> (pathname-name fname) \\
\> :symbol-input \> "/usr/local/bin/eus" \\
\> :symbol-output \> "a.out" \\
\> :ld-option \> ""}{
\longdescription{関数}{load}{fname \&key \= (verbose *load-verbose*) \\
\> (package *package*) \\
\> (entry (pathname-name fname)) \\
\> (symbol-input nil) \\
\> (symbol-output "") \\
\> (print nil) \\
\> (ld-option "")}{
{\bf load}はソースファイルあるいはコンパイルされたオブジェクトファイル
をEuslispに読み込むための関数である。
もし、{\em fname}で指定されたファイルが存在するとき、
Expand Down Expand Up @@ -545,11 +543,10 @@ \subsection{プログラムロード}
その後、もし"C"がロードされるなら、"A"モジュールはロードされず、"C"が
{\tt *modules*}に追加されるのみである。}

\longdescription{system:binload}{opath qpath \&optional \=
(entry (pathname-name opath)) \` [関数]\\
\longdescription{関数}{system:binload}{opath qpath \&optional \= (entry (pathname-name opath)) \\
\> (symfile "/usr/local/bin/eus") \\
\> (symout "a.out") \\
\> (ldopt "")\\}{
\> (ldopt "")}{
バイナリファイルをロードしリンクする。}

\fundesc{system::txtload}{fname}
Expand Down
50 changes: 22 additions & 28 deletions doc/jlatex/jgraphics.tex
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,11 @@ \subsection{視界(viewing)}
見ているとしてviewing座標系を設定する。}

% \metdesc{:makeviewcoords}{ ax ay az vpoint}
\longdescription{:init}{
%\&key \= :target \hspace{12mm} \= \#f(0 0 0) \hspace{85mm} [メソッド]\\
\&key \= :target \hspace{12mm} \= \#f(0 0 0) \` [メソッド]\\
\> :view-direction \> nil \\
\> :view-up \> \#f(0.0 0.0 1.0)) \\
\> :view-right \> nil \\
\> \&allow-other-keys}{
\longdescription{メソッド}{:init}{\&key \= (target \#f(0 0 0)) \\
\> (view-direction nil) \\
\> (view-up \#f(0.0 0.0 1.0)) \\
\> (view-right nil) \\
\> \&allow-other-keys}{
{\bf viewing}は、{\bf cascaded-coords}を継承するので、{\em :pos}や{\em :rot}や{\em :euler}
や{\em :rpy}などの{\em :init}のパラメータはすべてviewing座標系の位置や姿勢を
指定することに使用できる。
Expand Down Expand Up @@ -143,15 +141,13 @@ \subsection{投影}
もし、{\em ratio}が与えられたならば、
アスペクト比は変えられ、screen-yはscreen-x * {\em ratio}に設定される。
{\bf :aspect}は、現在のアスペクト比を返す。}
\longdescription{:init}{
%\&key \= :hither \hspace{5mm} \= 100.0 \hspace{100mm}[メソッド]\\
\&key \= :hither \hspace{5mm} \= 100.0 \` [メソッド]\\
\> :yon \> 1000.0 \\
\> :aspect \> 1.0 \\
\> :screen \> 100.0 \\
\> :screen-x \> screen \\
\> :screen-y \> (* screen-x aspect) \\
\> \&allow-other-keys}{
\longdescription{メソッド}{:init}{\&key \= (hither 100.0) \\
\> (yon 1000.0) \\
\> (aspect 1.0) \\
\> (screen 100.0) \\
\> (screen-x screen) \\
\> (screen-y (* screen-x aspect)) \\
\> \&allow-other-keys}{
{\bf viewing}と{\bf projection}を初期化する。}

\vspace{5mm}
Expand Down Expand Up @@ -392,18 +388,16 @@ \subsection{Viewer}
{\em viewing, viewport}および{\em viewsurface}をこの{\bf viewer}のスロット
{\tt eye, port}と{\tt surface}に設定する。}

\longdescription{view}{\&key \= (size 500) (width size) (height size)
\` [関数] \\
%\hspace{74mm} [関数] \\
\> (:x 100) (:y 100) \\
\> (:title "eusx") \\
\> (:border-width 3) \\
\> (:background 0) \\
\> (:viewpoint \#f(300 200 100)) (:target \#f(0 0 0)) \\
\> (:viewdistance 5.0) (:hither 100.0) (:yon 10000.0) \\
\> (:screen 1.0) (:screen-x screen) (:screen-y screen) \\
\> (:xcenter 500) (:ycenter 400) \\}
{新しい{\bf viewer}を作り、{\bf *viewer*}リストに置く。}
\longdescription{関数}{view}{\&key \= (size 500) (width size) (height size) \\
\> (x 100) (y 100) \\
\> (title "eusx") \\
\> (border-width 3) \\
\> (background 0) \\
\> (viewpoint \#f(300 200 100)) (target \#f(0 0 0)) \\
\> (viewdistance 5.0) (hither 100.0) (yon 10000.0) \\
\> (screen 1.0) (screen-x screen) (screen-y screen) \\
\> (xcenter 500) (ycenter 400)}{
新しい{\bf viewer}を作り、{\bf *viewer*}リストに置く。}

\end{refdesc}

Expand Down
28 changes: 14 additions & 14 deletions doc/jlatex/jimage.tex
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ \subsection{ピクセル画像}
{\em min}と{\em max}の間の値を持つピクセルをすべて{\em color}(gc)
で{\em viewsurface}にプロットする。}

\longdescription{:edge1}{\&optional \= (method 1) \`[メソッド]\\
\longdescription{メソッド}{:edge1}{\&optional \= (method 1) \\
\> (th1 *edge-intensity-threshold*) (th2 *weak-edge-threshold*)\\
\> (run *edge-length-threshold*)\\
\> (win geometry:*viewsurface*) (edgeimg1)}{
Expand Down Expand Up @@ -302,7 +302,7 @@ \subsection{カラーピクセル画像}
{\tt display-lut}にそれぞれ設定する。それから、このルックアップテーブルを
使ってこの画像を変換し、{\tt xpicture}に設定する。}

\longdescription{:edge1}{\&optional \= (method 1) \`[メソッド]\\
\longdescription{メソッド}{:edge1}{\&optional \= (method 1) \\
\>(th1 *edge-intensity-threshold*) (th2 *weak-edge-threshold*)\\
\>(run *edge-length-threshold*) (win *color-viewer*)}{
この画像のエッジを抽出する。Xwindow上にこのエッジ画像を表示する。}
Expand Down Expand Up @@ -337,7 +337,7 @@ \subsection{エッジ抽出}

\begin{refdesc}

\longdescription{edge1}{img \= \&optional \= (method 1) \`[関数]\\
\longdescription{関数}{edge1}{img \= \&optional \= (method 1) \\
\> \> (th1 *edge-intensity-threshold*)\\
\> \> (th2 *weak-edge-threshold*) \\
\> \> (run *edge-length-threshold*)\\
Expand Down Expand Up @@ -369,11 +369,11 @@ \subsection{エッジ抽出}
強いエッジピクセルは赤、弱いエッジピクセルは緑、孤立したピクセルを青
で表現される。}

\longdescription{edge2}{img1 edge1result \&key \= (:kvalue 8.0) \`[関数]\\
\> (:curve-threshold 0.8)\\
\> (:line-error 2.8)\\
\> (:curve-error 2.8)\\
\> (:plane-limit 0.3)}{
\longdescription{関数}{edge2}{img1 edge1result \&key \= (kvalue 8.0) \\
\> (curve-threshold 0.8)\\
\> (line-error 2.8)\\
\> (curve-error 2.8)\\
\> (plane-limit 0.3)}{
{\em edge1}の結果から一致する直線あるいは楕円曲線を捜す。
領域(region)、境界(boundary)、線分(line segment)の3つの要素の
リストが返される。}
Expand Down Expand Up @@ -419,12 +419,12 @@ \subsection{エッジ抽出}
{\em vs}で指定されるXwindowに{\bf line-edge-segment}オブジェクトである
{\em s}を描く。}

\longdescription{draw-segments}{segs \&key \= (:line-gc image::*red-gc*) \`[関数]\\
\> (:ellipse-gc line-gc)\\
\> (:vs geometry:*viewsurface*)\\
\> (:height (send vs :height))\\
\> (:step nil)\\
\> (:x 0) (:y 0)}{
\longdescription{関数}{draw-segments}{segs \&key \= (line-gc image::*red-gc*) \\
\> (ellipse-gc line-gc)\\
\> (vs geometry:*viewsurface*)\\
\> (height (send vs :height))\\
\> (step nil)\\
\> (x 0) (y 0)}{
{\em vs}で指定されるXwindowに{\bf edge-segment}のリスト表現である
{\em segs}を描く。}

Expand Down
12 changes: 5 additions & 7 deletions doc/jlatex/jio.tex
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,11 @@ \subsection{ストリーム}
\funcdesc{io-stream-p}{object}{
{\em object}が読み書き可能なストリームであれば、Tを返す。}

\longdescription{open}
{path \&key \= :direction :input \` [関数]\\
%{path \&key \= :direction :input \hspace{98mm} [関数]\\
\> :if-exists :new-version \\
\> :if-does-not-exist \\
\> :permission \#o644 \\
\> :buffer-size 512\\}{
\longdescription{関数}{open}{path \&key \= (direction :input) \\
\> (if-exists :new-version) \\
\> (if-does-not-exist 'default) \\
\> (permission \#o644) \\
\> (buffer-size 512)}{
{\bf open}は、{\em path}で指定されたファイルと結合されるストリームを作る。
{\em path}は、文字列かパス名でよい。
{\em :direction}は、{\tt :input, :output}または{\tt :io}のどれか
Expand Down
25 changes: 12 additions & 13 deletions doc/jlatex/jmanipulator.tex
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ \subsection{
ベースと指には可動軸を指定する必要はない。

\begin{refdesc}
\longdescription{defjoint}{joint-name \&key \= :shape \hspace{10mm}\= {\it body-object} \`[マクロ]\\
% \hspace{70mm} [マクロ]\\
\longdescription{マクロ}{defjoint}{joint-name \&key \= :shape \hspace{10mm}\= {\it body-object} \\
\> :color \> {\it color-id} \hspace{2cm} \= ;0-15 for MMD \\
\> :parent \> {\it parent-joint} \\
\> :axis \> {\it rotational-axis} \> ; :x, :y or :z \\
Expand All @@ -45,8 +44,8 @@ \subsection{
次の{\bf defmanipulator}マクロを用いる。

\begin{refdesc}
\longdescription{defmanipulator}{manipulator-name \&key \= :class \hspace{2cm} \= {\it manipulator-class} \`[マクロ]\\
%manipulator-class} \hspace{25mm} [マクロ]\\
\longdescription{マクロ}{defmanipulator}{manipulator-name \&key \= \\
\> :class \hspace{2cm} \= {\it manipulator-class} \\
\> :base \> {\it base-joint} \\
\> :joints \> {\it list-of-all-joints} \\
\> :hand \> {\it handjoint} \\
Expand Down Expand Up @@ -152,16 +151,16 @@ \subsection{
% 把握物体を解放したことを指示する
}

\longdescription{:create}{\= \&rest args \`[メソッド]\\
\> \&key \= (:name nm) (:hand h) (:joints j)\\
\> \> (:left-finger lf) (:right-finger rf)\\
\> \> ((:toolcoords tc) (make-coords))\\
\> \> ((:handcoords hc) (make-coords))\\
\> \> ((:base bs) (make-cascoords))\\
\longdescription{メソッド}{:create}{\= \&rest args \\
\> \&key \= (name nm) (hand h) (joints j)\\
\> \> (left-finger lf) (right-finger rf)\\
\> \> ((toolcoords tc) (make-coords))\\
\> \> ((handcoords hc) (make-coords))\\
\> \> ((base bs) (make-cascoords))\\
\> \> (open-direction (floatvector 0 1 0))\\
\> \> ((:max-span mspan) 100.0)\\
\> \> ((:lefty lft) t)\\
\> \> ((:act a) nil)\\
\> \> ((max-span mspan) 100.0)\\
\> \> ((lefty lft) t)\\
\> \> ((act a) nil)\\
\> \&allow-other-keys}{
新しいマニピュレータオブジェクトを作成、初期化する。}

Expand Down
12 changes: 6 additions & 6 deletions doc/jlatex/jmanual.tex
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,14 @@
\newcommand{\bfx}[1]{\index{#1}{\bf #1}}
\newcommand{\emx}[1]{\index{#1}{\em #1}}

\newcommand{\longdescription}[3]{
\index{#1}
\newcommand{\longdescription}[4]{
\index{#2}
\begin{tabbing}
{\bf #1}
\it #2
\rm
{\bf #2} \rm \hspace{3mm} \= \`[#1] \\
\> \it #3
\end{tabbing}
\desclist{#3}
\rm
\desclist{#4}
}

\newcommand{\funcdesc}[3]{\functiondescription{#1}{#2}{関数}{#3}}
Expand Down
24 changes: 11 additions & 13 deletions doc/jlatex/jmatrix.tex
Original file line number Diff line number Diff line change
Expand Up @@ -420,25 +420,23 @@ \subsection{\label{Coordinates}座標系}
もし、{\em mat44}が与えられないとき、この座標系の表現を
4x4の同次行列表現に変換して返す。}

\longdescription{:init}{\&key \= :pos \hspace{8mm} \= \#f(0 0 0)
\` [メソッド] \\
% \hspace{95mm} [メソッド] \\
\> :rot \> \#2f((1 0 0) (0 1 0) (0 0 1)) \\
\> :rpy \> roll pitch yaw \\
\> :Euler \> az ay az2 \\
\> :axis \> rotation-axis \\
\> :angle \> rotation-angle \\
\> :4X4 \> 4x4 matrix \\
\> :coords \> another coordinates \\
\> :properties \> a list of (ind . value) pair \\
\> :name \> name property \\}{
\longdescription{メソッド}{:init}{\&key \= (pos \#f(0 0 0)) \hspace{8mm} \= \\
\> (rot \#2f((1 0 0) (0 1 0) (0 0 1))) \\
\> rpy \>\> {\rm ; roll pitch yaw} \\
\> euler \>\> {\rm ; az ay az2} \\
\> axis \>\> {\rm ; rotation-axis} \\
\> angle \>\> {\rm ; rotation-angle} \\
\> 4X4 \>\> {\rm ; 4x4 matrix} \\
\> coords \>\> {\rm ; another coordinates} \\
\> properties \>\> {\rm ; list of (ind . value) pair} \\
\> name \>\> {\rm ; name property}}{
この{\bf coordinates}オブジェクトを初期化し、{\tt rot}と{\tt pos}を設定する。
それぞれのキーワードの意味は、以下に示す通りである。
\begin{description}
\item[:dimension] 2あるいは3 (デフォルトは 3)
\item[:pos] 位置ベクトルを指定する (デフォルトは \#f(0 0 0))
\item[:rot] 回転行列を指定する (デフォルトは単位行列)
\item[:Euler] オイラー角として3つの要素の列を与える
\item[:euler] オイラー角として3つの要素の列を与える
\item[:rpy] ロール・ピッチ・ヨー角として3つの要素の列を与える
\item[:axis] 回転軸 ({\tt :x,:y,:z} あるいは任意の{\tt float-vector})
\item[:angle] 回転角 ({\em :axis}と一緒に使用)
Expand Down
14 changes: 6 additions & 8 deletions doc/jlatex/jobjects.tex
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,12 @@ \subsection{クラスとメソッド}

\begin{refdesc}

\longdescription{defclass}
%{classname \&key \= :super object \hspace{85mm} [マクロ] \\
{classname \&key \= :super object \` [マクロ] \\
\> :slots (\{var $|$ (var [:type type] [:forward selectors])\}*) \\
\> :metaclass metaclass \\
\> :element-type t \\
\> :size -1\\}
{クラスを生成または再定義する。
\longdescription{マクロ}{defclass}{classname \&key \= (super object) \\
\> slots \hspace{40mm} {\rm ; (var \&optional type \&rest forward selectors)*} \\
\> (metaclass metaclass) \\
\> (element-type t) \\
\> (size -1)}{
クラスを生成または再定義する。
異なったスーパークラスやスロットを持つクラスに再定義したとき、
メソッドが新しいスロット配置を仮定するため、
以前のクラスを継承する古いオブジェクトは予想できない振舞いをする。}
Expand Down
Loading

0 comments on commit b6a25e9

Please sign in to comment.