Merged from hodique@lifl.fr--2005 (patch 2-6), without the WikiWord change.
[muse-el.git] / muse.texi
blobe537de5251d070702cfedbdbdc4faa186026935a
1 \input texinfo @c -*-texinfo-*-
2 @include{http://www.mwolson.org/default.css}
3 @c %**start of header
4 @setfilename muse.info
5 @settitle Muse
6 @c %**end of header
8 @dircategory Emacs
9 @direntry
10 * Muse: (muse). Authoring and publishing environment for Emacs.
11 @end direntry
13 @syncodeindex fn cp
15 @copying
16 This manual is for the Emacs Muse version 3.00.90 (RC1).
18 Copyright (C) 2004, 2005 Free Software Foundation, Inc.
20 @quotation
21 Permission is granted to copy, distribute and/or modify this document
22 under the terms of the GNU General Public License.
23 @end quotation
24 @end copying
26 @titlepage
27 @title Muse manual
28 @subtitle an authoring and publishing environment
29 @subtitle for GNU Emacs and XEmacs
31 @c The following two commands
32 @c start the copyright page.
33 @page
34 @vskip 0pt plus 1filll
35 @insertcopying
36 @end titlepage
38 @c So the toc is printed at the start
39 @contents
41 @ifnottex
42 @node Top, Preface, (dir), (dir)
43 @comment  node-name,  next,  previous,  up
44 @top Muse
46 @insertcopying
47 @end ifnottex
49 @menu
50 * Preface::                     About the documentation.
51 * Introduction::                What is Muse?
52 * Installation::                How to get the stable and development
53                                   versions.
54 * Getting Started::             Settings for Muse.
55 * Projects::                    Creating a Muse project.
56 * Keystroke Summary::           Keys used in Muse mode.
57 * Markup Rules::                Rules for creating special markup.
58 * Publishing Styles::           Generating different kinds of documents.
59 * Getting Help and Reporting Bugs::  Further ways of getting help.
60 * History::                     History of this document.
61 * Contributors::                Contributors to this documentation.
62 * GNU General Public License::  The license for this manual and Muse.
63 * Concept Index::               Search for terms.
65 @detailmenu
66  --- The Detailed Node Listing ---
68 Installation
70 * Releases::                    Released versions of Muse.
71 * Development::                 Latest unreleased changes.
73 Markup Rules
75 * Paragraphs::                  Paragraphs: centering and quoting.
76 * Headings::                    Levels of headings.
77 * Emphasizing Text::            Bold, italicized, and underlined text.
78 * Footnotes::                   Making notes to be shown at the end.
79 * Verse::                       Indicating poetic stanzas.
80 * Lists::                       Lists of items.
81 * Tables::                      Generation of data tables.
82 * Links::                       Hyperlinks and email addresses.
83 * Horizontal Rules and Anchors::  Inserting a horizontal line or anchor.
84 * Embedded Lisp::               Evaluating Emacs Lisp code in documents
85                                   for extensibility.
87 Publishing Styles
89 * Blosxom::                     Integrating Muse and pyblosxom.
90 * Blosxom Requirements::        
91 * Blosxom Entries::             
92 * Book::                        Publish entries into a compilation.
93 * DocBook::                     Publish in DocBook XML form.
94 * HTML::                        Publish in HTML or XHTML form.
95 * Deriving Styles::             Deriving a style from an existing one.
97 Blosxom
99 * Blosxom Requirements::        Necessary publishing-related tools.
100 * Blosxom Entries::             Format of an entry and automation.
102 @end detailmenu
103 @end menu
105 @node Preface, Introduction, Top, Top
106 @comment  node-name,  next,  previous,  up
107 @chapter Preface
109 This document describes Muse, which was written by John Wiegley
110 and is now maintained by Michael Olson.
112 This document is a work in progress, and your contribution will be
113 greatly appreciated.
115 @node Introduction, Installation, Preface, Top
116 @comment  node-name,  next,  previous,  up
117 @chapter Introduction
119 Emacs Muse is an authoring and publishing environment for Emacs.  It
120 simplifies the process of writings documents and publishing them to
121 various output formats.
123 Muse consists of two main parts: an enhanced text-mode for authoring
124 documents and navigating within Muse projects, and a set of publishing
125 styles for generating different kinds of output.
127 This idea is not in any way new. Numerous systems exist -- even one
128 other for Emacs itself (Bhl Mode). What Muse adds to the picture is a
129 more modular environment, with a rather simple core, in which "styles"
130 are derived from to create new styles. Much of Muse's overall
131 functionality is optional. For example, you can use the publisher
132 without the major-mode, or the mode without doing any publishing; or if
133 you don't load the Texinfo or LaTeX modules, those styles won't be
134 available.
136 The Muse codebase is a departure from emacs-wiki.el version 2.44. The
137 code has been restructured and rewritten, especially its publishing
138 functions. The focus in this revision is on the authoring and publishing
139 aspects, and the "wikiness" has been removed as a default behavior (to
140 be offered again as an optional module). CamelCase words are no longer
141 special by default.
143 @node Installation, Getting Started, Introduction, Top
144 @comment  node-name,  next,  previous,  up
145 @chapter Installation
147 @menu
148 * Releases::                    Released versions of Muse.
149 * Development::                 Latest unreleased changes.
150 @end menu
152 @node Releases, Development, Installation, Installation
153 @comment  node-name,  next,  previous,  up
154 @section Installing a release
156 Choose to install a release if you want to minimize risk.  Currently
157 Muse is in a pre-release stage, so no official releases have been made
158 yet.
160 Errors are corrected in development first.  Once fixes are confirmed, a
161 new release will be made.  User-visible changes will be announced on the
162 @email{emacs-wiki-discuss@@nongnu.org} mailing list.  @pxref{Getting
163 Help and Reporting Bugs}.
165 @cindex Debian package for Muse
167 Debian users can get Muse via apt-get.  @file{Muse} is available only at
168 Michael Olson's Debian repository.
170 @cindex releases, from source
172 You can also install the source distribution.
174 @enumerate
175 @item Download and unpack the latest version from @uref{http://www.mwolson.org/static/dist/muse/} .
176 @item Edit your @file{~/.emacs}.
178 @example
179 ;; Add the directories to your load path
180 (add-to-list 'load-path "/path/to/muse")
181 ;; Load Muse
182 (require 'muse)
183 @end example
185 @end enumerate
187 You can download the archive at the following locations:
189 @itemize
190 @item Current and past releases: @uref{http://www.mwolson.org/static/dist/muse/}
191 @end itemize
193 @node Development,  , Releases, Installation
194 @comment  node-name,  next,  previous,  up
195 @section Installing the development version
196 @cindex development
198 Choose the development version if you want to live on the bleeding
199 edge of Muse development or try out new features before release.
201 @cindex arch revision control system, downloading
202 The Arch revision control system allows you to retrieve previous
203 versions and select specific features and bug fixes.
205 Downloading the modules for the first time:
207 @enumerate
208 @item Install arch. Debian: @kbd{apt-get install tla} .  Other distros: see @uref{http://regexps.srparish.net/www/} .
209 @item Register the archive and download the modules.
211 @example
212 # Register the archive
213 tla register-archive http://www.mwolson.org/archives/2005
215 # Download Muse into the @file{muse/} subdirectory
216 tla get mwolson@@gnu.org--2005/muse--main--1.0 muse
217 @end example
219 @item Open your @file{~/.emacs} and add the @file{Muse/} directory to your load path.
221 @example
222 (add-to-list 'load-path "/path/to/muse")
223 @end example
225 @end enumerate
227 To list upstream changes not in local copy:
229 @example
230 # Change to the source directory you are interested in. Example:
231 cd muse/
233 # Display the summary of changes
234 tla missing --summary
235 @end example
237 @cindex updating Muse with Arch
239 To update to the latest version:
241 @example
242 cd muse
243 tla replay
244 @end example
246 You can also obtain the archive at the following locations on the web:
248 @itemize
249 @item Browse arch repository: @uref{http://www.mwolson.org/archives/}
250 @item Latest development snapshot: @uref{http://www.mwolson.org/static/dist/muse-latest.tar.gz}
251 @end itemize
253 The latest development snapshot will be kept up to date since it is
254 updated at the same time as the Arch repository.
257 @node Getting Started, Projects, Installation, Top
258 @comment  node-name,  next,  previous,  up
259 @chapter Getting Started
260 @cindex settings
262 To use Muse, add the directory containing its files to your
263 @code{load-path} variable, in your @file{.emacs} file.  Then, load in
264 the authoring mode, and the styles you wish to publish to.  For
265 example:
267 @lisp
268 (add-to-list 'load-path "<path to Muse>")
270 (require 'muse-mode)     ; load authoring mode
272 (require 'muse-html)     ; load publishing styles I use
273 (require 'muse-latex)
274 (require 'muse-texinfo)
275 (require 'muse-docbook)
276 @end lisp
278 Once loaded, the command @kbd{M-x muse-publish-this-file} will publish
279 an input document to any available style.  If you enable
280 @file{muse-mode} within a buffer, by typing @kbd{M-x muse-mode}, this
281 command will be bound to @kbd{C-c C-t}.
283 You should also type @kbd{M-x customize-group}, and give the name
284 @samp{muse}.  Change it to suit your preferences.  Each of the
285 options has its own documentation.
288 @node Projects, Keystroke Summary, Getting Started, Top
289 @comment  node-name,  next,  previous,  up
290 @chapter Projects
291 @cindex projects
293 Often you will want to publish all the files within a directory to a
294 particular set of output styles automatically.  To support, Muse
295 allows for the creations of "projects".  Here is a sample project, to
296 be defined in your @file{.emacs} file:
298 @lisp
299 (require 'muse-project)
301 (setq muse-project-alist
302       '(("website"                      ; my various writings
303          ("~/Pages" :default "index")
304          (:base "html" :path "~/public_html")
305          (:base "pdf" :path "~/public_html/pdf"))))
306 @end lisp
308 The above defines a project named "website", whose files are located
309 in the directory @file{~/Pages}.  The default page to visit is
310 @file{index}.  When this project is published, each page will be
311 output as HTML to the directory @file{~/public_html}, and as PDF to
312 the directory @file{~/public_html/pdf}.  Within any project page, you
313 may create a link to other pages using the syntax @samp{[[pagename]]}.
316 @node Keystroke Summary, Markup Rules, Projects, Top
317 @comment  node-name,  next,  previous,  up
318 @chapter Keystroke Summary
319 @cindex keystrokes
321 Here is a summary of keystrokes available in every Muse buffer:
323 @table @kbd
325 @item C-c C-a (`muse-index')
326 Display an index of all known Muse pages.
328 @item C-c C-b (`muse-browse-result')
329 Show the published result of this page.
331 @item C-c C-e (`muse-edit-link-at-point')
332 Edit link at point.
334 @item C-c C-f (`muse-project-find-file'), also C-c C-v
335 Open another Muse page.  Prompt for the name.
337 @item C-c C-l (`font-lock-mode')
338 Highlight/refresh the current buffer.
340 @item C-c C-p (`muse-project-publish')
341 Publish any Muse pages that have changed.
343 @item C-c C-v (`muse-project-find-file'), also C-c C-f
344 Open another Muse page.  Prompt for the name.
346 @item C-c = (`muse-what-changed')
347 Diff this page against the last backup version.
349 @item C-c TAB (`muse-insert-tag')
350 Insert a tag interactively.
352 @item TAB
353 Move to the next Wiki reference.
355 @item S-TAB
356 Move to the previous Wiki reference.
358 @end table
361 @node Markup Rules, Publishing Styles, Keystroke Summary, Top
362 @comment  node-name,  next,  previous,  up
363 @chapter Markup Rules
364 @cindex markup
366 A Muse document uses special, contextual markup rules to determine how
367 to format the output result.  For example, if a paragraph is indented,
368 Muse assumes it should be quoted.
370 There are not too many markup rules, and all of them strive to be as
371 simple as possible so that you can focus on document creation, rather
372 than formatting.
374 @menu
375 * Paragraphs::                  Paragraphs: centering and quoting.
376 * Headings::                    Levels of headings.
377 * Emphasizing Text::            Bold, italicized, and underlined text.
378 * Footnotes::                   Making notes to be shown at the end.
379 * Verse::                       Indicating poetic stanzas.
380 * Lists::                       Lists of items.
381 * Tables::                      Generation of data tables.
382 * Links::                       Hyperlinks and email addresses.
383 * Horizontal Rules and Anchors::  Inserting a horizontal line or anchor.
384 * Embedded Lisp::               Evaluating Emacs Lisp code in documents
385                                   for extensibility.
386 @end menu
388 @node Paragraphs, Headings, Markup Rules, Markup Rules
389 @comment  node-name,  next,  previous,  up
390 @section Paragraphs
391 @cindex paragraphs
393 Paragraphs in Muse must be separated by a blank line.
395 @cindex paragraphs, centered
396 @strong{Centered paragraphs and quotations}
398 A line that begins with six or more columns of whitespace (either tabs
399 or spaces) indicates a centered paragraph.
401 @cindex paragraphs, quoted
402 @cindex quotations
403 But if a line begins with whitespace, though less than six columns, it
404 indicates a quoted paragraph.
406 @cindex examples
407 @cindex monospace, rendering blocks
408 @cindex HTML, rendering blocks in monospace
409 @strong{Literal paragraphs}
411 The @verb{|<example>|} tag is used for examples, where whitespace should
412 be preserved, the text rendered in monospace, and any characters special
413 to the output style escaped.
415 @cindex literal text
416 @cindex HTML, inserting a raw block
417 There is also the @verb{|<literal>|} tag, which causes a marked block to
418 be entirely left alone.  This can be used for inserting a hand-coded
419 HTML blocks into HTML output, for example.
421 @node Headings, Emphasizing Text, Paragraphs, Markup Rules
422 @comment  node-name,  next,  previous,  up
423 @section Headings
424 @cindex headings
426 A heading becomes a chapter or section in printed output -- depending on
427 the style.  To indicate a heading, start a new paragraph with one to
428 three asterices, followed by a space and the heading title.  Then begin
429 another paragraph to enter the text for that section.
431 Only 3 levels of headings will be published as headings.  A fourth level
432 of headings will be marked up, but displayed as plain text.
434 @example
435 * First level
437 ** Second level
439 *** Third level
440 @end example
442 @node Emphasizing Text, Footnotes, Headings, Markup Rules
443 @comment  node-name,  next,  previous,  up
444 @section Emphasizing Text
445 @cindex emphasizing text
446 @cindex underlining text
447 @cindex italicizing text
448 @cindex verbatim text
449 @cindex monospace, rendering words
451 To emphasize text, surround it with certain specially recognized
452 characters:
454 @example
455 *emphasis*
456 **strong emphasis**
457 ***very strong emphasis***
458 _underlined_
459 =verbatim and monospace=
460 @end example
462 @cindex WYSIWYG
463 While editing a Muse document in Muse mode, these forms of emphasis will
464 be highlighted in a WYSIWYG manner.  Each of these forms may span
465 multiple lines, with the exception of the verbatim and monospace form.
467 @node Footnotes, Verse, Emphasizing Text, Markup Rules
468 @comment  node-name,  next,  previous,  up
469 @section Footnotes
470 @cindex footnotes
472 A footnote reference is simply a number in square brackets.  To define
473 the footnote, place this definition at the bottom of your file.
474 @samp{footnote-mode} can be used to greatly facilitate the creation of
475 these kinds of footnotes.
477 Footnotes are defined by the same number in brackets occurring at the
478 beginning of a line.  Use footnote-mode's @kbd{C-c ! a} command, to very
479 easily insert footnotes while typing.  Use @kbd{C-x C-x} to return to
480 the point of insertion.
482 @node Verse, Lists, Footnotes, Markup Rules
483 @comment  node-name,  next,  previous,  up
484 @section Verse
485 @cindex verses
486 @cindex poetry
488 Poetry requires that whitespace be preserved, but without resorting to
489 monospace.  To indicate this, use the following markup, reminiscent of
490 email quotations:
492 @example
493 > A line of Emacs verse;
494 >   forgive its being so terse.
495 @end example
497 You can also use the @verb{|<verse>|} tag, if you prefer:
499 @example
500 <verse>
501 A line of Emacs verse;
502   forgive its being so terse.
503 </verse>
504 @end example
506 Multiple stanzas may be included in one set of @verb{|<verse>|} tags, as
507 follows.
509 @cindex verses, multiple stanzas
510 @example
511 <verse>
512 A line of Emacs verse;
513   forgive its being so terse.
515 This a second stanza:
516 Something longer should go here,
517 But the author is out of ideas.
518 </verse>
519 @end example
521 @node Lists, Tables, Verse, Markup Rules
522 @comment  node-name,  next,  previous,  up
523 @section Lists
524 @cindex lists
526 Lists are given using special characters at the beginning of a line.
527 Whitespace must occur before bullets or numbered items, to distinguish
528 from the possibility of those characters occurring in a real sentence.
530 @cindex lists, bullets
531 These are rendered as a bullet list:
533 @example
534   - bullet item one
535   - bullet item two
536 @end example
538 @cindex lists, enumerated
539 An enumerated list:
541 @example
542   1. Enum item one
543   2. Enum item two
544 @end example
546 @cindex lists, definitions
547 And a definition list:
549 @example
550 Term1 ::
551   This is a first definition
552   And it has two lines;
553   no, make that three.
555 Term2 ::
556   This is a second definition
557 @end example
559 @node Tables, Links, Lists, Markup Rules
560 @comment  node-name,  next,  previous,  up
561 @section Tables
562 @cindex tables
564 @cindex tables, simple
565 Only very simple tables are supported.  The syntax is:
567 @example
568   Double bars  || Separate header fields
570   Single bars   | Separate body fields
571   Here are more | body fields
573   Triple bars ||| Separate footer fields
574 @end example
576 @node Links, Horizontal Rules and Anchors, Tables, Markup Rules
577 @comment  node-name,  next,  previous,  up
578 @section Links
579 @cindex links
581 @cindex links, explicit
583 A hyperlink can reference a URL, or another page within a Muse
584 project.  In addition, descriptive text can be specified, which should
585 be displayed rather than the link text in output styles that supports
586 link descriptions.  The syntax is:
588 @example
589 [[link target][link description]]
590 [[link target without description]]
591 @end example
593 Thus, the current maintainer's homepage for Muse can be found
594 @samp{[[http://www.mwolson.org/projects/MuseMode.html][here]]},
595 or at @samp{[[http://www.mwolson.org/projects/MuseMode.html]]}.
597 @cindex images
598 @cindex links, with images
599 @strong{Image links}
601 Links to images may be used in either the target or the description, or
602 both.  Thus, the following code will publish as a clickable image that
603 points to @url{http://www.mwolson.org/}.
605 @example
606 [[http://www.mwolson.org/][http://www.mwolson.org/static/logos/site-logo.png]]
607 @end example
609 @cindex images, local
610 @cindex images, displaying
611 If a link to a locally-available image is encountered in the link
612 description, Muse mode will attempt to display it if your version of
613 Emacs permits this.  The following example will display correctly and
614 publish correctly if a @acronym{PNG} file called @file{TestLogo.png}
615 exists in the @file{../pics/} directory.
617 @example
618 [[TestPage][../pics/TestLogo.png]]
619 @end example
621 @cindex images, without a description
622 An image link is not required to have a description.  The link
623 @samp{[[../myimage.png]]} will display and publish as expected.
625 @cindex links, raw
626 @cindex URLs
627 @cindex Email addresses
628 @cindex images, inlined
629 @strong{Bare URLs and Email addresses}
631 A URL or email address encountered in the input text is published as
632 a hyperlink if the output style supports it.  If it is an image URL,
633 it will be inlined if possible.
635 @node Horizontal Rules and Anchors, Embedded Lisp, Links, Markup Rules
636 @comment  node-name,  next,  previous,  up
637 @section Horizontal Rules and Anchors
639 @cindex horizontal rules
640 @cindex dashes
641 @strong{Horizontal Rules}
643 Four or more dashes indicate a horizontal rule.  Be sure to put blank
644 lines around it, or it will be considered part of the proceeding or
645 following paragraph!
647 @cindex anchors
648 @cindex links, with target on same page
649 @strong{Anchors}
651 If you begin a line with "#anchor" -- where "anchor" can be any word
652 that doesn't contain whitespace -- it defines an anchor at that point
653 into the document.  This point can be referenced using "page#anchor" as
654 the target in a Muse link.
656 @node Embedded Lisp, , Horizontal Rules and Anchors, Markup Rules
657 @comment  node-name,  next,  previous,  up
658 @section Embedded Lisp
659 @cindex lisp, embedded
661 Arbitrary kinds of markup can be achieved using the @verb{|<lisp>|} tag,
662 which is the only Muse tag supported in a style's header and footer
663 text.  With the @verb{|<lisp>|} tag, you may generated whatever output
664 text you wish.  The inserted output will get marked up, if the
665 @verb{|<lisp>|} tag appears within the main text of the document.
667 @example
668 <lisp>(concat "This form gets " "inserted")</lisp>
669 @end example
671 @cindex lisp, and insert command
672 Note that you should not use the @code{insert} command within a set of
673 @verb{|<lisp>|} tags, since the return value from the @verb{|<lisp>|}
674 tags will be automatically inserted into the document.
676 @node Publishing Styles, Getting Help and Reporting Bugs, Markup Rules, Top
677 @comment  node-name,  next,  previous,  up
678 @chapter Publishing Styles
679 @cindex publishing styles
681 One of the principle features of Muse is the ability to publish a simple
682 input text to a variety of different output styles.  Muse also makes it
683 easy to create new styles, or derive from an existing style.
685 @menu
686 * Blosxom::                     Integrating Muse and pyblosxom.
687 * Blosxom Requirements::        
688 * Blosxom Entries::             
689 * Book::                        Publish entries into a compilation.
690 * DocBook::                     Publish in DocBook XML form.
691 * HTML::                        Publish in HTML or XHTML form.
692 * Deriving Styles::             Deriving a style from an existing one.
693 @end menu
695 @node Blosxom, Book, Publishing Styles, Publishing Styles
696 @comment  node-name,  next,  previous,  up
697 @section Blosxom
699 The blosxom publishing style publishes a tree of categorised files to a
700 mirrored tree of blosxom stories to be served by blosxom.cgi or
701 pyblosxom.cgi.
703 @menu
704 * Blosxom Requirements::        Necessary publishing-related tools.
705 * Blosxom Entries::             Format of an entry and automation.
706 @end menu
708 @node Blosxom Requirements, Blosxom Entries, Blosxom, Blosxom
709 @comment  node-name,  next,  previous,  up
710 @section Blosxom Requirements
712 You will need to have @command{pyblosxom.cgi} or @command{blosxom.cgi}
713 installed on a machine that you have upload access to.
715 The following additional components are required in order to make the
716 date of blog entries display as something sensible.
718 @enumerate
719 @item
720 A script to gather date directives from the entire blog tree into a
721 single file.  The file must associate a blog entry with a date.
723 @item
724 A plugin for (py)blosxom that reads this file.
725 @end enumerate
727 These 2 things are provided for @command{pyblosxom.cgi} in the
728 @file{contrib/pyblosxom} subdirectory.  @file{getstamps.py} provides the
729 former service, while @file{hardcodedates.py} provides the latter
730 service.  Eventually it is hoped that a @command{blosxom.cgi} plugin and
731 script will be found/written.
733 Here is a sample listing from my @file{timestamps} file, which maps
734 each file to a date.  This can really be in any format, as long as your
735 date-gathering script and your plugin can both understand it.
737 @example
738 2005-04-01-14-16 personal/paper_cranes
739 2005-03-21 personal/spring_break_over
740 2004-10-24 personal/finished_free_culture
741 @end example
743 @node Blosxom Entries, , Blosxom Requirements, Blosxom
744 @comment  node-name,  next,  previous,  up
745 @section Blosxom Entries
747 Each Blosxom file must include `#date yyyy-mm-dd', or optionally the
748 longer `#date yyyy-mm-dd-hh-mm', a title (using the #title directive),
749 plus whatever normal content is desired.
751 The date directive is not used directly by @command{pyblosxom.cgi} or
752 this program.  You need to have the two additional items from the former
753 section to make use of this feature.
755 There is a function called @code{muse-blosxom-new-entry} that will
756 automate the process of making a new blog entry.  To make use of it, do
757 the following.
759 @itemize @bullet
760 @item
761 Customize @code{muse-blosxom-base-directory} to the location that your
762 blog entries are stored.
764 @item
765 Assign the @code{muse-blosxom-base-directory} function to a key
766 sequence.  I use the following code to assign this function to
767 @kbd{C-c p l'}.
769 @example
770 (global-set-key "\C-cpl" 'muse-blosxom-new-entry)
771 @end example
773 @item
774 You should create your directory structure ahead of time under your base
775 directory.  These directories, which correspond with category names, may
776 be nested.
778 @item
779 When you enter this key sequence, you will be prompted for the category
780 of your entry and its title.  Upon entering this information, a new file
781 will be created that corresponds with the title, but in lowercase
782 letters and having special characters converted to underscores.  The
783 title and date directives will be inserted automatically.
784 @end itemize
786 @node Book, DocBook, Blosxom, Publishing Styles
787 @comment  node-name,  next,  previous,  up
788 @section Book
790 This publishing style is used to output ``books'' in LaTeX or PDF
791 format.
793 Each page will become a separate chapter in the book, unless the style
794 keyword @option{:nochapters} is used, in which case they are all run
795 together as if one giant chapter.
797 @emph{Styles provided}
799 @table @code
801 @cindex publishing styles, book-latex
802 @item book-latex
803 Publish a book in LaTeX form.  The header and footer are different than
804 the normal LaTeX publishing mode.
806 @cindex publishing styles, book-pdf
807 @item book-pdf
808 Publish a book in PDF form.  The header and footer are different than
809 the normal PDF publishing mode.
811 @end table
813 @emph{Options provided}
815 @table @code
817 @item muse-book-before-publish-hook
818 A hook run in the book buffer before it is marked up.
820 @item muse-book-after-publish-hook
821 A hook run in the book buffer after it is marked up.
823 @item muse-book-latex-header
824 Header used for publishing books to LaTeX.
826 @item muse-book-latex-footer
827 Footer used for publishing books to LaTeX.
829 @end table
831 @node DocBook, HTML, Book, Publishing Styles
832 @comment  node-name,  next,  previous,  up
833 @section Book
835 This publishing style is used to generate DocBook XML files.
837 @emph{Styles provided}
839 @table @code
841 @cindex publishing styles, docbook
842 @item docbook
844 @end table
846 @emph{Options provided}
848 @table @code
850 @item muse-docbook-extension
851 Default file extension for publishing DocBook XML files.
853 @item muse-docbook-header
854 Header used for publishing DocBook XML files.
856 @item muse-docbook-footer
857 Footer used for publishing DocBook XML files.
859 @item muse-docbook-publishing-regexps
860 List of markup rules for publishing a Muse page to DocBook XML.
862 @item muse-docbook-markup-function
863 An alist of style types to custom functions for that kind of text.
865 @item muse-docbook-publishing-strings
866 Strings used for marking up text.
867 These cover the most basic kinds of markup, the handling of which
868 differs little between the various styles.
870 @item muse-docbook-markup-specials
871 A table of characters which must be represented specially.
873 @end table
875 @node HTML, Deriving Styles, DocBook, Publishing Styles
876 @comment  node-name,  next,  previous,  up
877 @section Book
879 This publishing style is capable of producing HTML or XHTML documents.
881 @emph{Styles provided}
883 @table @code
885 @cindex publishing styles, html
886 @item html
887 Supports publishing to HTML 4.0 and HTML 4.01, Strict or Transitional.
889 @item xhtml
890 Supports publishing to XHTML 1.0 and XHTML 1.1, Strict or Transitional.
892 @end table
894 @emph{Options provided}
896 If an HTML option does not have a corresponding XHTML option, it will
897 be used for both of these publishing styles.
899 @table @code
901 @item muse-html-extension
902 Default file extension for publishing HTML files.
904 @item muse-html-style-sheet
905 Store your stylesheet definitions here.  This is used in
906 @code{muse-html-header}.  You can put raw CSS in here or a
907 @verb{|<link>|} tag to an external stylesheet.  This text may contain
908 @verb{|<lisp>|} markup tags.
910 If you are using XHTML, make sure to close the @verb{|<link>|} tag
911 properly.
913 @item muse-html-header
914 Header used for publishing HTML files.
916 @item muse-html-footer
917 Footer used for publishing HTML files.
919 @item muse-xhtml-header
920 Header used for publishing XHTML files.
922 @item muse-xhtml-footer
923 Footer used for publishing XHTML files.
925 @item muse-html-anchor-on-word
926 When true, anchors surround the closest word. This allows you to select
927 them in a browser (i.e. for pasting), but has the side-effect of marking
928 up headers in multiple colors if your header style is different from
929 your link style.
931 @item muse-html-table-attributes
932 The attribute to be used with HTML @verb{|<table>|} tags.  Note that
933 since Muse supports direct insertion of HTML tags, you can easily create
934 any kind of table you want, as long as each line begins at column 0 (to
935 prevent it from being blockquoted).
937 @item muse-html-markup-regexps
938 List of markup rules for publishing a Muse page to HTML.
940 @item muse-html-markup-functions
941 An alist of style types to custom functions for that kind of text.
943 @item muse-html-markup-strings
944 Strings used for marking up text as HTML.  These cover the most basic
945 kinds of markup, the handling of which differs little between the
946 various styles.
948 @item muse-xhtml-markup-strings
949 Strings used for marking up text as XHTML.  These cover the most basic
950 kinds of markup, the handling of which differs little between the
951 various styles.
953 @item muse-html-markup-tags
954 A list of tag specifications, for specially marking up HTML.
956 @item muse-html-markup-specials
957 A table of characters which must be represented specially.  By default,
958 this includes @samp{"}, @samp{<}, @samp{>}, and @samp{&}.
960 @item muse-html-meta-http-equiv
961 The http-equiv attribute used for the HTML @verb{|<meta>|} tag.
963 @item muse-html-meta-content-type
964 The content type used for the HTML @verb{|<meta>|} tag.
965 If you are striving for XHTML 1.1 compliance, you may want to change
966 this to ``application/xhtml+xml''.
968 @item muse-html-meta-content-encoding
969 The charset to append to the HTML @verb{|<meta>|} tag.  If set to the
970 symbol 'detect, use @code{muse-html-encoding-map} to try and determine
971 the HTML charset from emacs's coding.  If set to a string, this string
972 will be used to force a particular charset.
974 @item muse-html-charset-default
975 The default HTML meta charset to use if no translation is found in
976 @code{muse-html-encoding-map}.
978 @item muse-html-encoding-default
979 The default Emacs buffer encoding to use in published files.  This will
980 be used if no special characters are found.
982 @item muse-html-encoding-map
983 An alist mapping emacs coding systems to appropriate HTML charsets.  Use
984 the base name of the coding system (i.e. without the -unix).
986 @end table
988 @node Deriving Styles, , HTML, Publishing Styles
989 @comment  node-name,  next,  previous,  up
990 @section Deriving styles
991 @cindex publishing styles, deriving
993 To create a new style from an existing one, use @code{muse-derive-style}
994 as follows.  This is a good way to fix something you don't like about a
995 particular publishing style, or to personalize it.
997 @example
998 (muse-derive-style DERIVED-NAME BASE-NAME STYLE-PARAMETERS)
999 @end example
1001 The derived name is a string defining the new style, such as "my-html".
1002 The base name must identify an existing style, such as "html" -- if you
1003 have loaded @file{muse-html}.  The style parameters are the same as
1004 those used to create a style, except that they override whatever
1005 definitions exist in the base style.  However, some definitions only
1006 partially override.  Those which support partial overriding are:
1008 @table @option
1010 @item :functions
1011 If a markup function is not found in the derived style's function list,
1012 the base style's function list will be queried.
1014 @item :strings
1015 If a markup string is not found in the derived style's string list, the
1016 base style's string list will be queried.
1018 @item :before
1019 If this option is specified, it will be consulted rather than the
1020 corresponding value in the derived style.  This applies to the following
1021 options as well.
1023 @item :before-end
1025 @item :after
1027 @end table
1030 @node Getting Help and Reporting Bugs, History, Publishing Styles, Top
1031 @comment  node-name,  next,  previous,  up
1032 @chapter Getting Help and Reporting Bugs
1033 @cindex help, getting
1034 @cindex bugs, reporting
1036 After you have read this guide, if you still have questions about
1037 Muse, or if you have bugs to report, there are several places you can
1040 @uref{http://www.mwolson.org/projects/MuseMode.html} is the page that
1041 Michael Olson made for Muse.  For the duration of his
1042 maintainership, it may be considered the official Muse website.
1044 @uref{http://www.emacswiki.org/cgi-bin/wiki/MuseMode} is the
1045 emacswiki.org page, and anyone may add tips, hints, or bug descriptions
1046 to it.
1048 You can join the mailing list at
1049 @email{emacs-wiki-discuss@@nongnu.org} using the subscription form at
1050 @uref{http://mail.nongnu.org/mailman/listinfo/
1051 emacs-wiki-discuss}. This mailing list is also available via Gmane
1052 (@uref{http://gmane.org/}). The group is called
1053 @samp{gmane.emacs.wiki.general}.
1055 You can visit the IRC Freenode channel @samp{#emacs}. Many of the
1056 contributors are frequently around and willing to answer your
1057 questions.  The @samp{#muse} channel is also available for
1058 Muse-specific help, and its current maintainer hangs out there.
1060 You can also contact the maintainer of MuseMode, Michael Olson,
1061 at @email{mwolson@@gnu.org}.
1063 @node History, Contributors, Getting Help and Reporting Bugs, Top
1064 @comment  node-name,  next,  previous,  up
1065 @chapter History
1066 @cindex history, of Muse
1068 @itemize
1069 @item 2004
1071 John Wiegley started Muse upon realizing that EmacsWiki had some serious
1072 limitations. Around February 2004, he started making "emacs-wiki version
1073 3.00 APLHA", which eventually became known as Muse.
1075 Most of those who frequent the emacs-wiki mailing list continued to use
1076 emacs-wiki, mainly because Planner hasn't been ported over to it.
1078 As of 2004-12-01, Michael Olson became the maintainer of Muse, as per
1079 John Wiegley's request.
1081 @end itemize
1083 @node Contributors, GNU General Public License, History, Top
1084 @comment  node-name,  next,  previous,  up
1085 @chapter Contributors
1086 @cindex contributors
1088 The first draft of this document was taken from the emacs-wiki texinfo
1089 manual.  Michael Olson adapted it for Muse and added most of its
1090 content.
1092 John Sullivan did a majority of the work on the emacs-wiki texinfo
1093 manual.
1095 While Sacha Chua maintained emacs-wiki, she worked quite a bit on the
1096 emacs-wiki texinfo manual.
1098 @node GNU General Public License, Concept Index, Contributors, Top
1099 @comment  node-name,  next,  previous,  up
1100 @appendix GNU GENERAL PUBLIC LICENSE
1101 @center Version 2, June 1991
1102 @cindex GPL
1103 @cindex GNU General Public License
1105 @c This file is intended to be included in another file.
1107 @display
1108 Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc.
1109 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
1111 Everyone is permitted to copy and distribute verbatim copies
1112 of this license document, but changing it is not allowed.
1113 @end display
1115 @appendixsec Preamble
1117   The licenses for most software are designed to take away your
1118 freedom to share and change it.  By contrast, the GNU General Public
1119 License is intended to guarantee your freedom to share and change free
1120 software---to make sure the software is free for all its users.  This
1121 General Public License applies to most of the Free Software
1122 Foundation's software and to any other program whose authors commit to
1123 using it.  (Some other Free Software Foundation software is covered by
1124 the GNU Library General Public License instead.)  You can apply it to
1125 your programs, too.
1127   When we speak of free software, we are referring to freedom, not
1128 price.  Our General Public Licenses are designed to make sure that you
1129 have the freedom to distribute copies of free software (and charge for
1130 this service if you wish), that you receive source code or can get it
1131 if you want it, that you can change the software or use pieces of it
1132 in new free programs; and that you know you can do these things.
1134   To protect your rights, we need to make restrictions that forbid
1135 anyone to deny you these rights or to ask you to surrender the rights.
1136 These restrictions translate to certain responsibilities for you if you
1137 distribute copies of the software, or if you modify it.
1139   For example, if you distribute copies of such a program, whether
1140 gratis or for a fee, you must give the recipients all the rights that
1141 you have.  You must make sure that they, too, receive or can get the
1142 source code.  And you must show them these terms so they know their
1143 rights.
1145   We protect your rights with two steps: (1) copyright the software, and
1146 (2) offer you this license which gives you legal permission to copy,
1147 distribute and/or modify the software.
1149   Also, for each author's protection and ours, we want to make certain
1150 that everyone understands that there is no warranty for this free
1151 software.  If the software is modified by someone else and passed on, we
1152 want its recipients to know that what they have is not the original, so
1153 that any problems introduced by others will not reflect on the original
1154 authors' reputations.
1156   Finally, any free program is threatened constantly by software
1157 patents.  We wish to avoid the danger that redistributors of a free
1158 program will individually obtain patent licenses, in effect making the
1159 program proprietary.  To prevent this, we have made it clear that any
1160 patent must be licensed for everyone's free use or not licensed at all.
1162   The precise terms and conditions for copying, distribution and
1163 modification follow.
1165 @iftex
1166 @appendixsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
1167 @end iftex
1168 @ifinfo
1169 @center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
1170 @end ifinfo
1172 @enumerate 0
1173 @item
1174 This License applies to any program or other work which contains
1175 a notice placed by the copyright holder saying it may be distributed
1176 under the terms of this General Public License.  The ``Program'', below,
1177 refers to any such program or work, and a ``work based on the Program''
1178 means either the Program or any derivative work under copyright law:
1179 that is to say, a work containing the Program or a portion of it,
1180 either verbatim or with modifications and/or translated into another
1181 language.  (Hereinafter, translation is included without limitation in
1182 the term ``modification''.)  Each licensee is addressed as ``you''.
1184 Activities other than copying, distribution and modification are not
1185 covered by this License; they are outside its scope.  The act of
1186 running the Program is not restricted, and the output from the Program
1187 is covered only if its contents constitute a work based on the
1188 Program (independent of having been made by running the Program).
1189 Whether that is true depends on what the Program does.
1191 @item
1192 You may copy and distribute verbatim copies of the Program's
1193 source code as you receive it, in any medium, provided that you
1194 conspicuously and appropriately publish on each copy an appropriate
1195 copyright notice and disclaimer of warranty; keep intact all the
1196 notices that refer to this License and to the absence of any warranty;
1197 and give any other recipients of the Program a copy of this License
1198 along with the Program.
1200 You may charge a fee for the physical act of transferring a copy, and
1201 you may at your option offer warranty protection in exchange for a fee.
1203 @item
1204 You may modify your copy or copies of the Program or any portion
1205 of it, thus forming a work based on the Program, and copy and
1206 distribute such modifications or work under the terms of Section 1
1207 above, provided that you also meet all of these conditions:
1209 @enumerate a
1210 @item
1211 You must cause the modified files to carry prominent notices
1212 stating that you changed the files and the date of any change.
1214 @item
1215 You must cause any work that you distribute or publish, that in
1216 whole or in part contains or is derived from the Program or any
1217 part thereof, to be licensed as a whole at no charge to all third
1218 parties under the terms of this License.
1220 @item
1221 If the modified program normally reads commands interactively
1222 when run, you must cause it, when started running for such
1223 interactive use in the most ordinary way, to print or display an
1224 announcement including an appropriate copyright notice and a
1225 notice that there is no warranty (or else, saying that you provide
1226 a warranty) and that users may redistribute the program under
1227 these conditions, and telling the user how to view a copy of this
1228 License.  (Exception: if the Program itself is interactive but
1229 does not normally print such an announcement, your work based on
1230 the Program is not required to print an announcement.)
1231 @end enumerate
1233 These requirements apply to the modified work as a whole.  If
1234 identifiable sections of that work are not derived from the Program,
1235 and can be reasonably considered independent and separate works in
1236 themselves, then this License, and its terms, do not apply to those
1237 sections when you distribute them as separate works.  But when you
1238 distribute the same sections as part of a whole which is a work based
1239 on the Program, the distribution of the whole must be on the terms of
1240 this License, whose permissions for other licensees extend to the
1241 entire whole, and thus to each and every part regardless of who wrote it.
1243 Thus, it is not the intent of this section to claim rights or contest
1244 your rights to work written entirely by you; rather, the intent is to
1245 exercise the right to control the distribution of derivative or
1246 collective works based on the Program.
1248 In addition, mere aggregation of another work not based on the Program
1249 with the Program (or with a work based on the Program) on a volume of
1250 a storage or distribution medium does not bring the other work under
1251 the scope of this License.
1253 @item
1254 You may copy and distribute the Program (or a work based on it,
1255 under Section 2) in object code or executable form under the terms of
1256 Sections 1 and 2 above provided that you also do one of the following:
1258 @enumerate a
1259 @item
1260 Accompany it with the complete corresponding machine-readable
1261 source code, which must be distributed under the terms of Sections
1262 1 and 2 above on a medium customarily used for software interchange; or,
1264 @item
1265 Accompany it with a written offer, valid for at least three
1266 years, to give any third party, for a charge no more than your
1267 cost of physically performing source distribution, a complete
1268 machine-readable copy of the corresponding source code, to be
1269 distributed under the terms of Sections 1 and 2 above on a medium
1270 customarily used for software interchange; or,
1272 @item
1273 Accompany it with the information you received as to the offer
1274 to distribute corresponding source code.  (This alternative is
1275 allowed only for noncommercial distribution and only if you
1276 received the program in object code or executable form with such
1277 an offer, in accord with Subsection b above.)
1278 @end enumerate
1280 The source code for a work means the preferred form of the work for
1281 making modifications to it.  For an executable work, complete source
1282 code means all the source code for all modules it contains, plus any
1283 associated interface definition files, plus the scripts used to
1284 control compilation and installation of the executable.  However, as a
1285 special exception, the source code distributed need not include
1286 anything that is normally distributed (in either source or binary
1287 form) with the major components (compiler, kernel, and so on) of the
1288 operating system on which the executable runs, unless that component
1289 itself accompanies the executable.
1291 If distribution of executable or object code is made by offering
1292 access to copy from a designated place, then offering equivalent
1293 access to copy the source code from the same place counts as
1294 distribution of the source code, even though third parties are not
1295 compelled to copy the source along with the object code.
1297 @item
1298 You may not copy, modify, sublicense, or distribute the Program
1299 except as expressly provided under this License.  Any attempt
1300 otherwise to copy, modify, sublicense or distribute the Program is
1301 void, and will automatically terminate your rights under this License.
1302 However, parties who have received copies, or rights, from you under
1303 this License will not have their licenses terminated so long as such
1304 parties remain in full compliance.
1306 @item
1307 You are not required to accept this License, since you have not
1308 signed it.  However, nothing else grants you permission to modify or
1309 distribute the Program or its derivative works.  These actions are
1310 prohibited by law if you do not accept this License.  Therefore, by
1311 modifying or distributing the Program (or any work based on the
1312 Program), you indicate your acceptance of this License to do so, and
1313 all its terms and conditions for copying, distributing or modifying
1314 the Program or works based on it.
1316 @item
1317 Each time you redistribute the Program (or any work based on the
1318 Program), the recipient automatically receives a license from the
1319 original licensor to copy, distribute or modify the Program subject to
1320 these terms and conditions.  You may not impose any further
1321 restrictions on the recipients' exercise of the rights granted herein.
1322 You are not responsible for enforcing compliance by third parties to
1323 this License.
1325 @item
1326 If, as a consequence of a court judgment or allegation of patent
1327 infringement or for any other reason (not limited to patent issues),
1328 conditions are imposed on you (whether by court order, agreement or
1329 otherwise) that contradict the conditions of this License, they do not
1330 excuse you from the conditions of this License.  If you cannot
1331 distribute so as to satisfy simultaneously your obligations under this
1332 License and any other pertinent obligations, then as a consequence you
1333 may not distribute the Program at all.  For example, if a patent
1334 license would not permit royalty-free redistribution of the Program by
1335 all those who receive copies directly or indirectly through you, then
1336 the only way you could satisfy both it and this License would be to
1337 refrain entirely from distribution of the Program.
1339 If any portion of this section is held invalid or unenforceable under
1340 any particular circumstance, the balance of the section is intended to
1341 apply and the section as a whole is intended to apply in other
1342 circumstances.
1344 It is not the purpose of this section to induce you to infringe any
1345 patents or other property right claims or to contest validity of any
1346 such claims; this section has the sole purpose of protecting the
1347 integrity of the free software distribution system, which is
1348 implemented by public license practices.  Many people have made
1349 generous contributions to the wide range of software distributed
1350 through that system in reliance on consistent application of that
1351 system; it is up to the author/donor to decide if he or she is willing
1352 to distribute software through any other system and a licensee cannot
1353 impose that choice.
1355 This section is intended to make thoroughly clear what is believed to
1356 be a consequence of the rest of this License.
1358 @item
1359 If the distribution and/or use of the Program is restricted in
1360 certain countries either by patents or by copyrighted interfaces, the
1361 original copyright holder who places the Program under this License
1362 may add an explicit geographical distribution limitation excluding
1363 those countries, so that distribution is permitted only in or among
1364 countries not thus excluded.  In such case, this License incorporates
1365 the limitation as if written in the body of this License.
1367 @item
1368 The Free Software Foundation may publish revised and/or new versions
1369 of the General Public License from time to time.  Such new versions will
1370 be similar in spirit to the present version, but may differ in detail to
1371 address new problems or concerns.
1373 Each version is given a distinguishing version number.  If the Program
1374 specifies a version number of this License which applies to it and ``any
1375 later version'', you have the option of following the terms and conditions
1376 either of that version or of any later version published by the Free
1377 Software Foundation.  If the Program does not specify a version number of
1378 this License, you may choose any version ever published by the Free Software
1379 Foundation.
1381 @item
1382 If you wish to incorporate parts of the Program into other free
1383 programs whose distribution conditions are different, write to the author
1384 to ask for permission.  For software which is copyrighted by the Free
1385 Software Foundation, write to the Free Software Foundation; we sometimes
1386 make exceptions for this.  Our decision will be guided by the two goals
1387 of preserving the free status of all derivatives of our free software and
1388 of promoting the sharing and reuse of software generally.
1390 @iftex
1391 @heading NO WARRANTY
1392 @end iftex
1393 @ifinfo
1394 @center NO WARRANTY
1395 @end ifinfo
1397 @item
1398 BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
1399 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
1400 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
1401 PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
1402 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
1403 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
1404 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
1405 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
1406 REPAIR OR CORRECTION.
1408 @item
1409 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
1410 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
1411 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
1412 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
1413 OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
1414 TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
1415 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
1416 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
1417 POSSIBILITY OF SUCH DAMAGES.
1418 @end enumerate
1420 @iftex
1421 @heading END OF TERMS AND CONDITIONS
1422 @end iftex
1423 @ifinfo
1424 @center END OF TERMS AND CONDITIONS
1425 @end ifinfo
1427 @page
1428 @appendixsec Appendix: How to Apply These Terms to Your New Programs
1430   If you develop a new program, and you want it to be of the greatest
1431 possible use to the public, the best way to achieve this is to make it
1432 free software which everyone can redistribute and change under these terms.
1434   To do so, attach the following notices to the program.  It is safest
1435 to attach them to the start of each source file to most effectively
1436 convey the exclusion of warranty; and each file should have at least
1437 the ``copyright'' line and a pointer to where the full notice is found.
1439 @smallexample
1440 @var{one line to give the program's name and a brief idea of what it does.}
1441 Copyright (C) @var{yyyy}  @var{name of author}
1443 This program is free software; you can redistribute it and/or modify
1444 it under the terms of the GNU General Public License as published by
1445 the Free Software Foundation; either version 2 of the License, or
1446 (at your option) any later version.
1448 This program is distributed in the hope that it will be useful,
1449 but WITHOUT ANY WARRANTY; without even the implied warranty of
1450 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1451 GNU General Public License for more details.
1453 You should have received a copy of the GNU General Public License along
1454 with this program; if not, write to the Free Software Foundation, Inc.,
1455 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
1456 @end smallexample
1458 Also add information on how to contact you by electronic and paper mail.
1460 If the program is interactive, make it output a short notice like this
1461 when it starts in an interactive mode:
1463 @smallexample
1464 Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author}
1465 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
1466 This is free software, and you are welcome to redistribute it
1467 under certain conditions; type `show c' for details.
1468 @end smallexample
1470 The hypothetical commands @samp{show w} and @samp{show c} should show
1471 the appropriate parts of the General Public License.  Of course, the
1472 commands you use may be called something other than @samp{show w} and
1473 @samp{show c}; they could even be mouse-clicks or menu items---whatever
1474 suits your program.
1476 You should also get your employer (if you work as a programmer) or your
1477 school, if any, to sign a ``copyright disclaimer'' for the program, if
1478 necessary.  Here is a sample; alter the names:
1480 @example
1481 Yoyodyne, Inc., hereby disclaims all copyright interest in the program
1482 `Gnomovision' (which makes passes at compilers) written by James Hacker.
1484 @var{signature of Ty Coon}, 1 April 1989
1485 Ty Coon, President of Vice
1486 @end example
1488 This General Public License does not permit incorporating your program into
1489 proprietary programs.  If your program is a subroutine library, you may
1490 consider it more useful to permit linking proprietary applications with the
1491 library.  If this is what you want to do, use the GNU Library General
1492 Public License instead of this License.
1495 @node Concept Index,  , GNU General Public License, Top
1496 @comment  node-name,  next,  previous,  up
1497 @unnumbered Index
1499 @printindex cp
1501 @bye
1503 @c Local Variables:
1504 @c ispell-local-pdict: "ispell-dict"
1505 @c End: