summaryrefslogtreecommitdiff
path: root/doc/user/user.skb
blob: 07a6e031260e80a551e3f519f75e6c1bc3b1be79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
;*=====================================================================*/
;*    serrano/prgm/project/skribe/doc/user/user.skb                    */
;*    -------------------------------------------------------------    */
;*    Author      :  Manuel Serrano                                    */
;*    Creation    :  Wed Nov 28 10:37:39 2001                          */
;*    Last change :  Thu Feb 26 21:02:00 2004 (eg)                     */
;*    Copyright   :  2001-04 Manuel Serrano                            */
;*    -------------------------------------------------------------    */
;*    The Skribe user manual                                           */
;*=====================================================================*/
 
;*---------------------------------------------------------------------*/
;*    The Skribe documentation style                                   */
;*---------------------------------------------------------------------*/
(skribe-load "web-book.skr")
(skribe-load "skr/env.skr")
(skribe-load "skr/manual.skr")
(skribe-load "skr/api.skr")

;*---------------------------------------------------------------------*/
;*    HTML custom                                                      */
;*---------------------------------------------------------------------*/
;; since we load slides (for documenting it), we have to use a
;; correct title width
(let ((he (find-engine 'html)))
   (engine-custom-set! he 'body-width 100.))

;*---------------------------------------------------------------------*/
;*    The various indexes                                              */
;*---------------------------------------------------------------------*/
(define *markup-index* (make-index "markup"))
(define *custom-index* (make-index "custom"))
(define *function-index* (make-index "function"))
(define *package-index* (make-index "package"))

;*---------------------------------------------------------------------*/
;*    The document                                                     */
;*---------------------------------------------------------------------*/
(document :title "Skribe User Manual"
   :env '((example-counter 0) (example-env ()))
   :author (list (author :name "Erick Gallesio"
		    :affiliation "Universit� de Nice - Sophia Antipolis"
		    :address '("930 route des Colles, BP 145"
			       "F-06903 Sophia Antipolis, Cedex"
			       "France")
		    :email (mailto "eg@essi.fr"))
		 (author :name "Manuel Serrano"
		    :affiliation "Inria Sophia-Antipolis"
		    :address `("2004 route des Lucioles - BP 93"
			       "F-06902 Sophia Antipolis, Cedex"
			       "France")
		    :url (ref :url *serrano-url*)
		    :email (mailto *serrano-mail*)))
   
   (linebreak 1)
   (center (frame (bold (font :size 1. [
This is the documentation for Skribe version
,(color :fg "red" (skribe-release)).]))))
   (linebreak 1)

;;; Introduction
(section :title "Introduction" :number #f :toc #f [
Skribe is a programming language designed for implementing electronic
documents. It is mainly designed for the writing of technical documents
such as the documentation of computer programs. With Skribe these
documents can be rendered using various tools and technologies. For
instance, a Skribe document can be ,(emph "compiled") to an HTML file
that suits Web browser, it can be compiled to a TeX file in order to
produce a high-quality printed document, and so on.]
   
   (subsection :title "Who may use Skribe?" :number #f [
Everyone needing to design web pages, info documents, man pages or
Postscript files can use Skribe. In particular, there is ,(bold "no need")
for programming skills in order to use Skribe. Skribe can be used as
any text description languages such as TeX, LaTeX or HTML.])
   
   (subsection :title "Why using Skribe?" :number #f [
There are three main reasons for using Skribe:]
      
      (itemize
	 (item [
It is easier to type in Skribe texts than other text description formats.
The need for ,(emph "meta keyword"), that is, words used to describe
the structure of the text and not the text itself, is very limited.])
	 (item [
Skribe is highly skilled for computing texts. It is very common that
one needs to automatically produce parts of the text. This can
be very simple such as, for instance, the need to include inside a text,
the date of the last update or the number of the last revision.
Sometimes it may be more complex. For instance, one may be willing to
embed inside a text the result of a complex arithmetic computation. Or
even, you may want to include some statistics about that
text, such as, the number of words, paragraphs, sections, and so on.
Skribe makes these sort of text manipulation easy whereas other
systems rely on the use of text preprocessors.])
	 (item [
The same source file can be compiled to various output formats such
as HTML, Info pages, man pages, Postscript, etc.]))))

;;; toc
(if (engine-format? "latex")
    (toc :chapter #t :section #t :subsection #t))
   
;;; Getting started
(include "start.skb")
   
;;; Syntax
(include "syntax.skb")

;;; Skribe Markup Library
(include "markup.skb")

;;; Hyperlinks and references
(include "links.skb")

;;; Indexes
(include "index.skb")

;;; Bibliography
(include "bib.skb")

;;; Computer programs
(include "prgm.skb")

;;; Standard Library
(include "lib.skb")

;;; Engines
(include "engine.skb")

;;; Emacs
(include "emacs.skb")

;;; Skribe
(include "skribec.skb")

;;; Slides
(include "slide.skb")

;;; Packages
(include "package.skb")

;;; skribe-config
(include "skribe-config.skb")

;;; List of examples
(include "examples.skb")

;;; table of contents
(if (not (engine-format? "latex"))
    (begin
       (chapter :title "Table of contents"
	  (toc :chapter #t :section #t :subsection #t))
       (section :title "Index" :number #f
	  (mark "global index")
	  (the-index :column (if (engine-format? "latex") 2 3)
	     *markup-index* *custom-index* *function-index* *package-index*
	     (default-index))))
    (chapter :title "Index"
       (mark "global index")
       (the-index :column (if (engine-format? "latex") 2 3)
	  *markup-index* *custom-index* *function-index* *package-index*
	  (default-index)))))