;;; user.skb -- The Skribilo user manual. ;;; ;;; Copyright 2001, 2002, 2003, 2004 Manuel Serrano ;;; Copyright 2005, 2006 Ludovic Courtès ;;; ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 2 of the License, or ;;; (at your option) any later version. ;;; ;;; This program is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with this program; if not, write to the Free Software ;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, ;;; USA. ;*---------------------------------------------------------------------*/ ;* The Skribe documentation style */ ;*---------------------------------------------------------------------*/ (use-modules (skribilo package web-book) (skribilo documentation env) (skribilo documentation manual) (skribilo documentation api)) ;*---------------------------------------------------------------------*/ ;* Packages */ ;*---------------------------------------------------------------------*/ (use-modules (skribilo package eq) (skribilo package pie)) ;; Load the compile-time configuration file. (load "doc-config.scm") (if %have-ploticus? (set! %ploticus-program %ploticus-path)) ;*---------------------------------------------------------------------*/ ;* 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.)) ;*---------------------------------------------------------------------*/ ;* Lout custom */ ;*---------------------------------------------------------------------*/ (let ((le (find-engine 'lout))) (engine-custom-set! le 'document-type 'doc)) ;*---------------------------------------------------------------------*/ ;* The document */ ;*---------------------------------------------------------------------*/ (document :title "Skribilo User Manual" :keywords '("Skribilo" "Skribe" "User Manual" "text processing" "HTML" "LaTeX" "Lout" "PostScript" "PDF") :env '((example-counter 0) (example-env ())) :author (list (author :name "Erick Gallesio" :affiliation "Université de Nice - Sophia Antipolis" :email (mailto "eg@essi.fr")) (author :name "Manuel Serrano" :affiliation "Inria Sophia-Antipolis" :email (mailto *serrano-mail*)) (author :name "Ludovic Courtès" :email (mailto *courtes-mail*))) (p :class "welcome" [Welcome to the User Manual for Skribilo version ,(skribe-release). If you are new to Skribilo, please read the ,(ref :ident "intro" :text [introduction]) first.]) ;;; Introduction (chapter :title "Introduction" :ident "intro" :number #f :toc #t :file #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.] (section :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 ,(ref :text [LaTeX] :url "http://latex-project.org/"), ,(ref :text [Lout] :url "http://lout.sf.net/") or HTML.]) (section :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") ;;; Equations (include "eq.skb") ;;; Pie charts (if %have-ploticus? (include "pie.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)) (chapter :title "Index" :number #f :ident "Index" (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" :ident "Index" (mark "global index") (the-index :column (if (engine-format? "latex") 2 3) *markup-index* *custom-index* *function-index* *package-index* (default-index)))))