diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:44:05 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:44:05 +0000 |
commit | d318611dd6f23fcfedd50e9b9e24620b102ba96a (patch) | |
tree | 8b9eef82ca40fdd5a8deeabf07572074c236095d /contrib/mom/examples | |
parent | Initial commit. (diff) | |
download | groff-upstream.tar.xz groff-upstream.zip |
Adding upstream version 1.23.0.upstream/1.23.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'contrib/mom/examples')
-rw-r--r-- | contrib/mom/examples/README-fr.txt | 126 | ||||
-rw-r--r-- | contrib/mom/examples/README.txt | 119 | ||||
-rw-r--r-- | contrib/mom/examples/copyright-chapter.mom | 160 | ||||
-rw-r--r-- | contrib/mom/examples/copyright-default.mom | 149 | ||||
-rw-r--r-- | contrib/mom/examples/elvis_syntax | 96 | ||||
-rw-r--r-- | contrib/mom/examples/elvis_syntax.new | 116 | ||||
-rw-r--r-- | contrib/mom/examples/letter.mom | 46 | ||||
-rw-r--r-- | contrib/mom/examples/mom-pdf.mom | 620 | ||||
-rw-r--r-- | contrib/mom/examples/mom.vim | 140 | ||||
-rw-r--r-- | contrib/mom/examples/mon_premier_doc.mom | 140 | ||||
-rw-r--r-- | contrib/mom/examples/penguin.pdf | 148 | ||||
-rw-r--r-- | contrib/mom/examples/penguin.ps | 461 | ||||
-rw-r--r-- | contrib/mom/examples/sample_docs.mom | 713 | ||||
-rw-r--r-- | contrib/mom/examples/slide-demo.mom | 438 | ||||
-rw-r--r-- | contrib/mom/examples/test-mom.sh.in | 92 | ||||
-rw-r--r-- | contrib/mom/examples/typesetting.mom | 707 |
16 files changed, 4271 insertions, 0 deletions
diff --git a/contrib/mom/examples/README-fr.txt b/contrib/mom/examples/README-fr.txt new file mode 100644 index 0000000..5b1b434 --- /dev/null +++ b/contrib/mom/examples/README-fr.txt @@ -0,0 +1,126 @@ +-*- mode: text; coding: utf-8; -*- +Copyright (C) 2014-2020 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + +======================================================================== + +Les fichiers dans ce répertoire vous permettent de voir mom en pleine +action. + +Si vous avez téléchargé et décompressé une version de mom depuis sa +page d'accueil, vous verrez qu'aucun exemple n'est accompagné du +fichier PDF (.pdf) correspondant, comme c'est le cas sur les versions +pré-compilées de groff, ou groff compilé à partir des sources. + +Je n'ai pas inclu les PDF parce que je voulais conserver l'archive mom +aussi petite que possible. Pour générer les PDF, traitez les fichiers +avec pdfmom(1). + + pdfmom mom-pdf.mom > mom-pdf.pdf + pdfmom sample_docs.mom > sample_docs.pdf + pdfmom slide-demo.mom > slide-demo.pdf + pdfmom -k letter.mom > letter.pdf + pdfmom -k mon_premier_doc.mom > mon_premier_doc.pdf + pdfmom -k typesetting.mom > typesetting.pdf + +Les fichiers +------------ + +Tous les fichiers sont configurés pour le format lettre US, exceptés +mom-pdf.mom et mon_premier_doc.mom, qui utilisent le format A4. + +***typesetting.mom** + +Le fichier typesetting.mom montre l'utilisation d'éléments de +composition typographique: tabulations, tabulations intégrées dans des +chaînes de caractères, remplissage de lignes, texte sur plusieurs +colonnes et différents styles d'indentation; ainsi que certaines +subtilités et réglages précis disponibles via des macros et des +échappements en ligne ("inline escape", des commandes insérées +directement dans le texte, par opposition aux macros). + +Comme ce fichier montre également l'utilisation d'une petite image au +milieu d'un texte et que cette image est la mascotte favorite de tout +le monde -- Tux, le fichier PDF de cette image, penguin.pdf, a été +ajouté dans ce répertoire. + +***sample_docs.mom*** + +Le fichier sample_docs.mom montre en exemple les trois styles de +documents apportés par les macros de formattage de document de mom, +ansi que l'utilisation de COLLATE. Il montre également certaines +fonctionnalités PDF de mom dont l'écriture d'une ébauche de nouvelle +ou des liens cliquables dans une table des matières. + +Le dernier exemple démontre, par un texte séparé en deux colonnes, la +souplesse de mom pour la conception de document. + +Le PRINTSTYLE de ce fichier est TYPESET et vous donne une idée du +comportement par défaut de mom pour la composition typographique de +document. + +Si vous souhaitez voir comment mom traite le même fichier quand +PRINTSTYLE est TYPEWRITE (c'est-à-dire dactylographié, avec espace +double) remplacez .PRINTSTYLE TYPESET par .PRINTSTYLE TYPEWRITE au +début du fichier. + +***letter.mom*** + +Ceci est simplement l'exemple du tutorial de momdocs, prêt à être vu. + +***slide-demo.mom*** + +Le fichier slide-demo.mom montre une présentation de diapositives +avec des effets PAUSE et TRANSITION. Le fichier .pdf généré avec +pdfmom devrait être ouvert en mode Présentation d'un lecteur PDF +(Okular, Evince, Acroread). Notez que pas tous les effets de +transition sont disponibles pour tous les lecteurs PDF. + +***mon_premier_doc.mom*** + +Le fichier mon_premier_doc.mom est un exemple simple en français +montrant l'utilisation d'éléments de formattage courants: titres de +section, paragraphes, listes, table des matières et liens PDF +cliquables. Il doit être généré avec l'option -k du fait de la +présence de caractères accentués. + +Un certain nombre de réglages ont également été changés pour ce +document en français: ATTRIBUTE_STRING est utilisé pour remplacer +"by" par "par" en tête de document (là où le titre et l'auteur sont +affichés). TOC_HEADER_STRING sert à modifier le titre de la table des +matières en "Table des matières" plutôt que "Table of Content". Enfin, +le paramètre de configuration INDENT_FIRST_PARAS est activé afin +d'indenter le premier paragraphe de chaque section -- ceci est l'usage +en typographie française. + +***copyright-default.mom/copyright-chapter.mom*** + +Deux fichiers qui montrent la bonne façon d'insérer une page des +droits d'auteur dans les documents créés avec mom. "Default" est +pour DOCTYPE DEFAULT; "chapter" est pour DOCTYPE CHAPTER. + +***mom-pdf.mom*** + +Le manuel "Producing PDFs with mom and groff". + +***mom.vim*** + +Les règles de coloration syntaxique vim sont baséés sur celles +fournies par Christian V. J. Brüssow (cvjb@cvjb.de). Copiez le fichier +mom.vim dans votre répertoire ~/.vim/syntax directory; ensuite, +autorisez la coloration syntaxique si ce n'est pas encore le cas: + + :syntax enable +ou + :syntax on + +***elvis_syntax.new*** + +Ceux qui utilisent elvis, le clone de vi, peuvent directement +copier-coller le contenu de ce fichier dans leur elvis.syn. Tous les +fichiers ayant l'extension .mom auront la coloration syntaxique. Les +règles dans elvis_syntax ne sont pas exhaustive, mais aideront +beaucoup à rendre les fichiers mom plus lisibles. diff --git a/contrib/mom/examples/README.txt b/contrib/mom/examples/README.txt new file mode 100644 index 0000000..851a9a2 --- /dev/null +++ b/contrib/mom/examples/README.txt @@ -0,0 +1,119 @@ +-*- mode: text; coding: utf-8; -*- +Copyright (C) 2004-2020 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + +======================================================================== + +The files in this directory show mom in action. + +If you have downloaded and untarrred a version of mom from her +homepage, you'll see that none of the example files come with +corresponding PDF (.pdf) files, as they do with pre-compiled +versions of groff, or groff built from source. + +I haven't included the PDF output because I want to keep the mom +archive as lean as possible. To view the PDF output, process the +files with pdfmom(1). + + pdfmom mom-pdf.mom > mom-pdf.pdf + pdfmom sample_docs.mom > sample_docs.pdf + pdfmom slide-demo.mom > slide-demo.pdf + pdfmom -k letter.mom > letter.pdf + pdfmom -k mon_premier_doc.mom > mon_premier_doc.pdf + pdfmom -k typesetting.mom > typesetting.pdf + +The files themselves +-------------------- + +All are set up for US letter papersize except mom-pdf.mom and +mon_premier_doc.mom, which uses A4. + +***typesetting.mom** + +The file, typesetting.mom, demonstrates the use of typesetting tabs, +string tabs, line padding, multi-columns and various indent styles, +as well as some of the refinements and fine-tuning available via +macros and inline escapes. + +Because the file also demonstrates a cutaround using a small picture +of everybody's favourite mascot, Tux, the PDF file, penguin.pdf has +been included in the directory. + +***sample_docs.mom*** + +The file, sample_docs.mom, shows examples of three of the document +styles available with the mom's document processing macros, as well +as demonstrating the use of COLLATE. It also shows off some of +mom's PDF features, including a PDF outline and clickable links in +the printable Table of Contents. + +The last sample, set in 2 columns, demonstrates mom's flexibility +when it comes to designing documents. + +The PRINTSTYLE of this file is TYPESET, to give you an idea of mom's +default behaviour when typesetting a document. + +If you'd like to see how mom handles exactly the same file when the +PRINTSTYLE is TYPEWRITE (ie typewritten, double-spaced), simply +change .PRINTSTYLE TYPESET to .PRINTSTYLE TYPEWRITE near the top of +the file. + +***letter.mom*** + +This is just the tutorial example from the momdocs, ready for +previewing. + +***slide-demo.mom*** + +The file, slide-demo.mom, demonstrates a slide presentation with +PAUSE and TRANSITION effects. The .pdf created by pdfmom should be +opened in Presentation Mode in a PDF reader (e.g. Okular, Evince, +Acroread). Note that not all transition effects are available in +all PDF readers. + +***mon_premier_doc.mom*** + +The file, mon_premier_doc.mom, is a simple example in French showing +the use of common elements: section headings, paragraphs, lists, table +of contents and clickable links. It should be generated with option -k +as there are some accented letters. + +A few settings were also changed for this French document: +ATTRIBUTE_STRING is used to replace "by" by "par" in the document +header (where the title and the author are displayed). +TOC_HEADER_STRING is used to modity the Table of Content title to +"Table des matires". And finally, INDENT_FIRST_PARAS is used to +indent the first paragraph of a section -- this is the usual +convention in French typesetting. + +***copyright-default.mom/copyright-chapter.mom*** + +These two files demonstrate the correct way to insert a copyright +page into mom documents. "Default" is for DOCTYPE DEFAULT; +"chapter" is for DOCTYPE CHAPTER. + +***mom-pdf.mom*** + +The manual, Producing PDFs with mom and groff. + +***mom.vim*** + +The vim syntax highlighting rules are based on those provided by +Christian V. J. Brssow (cvjb@cvjb.de). Copy mom.vim file to your +~/.vim/syntax directory; then, if your vim isn't already set up to +do so, enable mom syntax highlighting with + + :syntax enable +or + :syntax on + +***elvis_syntax.new*** + +For those who use the vi clone, elvis, you can paste this file into +your elvis.syn. Provided your mom documents have the extension +.mom, they'll come out with colorized syntax highlighting. The +rules in elvis_syntax aren't exhaustive, but they go a long way to +making mom files more readable. diff --git a/contrib/mom/examples/copyright-chapter.mom b/contrib/mom/examples/copyright-chapter.mom new file mode 100644 index 0000000..261c712 --- /dev/null +++ b/contrib/mom/examples/copyright-chapter.mom @@ -0,0 +1,160 @@ +.\" -*- mode: text; coding: utf-8; -*- +\# +\# Copyright (C) 2019-2020 Free Software Foundation, Inc. +\# +\# Copying and distribution of this file, with or without modification, +\# are permitted in any medium without royalty provided the copyright +\# notice and this notice are preserved. +\# +.ig +***Template for creating a copyright page, DOCTYPE CHAPTER*** +. +Mom documents comprised of chapters using DOCTYPE CHAPTER require +the START macro to begin each chapter, and the COLLATE macro to join +it to the subsequent chapter. +. +A copyright page (also called an edition page), which is not a +chapter, should be treated as a DOCTYPE DEFAULT. The text of +the copyright page is entered after START and joined to the first +chapter (DOCTYPE CHAPTER) with COLLATE. +. +Copyright pages are not identified by a title or heading, however +they require a TITLE in order to be included in PDF viewer outlines +and the Table of Contents. Supplying '.TITLE "Copyright"' +but disabling the DOCHEADER achieves both these requirements. +. +Pagination should also be disabled for the copyright page. Both +docheader and pagination should be re-enabled before the START of +the first chapter. +.. +. +.\" Cover setup +. +.\" By default, mom uses the last TITLE macro before START for the +.\" title that appears on the cover. Since the TITLE is "Copyright," +.\" mom needs to be told explicitly to use a different title. +. +.\" Cover and PDF viewer setup +. +.DOCTITLE "Book Title" +.TITLE DOC_COVER \ + "\*[$DOCTITLE]" \" Title for the cover page +.AUTHOR \ + "Book Author" +.DOC_COVER \ + TITLE AUTHOR +.PDF_TITLE \ + "DOCTYPE CHAPTER with copyright page" \" For PDF viewer titlebar +. +.\" Copyright page setup +. +.PRINTSTYLE TYPESET +.DOCTYPE DEFAULT \" Copyright page is not a chapter. +. +.DOCHEADER off 1i \" Turn off docheader for copyright page. +. \" Begin text 1 inch from page top. +.PAGINATION off \" Disable pagination for copyright page. +. +.TITLE "Copyright" \" Required for the PDF viewer outline; does not +. \" get printed because docheader is disabled. +.NO_TOC_ENTRY \" So copyright page is not included in the TOC +. +.START \" Begin example copyright page +All rights reserved. No part of this publication may be reproduced, +distributed, or transmitted in any form or by any means, including +photocopying, recording, or other electronic or mechanical methods, +without the prior written permission of the publisher, except +in the case of brief quotations embodied in critical reviews +and certain other noncommercial uses permitted by copyright +law. For permission requests, write to the publisher, addressed +“Attention: Permissions Coordinator,” at the address below. +.SP +.LEFT +Copyright \[co]2019 Copyright Holder +.SP +Additional information... +.TOC_AFTER_HERE \" Place TOC after copyright page. +. +.COLLATE +. +.\" Chapter setup +. +.DOCTYPE CHAPTER \" Begin using DOCTYPE CHAPTER. +.TITLE \ + "\*[$DOCTITLE]" \" Needed for page headers. +. \" Only required before first chapter. +.CHAPTER 1 +.CHAPTER_TITLE \ + "Sample Chapter" +.DOCHEADER \" Re-enable docheader. +.PAGINATE \" Re-enable pagination. +.PAGENUMBER 1 +. +.START \" Begin first chapter. +.PP +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at +ante. Mauris eleifend, quam a vulputate dictum, massa quam dapibus +leo, eget vulputate orci purus ut lorem. In fringilla mi in ligula. +Pellentesque aliquam quam vel dolor. Nunc adipiscing. Sed quam odio, +tempus ac, aliquam molestie, varius ac, tellus. Vestibulum ut nulla +aliquam risus rutrum interdum. Pellentesque lorem. Curabitur sit +amet erat quis risus feugiat viverra. Pellentesque augue justo, +sagittis et, lacinia at, venenatis non, arcu. Nunc nec libero. In +cursus dictum risus. Etiam tristique nisl a nulla. Ut a orci. +Curabitur dolor nunc, egestas at, accumsan at, malesuada nec, magna. +.PP +Nulla facilisi. Nunc volutpat. Vestibulum ante ipsum primis in +faucibus orci luctus et ultrices posuere cubilia Curae; Ut sit +amet orci vel mauris blandit vehicula. Nullam quis enim. Integer +dignissim viverra velit. Curabitur in odio. In hac habitasse platea +dictumst. Ut consequat, tellus eu volutpat varius, justo orci +elementum dolor, sed imperdiet nulla tellus ut diam. Vestibulum +ipsum ante, malesuada quis, tempus ac, placerat sit amet, elit. +.PP +Sed eget turpis a pede tempor malesuada. Vivamus quis mi at leo +pulvinar hendrerit. Cum sociis natoque penatibus et magnis dis +parturient montes, nascetur ridiculus mus. Pellentesque aliquet +lacus vitae pede. Nullam mollis dolor ac nisi. Phasellus sit amet +urna. Praesent pellentesque sapien sed lacus. Donec lacinia odio +in odio. In sit amet elit. Maecenas gravida interdum urna. Integer +pretium, arcu vitae imperdiet facilisis, elit tellus tempor nisi, +vel feugiat ante velit sit amet mauris. Vivamus arcu. Integer +pharetra magna ac lacus. Aliquam vitae sapien in nibh vehicula +auctor. Suspendisse leo mauris, pulvinar sed, tempor et, consequat +ac, lacus. Proin velit. Nulla semper lobortis mauris. Duis urna +erat, ornare et, imperdiet eu, suscipit sit amet, massa. Nulla nulla +nisi, pellentesque at, egestas quis, fringilla eu, diam. +.PP +Donec semper, sem nec tristique tempus, justo neque commodo nisl, +ut gravida sem tellus suscipit nunc. Aliquam erat volutpat. Ut +tincidunt pretium elit. Aliquam pulvinar. Nulla cursus. Suspendisse +potenti. Etiam condimentum hendrerit felis. Duis iaculis aliquam +enim. Donec dignissim augue vitae orci. Curabitur luctus felis a +metus. Cum sociis natoque penatibus et magnis dis parturient montes, +nascetur ridiculus mus. In varius neque at enim. Suspendisse massa +nulla, viverra in, bibendum vitae, tempor quis, lorem. +.PP +Donec dapibus orci sit amet elit. Maecenas rutrum ultrices lectus. +Aliquam suscipit, lacus a iaculis adipiscing, eros orci pellentesque +nisl, non pharetra dolor urna nec dolor. Integer cursus dolor vel +magna. Integer ultrices feugiat sem. Proin nec nibh. Duis eu dui +quis nunc sagittis lobortis. Fusce pharetra, enim ut sodales luctus, +lectus arcu rhoncus purus, in fringilla augue elit vel lacus. In +hac habitasse platea dictumst. Aliquam erat volutpat. Fusce iaculis +elit id tellus. Ut accumsan malesuada turpis. Suspendisse potenti. +Vestibulum lacus augue, lobortis mattis, laoreet in, varius at, +nisi. Nunc gravida. Phasellus faucibus. In hac habitasse platea +dictumst. Integer tempor lacus eget lectus. Praesent fringilla augue +fringilla. +.PP +Pellentesque aliquam quam vel dolor. Nunc adipiscing. Sed quam odio, +tempus ac, aliquam molestie, varius ac, tellus. Vestibulum ut nulla +aliquam risus rutrum interdum. Pellentesque lorem. Curabitur sit +amet erat quis risus feugiat viverra. Pellentesque augue justo, +sagittis et, lacinia at, venenatis non, arcu. Nunc nec libero. In +cursus dictum risus. Etiam tristique nisl a nulla. Ut a orci. +.TOC +.\" Local Variables: +.\" mode: nroff +.\" End: +.\" vim: filetype=groff: diff --git a/contrib/mom/examples/copyright-default.mom b/contrib/mom/examples/copyright-default.mom new file mode 100644 index 0000000..25a428f --- /dev/null +++ b/contrib/mom/examples/copyright-default.mom @@ -0,0 +1,149 @@ +.\" -*- mode: text; coding: utf-8; -*- +\# +\# Copyright (C) 2019-2020 Free Software Foundation, Inc. +\# +\# Copying and distribution of this file, with or without modification, +\# are permitted in any medium without royalty provided the copyright +\# notice and this notice are preserved. +\# +.ig +***Template for created a copyright page, DOCTYPE DEFAULT*** + +Mom documents comprised of titled sections using DOCTYPE DEFAULT +(e.g. a collection of articles or a book of short stories by +different authors) require the START macro to begin each new +section, and the COLLATE macro to join it to the subsequent section. +. +A copyright page (also called an edition page) should be treated +as a titled section. The text of the copyright page is entered +after START and joined to the next major section (i.e. the beginning +of a document's content) with COLLATE. +. +Copyright pages are not identified by a title or heading, however +they require a TITLE in order to be included in PDF viewer outlines +and, if desired, the Table of Contents. Supplying '.TITLE "Copyright"' +but disabling the DOCHEADER achieves both these requirements. +. +Pagination should also be disabled for the copyright page. Both +docheader and pagination should be re-enabled before the START of +the first (titled) section of the document. +.. +. +.\" Cover and PDF viewer setup +. +.\" By default, mom uses the last TITLE macro before START for the +.\" title that appears on the cover. Since the TITLE is "Copyright," +.\" mom needs to be told explicitly to use a different title. +. +.TITLE DOC_COVER \ + "Document Title" +.EDITOR DOC_COVER \ + "Document Editor" +.ATTRIBUTE_STRING DOC_COVER \ + "Edited by" +.DOC_COVER \ + TITLE EDITOR +.PDF_TITLE \ + "DOCTYPE DEFAULT with copyright page" \" For PDF viewer titlebar +. +.\" Copyright page setup +. +.PRINTSTYLE TYPESET +.DOCHEADER off 1i \" Turn off docheader for copyright page. +. \" Begin text 1 inch from page top. +.PAGINATION off \" Disable pagination for copyright page. +. +.TITLE "Copyright" \" Required for PDF viewer outline; does not +. \" get printed because docheader is disabled. +. +.NO_TOC_ENTRY \" So copyright page is not included in the TOC +. +.START \" Begin copyright page +All rights reserved. No part of this publication may be reproduced, +distributed, or transmitted in any form or by any means, including +photocopying, recording, or other electronic or mechanical methods, +without the prior written permission of the publisher, except +in the case of brief quotations embodied in critical reviews +and certain other noncommercial uses permitted by copyright +law. For permission requests, write to the publisher, addressed +“Attention: Permissions Coordinator,” at the address below. +.SP +.LEFT +Copyright \[co]2019 Copyright Holder +.SP +Additional information... +.TOC_AFTER_HERE \" Place TOC after copyright page. +. +.COLLATE +. +.\" Sample article setup +. +.TITLE \ + "Sample article" \" Title of first article +.AUTHOR \ + "Article Author" +.DOCHEADER \" Re-enable docheader. +.PAGINATE \" Re-enable pagination. +.PAGENUMBER 1 +. +.START +.PP +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at +ante. Mauris eleifend, quam a vulputate dictum, massa quam dapibus +leo, eget vulputate orci purus ut lorem. In fringilla mi in ligula. +Pellentesque aliquam quam vel dolor. Nunc adipiscing. Sed quam odio, +tempus ac, aliquam molestie, varius ac, tellus. Vestibulum ut nulla +aliquam risus rutrum interdum. Pellentesque lorem. Curabitur sit +amet erat quis risus feugiat viverra. Pellentesque augue justo, +sagittis et, lacinia at, venenatis non, arcu. Nunc nec libero. In +cursus dictum risus. Etiam tristique nisl a nulla. Ut a orci. +Curabitur dolor nunc, egestas at, accumsan at, malesuada nec, magna. +.PP +Nulla facilisi. Nunc volutpat. Vestibulum ante ipsum primis in +faucibus orci luctus et ultrices posuere cubilia Curae; Ut sit +amet orci vel mauris blandit vehicula. Nullam quis enim. Integer +dignissim viverra velit. Curabitur in odio. In hac habitasse platea +dictumst. Ut consequat, tellus eu volutpat varius, justo orci +elementum dolor, sed imperdiet nulla tellus ut diam. Vestibulum +ipsum ante, malesuada quis, tempus ac, placerat sit amet, elit. +.PP +Sed eget turpis a pede tempor malesuada. Vivamus quis mi at leo +pulvinar hendrerit. Cum sociis natoque penatibus et magnis dis +parturient montes, nascetur ridiculus mus. Pellentesque aliquet +lacus vitae pede. Nullam mollis dolor ac nisi. Phasellus sit amet +urna. Praesent pellentesque sapien sed lacus. Donec lacinia odio +in odio. In sit amet elit. Maecenas gravida interdum urna. Integer +pretium, arcu vitae imperdiet facilisis, elit tellus tempor nisi, +vel feugiat ante velit sit amet mauris. Vivamus arcu. Integer +pharetra magna ac lacus. Aliquam vitae sapien in nibh vehicula +auctor. Suspendisse leo mauris, pulvinar sed, tempor et, consequat +ac, lacus. Proin velit. Nulla semper lobortis mauris. Duis urna +erat, ornare et, imperdiet eu, suscipit sit amet, massa. Nulla nulla +nisi, pellentesque at, egestas quis, fringilla eu, diam. +.PP +Donec semper, sem nec tristique tempus, justo neque commodo nisl, +ut gravida sem tellus suscipit nunc. Aliquam erat volutpat. Ut +tincidunt pretium elit. Aliquam pulvinar. Nulla cursus. Suspendisse +potenti. Etiam condimentum hendrerit felis. Duis iaculis aliquam +enim. Donec dignissim augue vitae orci. Curabitur luctus felis a +metus. Cum sociis natoque penatibus et magnis dis parturient montes, +nascetur ridiculus mus. In varius neque at enim. Suspendisse massa +nulla, viverra in, bibendum vitae, tempor quis, lorem. +.PP +Donec dapibus orci sit amet elit. Maecenas rutrum ultrices lectus. +Aliquam suscipit, lacus a iaculis adipiscing, eros orci pellentesque +nisl, non pharetra dolor urna nec dolor. Integer cursus dolor vel +magna. Integer ultrices feugiat sem. Proin nec nibh. Duis eu dui +quis nunc sagittis lobortis. Fusce pharetra, enim ut sodales luctus, +lectus arcu rhoncus purus, in fringilla augue elit vel lacus. In +hac habitasse platea dictumst. Aliquam erat volutpat. Fusce iaculis +elit id tellus. Ut accumsan malesuada turpis. Suspendisse potenti. +Vestibulum lacus augue, lobortis mattis, laoreet in, varius at, +nisi. Nunc gravida. Phasellus faucibus. In hac habitasse platea +dictumst. Integer tempor lacus eget lectus. Praesent fringilla augue +fringilla dui. +.TOC +.\" Local Variables: +.\" mode: nroff +.\" End: +.\" vim: filetype=groff: diff --git a/contrib/mom/examples/elvis_syntax b/contrib/mom/examples/elvis_syntax new file mode 100644 index 0000000..b5735bf --- /dev/null +++ b/contrib/mom/examples/elvis_syntax @@ -0,0 +1,96 @@ +" Copyright (C) 2004-2020 Free Software Foundation, Inc. +" +" Copying and distribution of this file, with or without modification, +" are permitted in any medium without royalty provided the copyright +" notice and this notice are preserved. + +#Mom +language mom +extension .mom .tmac + +startword . +color startword normal + +inword _.' +color inword normal + +other initialpunct +mostly normal + +backslash none + +color args like fixed +color braces like char +color brackets like underlined +color chars like emphasized +color decimals like number +color ellipsis normal +color escapes like keyword +color math like cursor +color misc like string +color operators like string +color parens like comment +color reg_string like math +color tmac_escapes like keyword +color single_slash like char + +font args DA DE EN ES FR IT NL NO PT SV +font args DEFAULT CHAPTER NAMED LETTER +font args TYPESET TYPEWRITE +font args FINAL DRAFT +font args BLOCK QUAD +font args LEFT RIGHT CENTER CENTRE JUSTIFY TOP BOTTOM L R C J +font args OFF QUIT END EXIT DONE NO ALL +font args PAGE NUMBER STAR +font args LETTER LEGAL EXECUTIVE LEDGER TABLOID QUARTO FOLIO +font args 10x14 A3 A4 A5 B4 B5 +font args SINGLESPACE +font args FACTOR +font args DASH BULLET ALPHA DIGIT USER +font args RGB CYM CMYK GRAY GREY +font args COND CONDX EXT EXTX SUP SUPX CONDSUP CONDSUPX EXTSUP EXTSUPX +font args BOLDER BOLDERX SLANT SLANTX +font args UP DOWN BCK FWD BU BP FU FP +font args ROM IT BD BDI PREV +font args ST +font args SUSPEND RESUME + +prefix { \{ \{\ +font braces { \{ \{\ +prefix [ ] +font brackets [ ] +prefix \(bu \(co \(ct \(de \(dg \(di \(em \(en \(mu \(pl \(rg \(sc \(sq \(lq \(rq +font chars \(bu \(co \(ct \(de \(dg \(di \(em \(en \(mu \(pl \(rg \(sc \(sq \(lq \(rq +prefix \(14 \(12 \(34 \(+- +font chars \(14 \(12 \(34 \(+- +prefix \fR \fB \fI \fP \f0 \f1 \f2 \f3 +font chars \fR \fB \fI \fP \f0 \f1 \f2 \f3 +prefix .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 +font decimals . .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 +prefix \/ \/. \/? \/! \/, \/; \/: +font escapes \/ \/. \/? \/! \/, \/; \/: +prefix \, \,. \,? \,! \,, \,; \,: +font escapes \, \,. \,? \,! \,, \,; \,: +prefix \~ \0 \: \| \^ \& \% \! +font escapes \~ \0 \: \| \^ \& \% \! +prefix \b \c \C \d \D \e \f \f( \h \l \L \p \r \s \s+ \s- \S \u \v \w +font escapes \b \c \C \d \D \e \f \f( \h \l \L \p \r \s \s+ \s- \S \u \v \w +prefix ... +font ellipsis ... +prefix + - * / = == < > <= >= <? >? % +font math + - * / = == < > <= >= <? >? % +prefix | +font misc | +prefix ! : & +font operators ! : & +prefix ( ) +font parens ( ) +prefix # * $ +font reg_string # * $ +prefix \n \* \[ +font single_slash \n \* \[ +prefix \\n \\* \\$ +font tmac_escapes \\n \\* \\$ + +comment \# +comment \" diff --git a/contrib/mom/examples/elvis_syntax.new b/contrib/mom/examples/elvis_syntax.new new file mode 100644 index 0000000..5dadecc --- /dev/null +++ b/contrib/mom/examples/elvis_syntax.new @@ -0,0 +1,116 @@ +" Copyright (C) 2004-2020 Free Software Foundation, Inc. +" +" Copying and distribution of this file, with or without modification, +" are permitted in any medium without royalty provided the copyright +" notice and this notice are preserved. + +" Steve Kirkendall has thoughtfully reworked elvis's syntax +" highlighting so that it now supports nroff constructs like \fBword +" and \(emword, with \fB and \(em being highlighted while "word" is +" not. +" +" There are some other enhancements as well, making it possible +" to have any word beginning with punctuation (i.e. groff +" requests) highlighted. I've decided to take advantage of these +" improvements, which apply to elvis-2.2h onwards, and write a new +" simplified set of syntax highlighting rules for mom. Just plug +" this file at the end of /etc/elvis/elvis.syn to use them. +" +" If you're using an older version of elvis, stick with the +" highlighting rules in the files elvis_syntax. + +#Mom +language mom +extension .mom .tmac + +startword . +color startword normal + +inword _.' +color inword normal + +other initialpunct +mostly normal + +backslash none + +color args like fixed +color braces like char +color brackets like underlined +color chars like emphasized +color decimals normal +color ellipsis normal +color escapes like keyword +color math like cursor +color misc like string +color operators like string +color parens like comment +color reg_string like math +color tmac_escapes like keyword +color single_slash like char + +font args DA DE EN ES FR IT NL NO PT SV +font args DEFAULT CHAPTER NAMED LETTER +font args TYPESET TYPEWRITE +font args FINAL DRAFT +font args BLOCK QUAD +font args LEFT RIGHT CENTER CENTRE JUSTIFY TOP BOTTOM L R C J +font args OFF QUIT END EXIT DONE NO ALL +font args PAGE NUMBER STAR LINE +font args LETTER LEGAL EXECUTIVE LEDGER TABLOID QUARTO FOLIO +font args 10x14 A3 A4 A5 B4 B5 +font args SINGLESPACE +font args FACTOR +font args DASH BULLET ALPHA DIGIT USER ROMAN roman alpha +font args SUSPEND RESUME +font args RGB CYM CMYK GRAY GREY +font args COND CONDX EXT EXTX SUP SUPX CONDSUP CONDSUPX EXTSUP EXTSUPX +font args BOLDER BOLDERX SLANT SLANTX +font args UP DOWN BCK FWD BU BP FU FP FN_MARK EN_MARK +font args ROM IT BD BDI PREV +font args ST +font args COVER DOC_COVER +font args COVERTITLE DOCTITLE TITLE CHAPTER CHAPTER_TITLE CHAPTER+TITLE SUBTITLE +font args AUTHOR DOCTYPE COPYRIGHT MISC +font args NULL BLANKPAGE NOBREAK + +prefix { \{ \} \{\ } +font braces { \{ \} \{\ } +prefix [ ] +font brackets [ ] +prefix \(bu \(co \(ct \(de \(dg \(di \(em \(en \(mu \(pl \(rg \(sc \(sq \(lq \(rq +font chars \(bu \(co \(ct \(de \(dg \(di \(em \(en \(mu \(pl \(rg \(sc \(sq \(lq \(rq +prefix \(14 \(12 \(34 \(+- +font chars \(14 \(12 \(34 \(+- +prefix \fR \fB \fI \fP \f0 \f1 \f2 \f3 +font chars \fR \fB \fI \fP \f0 \f1 \f2 \f3 +prefix .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 +font decimals . .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 +prefix \/ \/. \/? \/! \/, \/; \/: +font escapes \/ \/. \/? \/! \/, \/; \/: +prefix \, \,. \,? \,! \,, \,; \,: +font escapes \, \,. \,? \,! \,, \,; \,: +prefix \~ \0 \: \| \^ \& \% \! +font escapes \~ \0 \: \| \^ \& \% \! +prefix \b \c \C \d \D \e \f \f( \h \l \L \p \r \s \s+ \s- \S \u \v \w +font escapes \b \c \C \d \D \e \f \f( \h \l \L \p \r \s \s+ \s- \S \u \v \w +prefix ... +font ellipsis ... +prefix + - * / = == < > <= >= <? >? % +font math + - * / = == < > <= >= <? >? % +prefix | +font misc | +prefix ! : & +font operators ! : & +prefix ( ) +font parens ( ) +prefix # * $ +font reg_string # * $ +prefix \n \* +font single_slash \n \* +prefix \\n \\* \\$ +font tmac_escapes \\n \\* \\$ + +character \]' +comment \# +comment \" diff --git a/contrib/mom/examples/letter.mom b/contrib/mom/examples/letter.mom new file mode 100644 index 0000000..6e1a0c0 --- /dev/null +++ b/contrib/mom/examples/letter.mom @@ -0,0 +1,46 @@ +.\" -*- mode: text; coding: utf-8; -*- +\# +\# Copyright (C) 2004-2020 Free Software Foundation, Inc. +\# +\# Copying and distribution of this file, with or without modification, +\# are permitted in any medium without royalty provided the copyright +\# notice and this notice are preserved. +\# +.AUTHOR "Yannick P. Guique" +.DOCTYPE LETTER +.PRINTSTYLE TYPESET +.START +.DATE +August 25, 2013 +.TO +GUILLAUME BARRIÈRES +Minidoux Corporation +5000 Pannes Drive +Redmond, Virginia +USA +.FROM +Y.P. GUIQUE +022 Umask Road +St-Sauveur-en-dehors-de-la-mappe, Québec +CANADA +.GREETING +Dear Mr. Barrières, +.PP +It has come to my attention that you have been lobbying the +US government to prohibit the use of open source software by +endeavouring to outlaw so-called "warranty free" applications. +.PP +I feel it is my duty to inform you that the success of your +operating system with its embedded web browser relies heavily +on open source programs and protocols, most notably TCP/IP. +.PP +Therefore, in the interests of your corporation's fiscal health, +I strongly advise that you withdraw support for any US +legislation that would cripple or render illegal open source +development. +.CLOSING +Sincerely, +.\" Local Variables: +.\" mode: nroff +.\" End: +.\" vim: filetype=groff: diff --git a/contrib/mom/examples/mom-pdf.mom b/contrib/mom/examples/mom-pdf.mom new file mode 100644 index 0000000..15cf6df --- /dev/null +++ b/contrib/mom/examples/mom-pdf.mom @@ -0,0 +1,620 @@ +.\" -*- mode: text; coding: utf-8; -*- +.\" +.\" Copyright (C) 2012-2020 Free Software Foundation, Inc. +.\" +.\" This file is part of mom, which is part of groff, a free software +.\" project. +.\" +.\" You can redistribute it and/or modify it under the terms of the +.\" GNU General Public License as published by the "Free Software + \" Foundation", version\~2. +.\" +.\" The license text is available on the internet at +.\" <http://www.gnu.org/licenses/gpl-2.0.html> +.\" +.PAPER A4 +.\" Reference macros (metadata) +.TITLE "Producing PDFs" "with groff and mom" +.PDF_TITLE "\*[$TITLE] +.COPYRIGHT "20\*[BU3]1\*[BU2]5, 20\*[BU3]1\*[BU2]7 Free Software Foundation +.AUTHOR "Deri James" "\*[UP .5p]and" "Peter Schaffter" +.\" Cover author style +.COVER_AUTHOR_STYLE \ + LEAD 15 \ + SPACE -.5v +.\" Docheader author style +.AUTHOR_STYLE \ + LEAD 14 \ + SPACE -.75 +.ATTRIBUTE_STRING "" \" Don't print 'by' +.\" +.PDF_BOOKMARKS_OPEN 2 +.\" Formatting style, margins +.PRINTSTYLE TYPESET +.L_MARGIN 2.5c +.R_MARGIN 2.5c +.B_MARGIN 2.5c +.\" General defaults +.FAM H +.FT R +.PT_SIZE 10.5 +.AUTOLEAD 3 +.PARA_INDENT 0 \" No indent because we're spacing paragraphs. +.COVERTEXT +.SP .5v +.QUAD CENTER +.HY off +.IB 8P +.\" Copyright notice +This file is part of groff. +.SP .5v +Groff is free software. You can redistribute it +and\*[FU3]/or modify it under the terms of the GNU +General Public License as published by the +Free Software Foundation, either version 3 +of the License, or (at your option) any later +version. +.SP .5v +You should have received a copy of the GNU +General Public License along with this program. +If not, see: +.SP .25v +.PDF_LINK_COLOR 0.0 0.3 0.9 +.PDF_WWW_LINK http://www.gnu.org/licenses/ +.IQ CLEAR +.HY +.COVERTEXT end +.\" Cover and page header +.COVER TITLE AUTHOR COPYRIGHT COVERTEXT +.HEADER_LEFT "James, Schaffter" +.\" +.COVER_LEAD +3.5 +.DOCHEADER_LEAD +3.5 +.\" Color for code snippets +.NEWCOLOUR dark-grey RGB #343434 +.\" Make QUOTE look like CODE +.QUOTE_STYLE \ + FAMILY C \ + FONT B \ + SIZE +1.5 \ + COLOR dark-grey \ + INDENT 9p +.\" +.CODE_STYLE \ + FONT B \ + SIZE 115 \ + COLOR dark-grey +.CONDENSE 87 \" Condense percentage used in COD +.\" +.HEADING_STYLE 1 \ + NUMBER \ + FONT B \ + SIZE +1 \ + BASELINE_ADJUST \n[.v]/5 +.HEADING_STYLE 2 \ + NUMBER \ + FONT I \ + SIZE +.25 \ + BASELINE_ADJUST \n[.v]/5 +.\" +.FOOTNOTE_SIZE -1 +.\" Character definitions for program names, opts, etc. +.char \[ghostscript] \*[BD]ghostscript\*[PREV] +.char \[groff] \*[BD]groff\*[PREV] +.char \[gropdf] \*[BD]gropdf\*[PREV] +.char \[grops] \*[BD]grops\*[PREV] +.char \[man] \*[BD]man\*[PREV] +.char \[-mom] \*[BD]\-mom\*[PREV] +.char \[mom] \*[BD]mom\*[PREV] +.char \[-mpdfmark] \*[BD]\-mpdfmark\*[PREV] +.char \[ms] \*[BD]ms\*[PREV] +.char \[pdfmom] \*[BD]pdfmom\*[PREV] +.char \[pdfroff] \*[BD]pdfroff\*[PREV] +.char \[-P-e] \*[BD]\-P\-e\*[PREV] +.char \[-P-p<papersize>] \*[BD]\-P\-p<papersize>\*[PREV] +.char \[ps2pdf] \*[BD]ps2pdf\*[PREV] +.char \[psselect] \*[BD]psselect\*[PREV] +.char \[-T] \*[BD]\-T\*[PREV] +.char \[-Tpdf] \*[BD]\-Tpdf\*[PREV] +.char \[-Tps] \*[BD]\-Tps\*[PREV] +.\" Strings for inline code +.ds cod \E*[CODE]\&\E*[COND] +.ds codx \E*[CONDX]\E*[CODE off]\& +.\" Paragraph spacing +.PARA_SPACE .3v +.\" Wrapper around QUOTE +.de COD +. QUOTE +. nop \*[COND]\\$*\*[CONDX] +. QUOTE OFF +.. +.\" Table of contents +.TOC_PADDING 2 +.SPACE_TOC_ITEMS +.AUTO_RELOCATE_TOC +.TOC_ENTRY_STYLE 2 FONT I +.TOC_LEAD 14.5 ADJUST +.TOC_PADDING 1 +.\" +.DOCHEADER_ADVANCE 5c \" Begin docheader this distance down from top of page +.\" +.NO_SHIM \" Use flex spacing +.START +.\" +.SP .5c +.HEADING 1 NAMED intro "Introduction" +.PP +.RW .12 +PDF documents are intended to be "electronic paper,\*[BU6]" and, as +such, take advantage of the digital medium in ways that PostScript +documents do not. Chief amongst these are clickable links that +point to named destinations, either within the documents themselves +.PDF_LINK internal PREFIX ( SUFFIX ) "internal links" +or to remote web pages +.PDF_LINK external PREFIX ( SUFFIX ), "external links" +and the generation of a clickable document outline that appears in +the Contents panel of most PDF viewers. +.PP +.RW .01 +Using \[groff] and \[mom] to produce PDF documents results in the +automatic generation of clickable document outlines (discussed +below, +.PDF_LINK outline SUFFIX ), + +and, if the \*[cod]TOC\*[codx] macro is included in the source file, +entries in the printable table of contents can be clicked on as well +when the document is viewed at the screen (see +.PDF_LINK toc SUFFIX ). + +.RW 0 +.HEADING 1 NAMED generating "Using groff to generate PDF files" +.PP +Groff provides more than one way to generate PDF documents from +files formatted with the \[mom] macros. One is to call \[groff] +directly, either with +.COD "groff [\-Tps] \-mom \-m pdfmark doc.mom | ps2pdf \- doc.pdf +which pipes output from the \[grops] PostScript driver through +\[ps2pdf], or +.COD "groff \-Tpdf \-mom doc.mom > doc.pdf +which uses the native PDF driver, \[gropdf]. Alternatively, one may +call the wrapper +.COD "pdfroff \-mom \-mpdfmark \-\-no-toc doc.mom > doc.pdf +A fourth, preferred method is to use +.PDF_LINK pdfmom SUFFIX , "\[pdfmom]" +which is strongly recommended since it implements the full range +of PDF features available in \[mom]. +.COD "pdfmom doc.mom > doc.pdf +One reason to prefer using the native PDF driver (via \[pdfmom] or +\[-Tpdf]) is that papersizes set within mom source files (see +.PDF_WWW_LINK https://www.schaffter.ca/mom/momdoc/typesetting.html#page-setup-intro SUFFIX ) \ + "paper and page setup macros" +do not require a corresponding \[-P-p<papersize>] flag on the +command line. +.PP +There are other minor differences between the methods, discussed +.PDF_LINK pdf-diff SUFFIX . "here" +.RW 0 +.HEADING 1 NAMED links "Creating PDF links with mom" +.PP +Often, but not always, links in the body of a PDF document point +to headings elsewhere in the same document. Creating these links +is a simple process. First, identify the places to link to +("destinations"), then link to them from any place in the document. +.HEADING 2 NAMED naming "Creating destination points at headings" +.PP +The first step in creating links to a heading is to give the +heading a unique destination name. With mom, this is done by +adding \*[cod]NAMED\|<id>\*[codx] to the HEADING macro, where +\*[cod]<id>\*[codx] is a unique identifier for the heading. For +example, +.PDF_TARGET intro-ex +.COD "\&.HEADING 1 NAMED intro \[dq]Introduction\[dq]" +would, in addition to printing the head in the body of the document, +identify the introduction by the unique id, "intro"\*[BU6]. This +id, or name, can then be used to create links to the introduction +from any part of the document. +.PP +Furthermore, \*[cod]NAMED\|<id>\*[codx] stores the text of the +heading for use later on when linking to it (see +.PDF_LINK internal SUFFIX ). + +If headings are being numbered, the heading number is prepended. +.HEADING 2 NAMED target "Creating destination points at arbitrary locations" +.PP +Any part of a document can be a link destination, not just headings. +For example, say you create a table that needs to be referred to +from other parts of the document. You'd identify the location of +the table by placing +.COD "\&.PDF_TARGET <id> \[dq]<text>\[dq]" +just above the table in the source file. As with +\*[cod]HEADING\*[codx], \*[cod]<id>\*[codx] is any unique name. +\*[cod]<text>\*[codx] is optional. \*[cod]<id>\*[codx] can now be linked +to from anywhere in the document. +.SP 2.5p +.HEADING 2 NAMED internal "Creating internal links" +.PP +Internal links are clickable text areas that allow you to jump to +named destinations within a document. (See +.PDF_LINK external "here" +for a description of external links.) +.PP +Internal links are created with the macro \*[cod]PDF_LINK\*[codx], +which takes the form +.COD "\&.PDF_LINK <id> [PREFIX <text>] [SUFFIX <text>] \ +\[dq]<hotlink text>\[dq]" +where \*[cod]<id>\*[codx] is a named destination point elsewhere in +the document (see +.PDF_LINK naming + +and +.PDF_LINK target SUFFIX ). + +.PP +\*[cod]PREFIX\|<text>\*[codx] and \*[cod]SUFFIX\|<text>\*[codx], both or +either of which are optional, are printed around the clickable area +but do not form part of the link itself. +.PP +\*[cod]<hotlink text>\*[codx] is the text that should be clickable, +identifiable in the PDF document by the colour assigned to links +(see +.PDF_LINK colour SUFFIX ). + +.PDF_TARGET expando +.PP +If the hotlink text ends in \*[cod]\[dq]*\[dq]\*[codx]\*[BU9], +the asterisk is replaced by the text of the destination +point, assuming it's a heading. If the hotlink text ends in +\*[cod]\[dq]+\[dq]\*[codx]\*[BU9], the replacement text is surrounded +by quotes. +.PP +Using our +.PDF_LINK intro-ex SUFFIX , "HEADING example" +.RW .1 +above, the following invocation of \*[cod]PDF_LINK\*[codx] would +produce a click\%able link to the introduction: +.COD "\&.PDF_LINK intro PREFIX ( SUFFIX ). \[dq]see: +\[dq]" +.RW 0 +In the text, the link would look like this: +.PDF_LINK intro PREFIX ( SUFFIX ). "see: +" +.HEADING 2 NAMED external "Creating external links" +.PP +External links are clickable text areas whose destination is a +URL. Clicking on them causes a browser window to pop up with the +destination address. +.PP +The format of the macro to create external links is similar to the +one for creating internal links: +.COD "\&.PDF_WWW_LINK <url> [PREFIX <text>] [SUFFIX <text>] [\[dq]<hotlink text>\[dq]]" +\*[cod]<url>\*[codx] is any valid URL, usually a web address; +\*[cod]PREFIX\|<text>\*[codx] and \*[cod]SUFFIX\|<text>\*[codx] have +exactly the same meaning, as does \*[cod]<hotlink text>\*[codx], +which furthermore accepts the same expandos, \*[cod]\[dq]+\[dq]\*[codx] and +\*[cod]\[dq]*\[dq]\*[codx]. +.PP +.RW .1 +If no hotlink text is given, then \*[cod]<url>\*[codx] is +used as the text. If hotlink text is given and ends in +\*[cod]\[dq]*\[dq]\*[codx]\*[BU9], the asterisk is replaced by the +URL. If it ends in \*[cod]\[dq]+\[dq]\*[codx]\*[BU9], the URL is +surrounded by quotes. As an example, +.RW 0 +.COD "\&.PDF_WWW_LINK https://www.schaffter.ca/mom/momdoc/toc.html +would open mom's online documentation at +.PDF_WWW_LINK https://www.schaffter.ca/mom/momdoc/toc.html SUFFIX "." +The same, with \*[cod]\[dq]here\[dq]\*[codx] supplied as +hotlink text, lets you click +.PDF_WWW_LINK https://www.schaffter.ca/mom/momdoc/toc.html "here" +instead. +.HEADING 2 NAMED colour "Assigning a colour to links" +.PP +The colour of links is set with +.COD "\&.PDF_LINK_COLOR <xcolor> | <newcolor> | <r g b> | <#rrggbb> +where \*[cod]<xcolor>\*[codx] or \*[cod]<newcolor>\*[codx] are the names +of colours already initialized with +.PDF_WWW_LINK https://www.schaffter.ca/mom/momdoc/color.html#xcolor "XCOLOR" +or +.PDF_WWW_LINK https://www.schaffter.ca/mom/momdoc/color.html#newcolor SUFFIX . "NEWCOLOR" +If you prefer to define a new colour (using the RGB colour scheme), +enter it either as 3 numbers between +0.0 \*[UP 1p]\[->]\*[DOWN 1p] 1\*[BU4].0 +or as a 6 character hex string. Thus +.SP .5v +\*[FWD 6p]\*[cod].PDF_LINK_COLOR #ff0000\*[codx] +\ \*[SIZE -.5]and\*[SIZE]\ \" +\*[cod].PDF_LINK_COLOR 1.0 0 0\*[codx] +.SP .5v +both lead to mom using +.PDF_LINK_COLOR 1 0 0 +.PDF_LINK colour red +.PDF_LINK_COLOR +links. +.PP +The default colour can be restored by calling +\*[cod]PDF_LINK_COLOR\*[codx] with no parameter. +.FLOAT +.JUSTIFY +.BOX-NOTE 3P +\*[BD]Note:\*[PREV] +The decimal scheme for creating colours must be used if a file is to +be processed with +\[oq]\[groff]\~\[-Tps]\~\[-mpdfmark]\[cq], +\[oq]\[pdfroff]\[cq], or +\[oq]\[pdfmom]\~\[-Tps]\[cq]. +.IBQ +.FLOAT off +.SP .5v +.HEADING 1 NAMED outline "The PDF Outline" +.PP +Most PDF viewers provide a panel that displays a document's outline, +similar to a table of contents. Clicking on an entry navigates +directly to the appropriate place in the document. +.PP +Mom generates PDF outlines the same way she populates +her own table of contents: by intercepting calls to the +\*[cod]HEADING\*[codx] macro, as well as to the various title +and chapter macros used in namimg documents, and allocating each a +hierarchic level. +.PP +Covers, titles/chapters, and the table of contents are all +assigned to level 1\*[BU5]. Subsequent headings are assigned to +n\*[UP 1p]+\*[DOWN 1p]\*[BU4]1, where n is the level given to +\*[cod]HEADING\*[codx]. +.PP +.RW .22 +The PDF outline can sensibly recover from skipped or omitted heading +levels; the printed table of contents cannot. Users are therefore +advised to use headings in logical order, not for typographic +effects. +.RW 0 +.HEADING 2 NAMED open-close "Opening and closing levels +.PP +A level is said to be open if one or more levels beneath it is +visible in the PDF outline. Closed \%levels have at least one level +beneath them that is not visible unless the closed link is clicked. +It is common for only the first two levels to be open so the outline +doesn't look cluttered. +.PP +To establish which levels should be open by default when a document +loads, use +.COD "\&.PDF_BOOKMARKS_OPEN n +where \*[cod]n\*[codx] is a number specifying at which level all +subsequent ones should be closed. +.PP +If, at any point in the document, you specify +.COD "\&.PDF_BOOKMARKS_OPEN NO \e\[dq] or any other text argument +then all subsequent bookmarks will be closed until +\*[cod]PDF_BOOKMARKS_OPEN\*[codx] opens them again. +.HEADING 2 NAMED disabling "Suspending/disabling collection of outline entries +.PP +Suspending the collection of entries for the PDF outline is +accomplished with +.COD "\&.PDF_BOOKMARKS OFF +Mom's default is to collect entries, so if the command is placed at +the start of a document, it \%disables entry collection completely. +Elsewhere, it suspends collection until you re-enable it with +.COD "\&.PDF_BOOKMARKS \e\[dq] i.e. with no parameter +.SP -1 +.HEADING 2 NAMED pdf:title "The PDF window title" +.PP +While not strictly part of the PDF outline, the title of a document +can be displayed as the document viewer's window title. The macro +to accomplish this is +.COD "\&.PDF_TITLE\ \[dq]<window title>\[dq] +It can take any text, so the viewer window title need not be the +same as the document's title. +.FLOAT +.JUSTIFY +.BOX-NOTE 4P+8p +\*[BD]Note:\*[PREV] The macro, \*[cod]DOC_TITLE\*[codx], always +invokes \*[cod]PDF_TITLE\*[codx]. If this is not what you want, you +can remove the window title by issuing +.COD ".PDF_TITLE \[dq]\[dq] \e\[dq] ie. with a blank argument +.IBQ +.FLOAT off +\#.SP .5v +.HEADING 1 NAMED toc "Tables of Contents" +.RLD .5v +.HEADING 2 NAMED toc:gen "Generating a Table of Contents +.PP +.RW .1 +To generate a printable Table of Contents for any document, simply +insert the macro, \*[cod]TOC\*[codx], as the last line of the source +file. (Formatting of the printable Table of Contents is discussed in +detail in the +.PDF_WWW_LINK \ +https://www.schaffter.ca/mom/momdoc/tables-of-contents.html#top \ +SUFFIX ). "mom documentation" +When the file is processed and loaded in a viewer, entries in the +Table of Contents will be clickable links. +.RW 0 +.PP +Whichever link colour is active at the end of the document, prior to +\*[cod]TOC\*[codx], will be used for the \%Table of Contents +links. +.HEADING 2 NAMED toc:pos "Positioning the Table of Contents" +.PP +If \[groff]'s PostScript device (\[-Tps]) is used to process a mom +file, the Table of Contents is printed at the end of the document. +When this is not desirable, the PostScript output from \[groff] +must be processed with \[psselect] in order to place the TOC in the +preferred location. +.PP +When using mom and \[groff]'s native pdf device (via \[pdfmom] or +\[groff] \[-Tpdf]), positioning of the Table of Contents can be done +within the source file. +.PP +The command to control the placement of the TOC is +.COD "\&.AUTO_RELOCATE_TOC [<position>] +where the optional \*[cod]<position>\*[codx] can be one of these +keywords: +.LEFT +.IL 2P +.SP .25v +\*[SIZE -.7]TOP\*[FU2]\*[UP .5p]\c +.FOOTNOTE +\*[BD]Note:\*[PREV] Documents without a COVER or DOC_COVER require +the \*[cod]TOP\*[codx] argument. +.FOOTNOTE off +\*[IT]\*[SIZE +.2]\ +(ie. at the very start of the document)\*[SIZE -.2]\*[PREV] +BEFORE_DOCCOVER +AFTER_DOCCOVER +BEFORE_COVER +AFTER_COVER\*[SIZE +.7] +.SP .25v +.ILQ +.JUSTIFY +It is normally not necessary to supply a keyword, since +\*[cod]AUTO_RELOCATE_TOC\*[codx] places the TOC after the DOC_COVER, +if there is one, or the first COVER when no DOC_COVER is present. +In rare instances where it is desirable to place the TOC somewhere +else in the document, there are two low-level commands, +\*[cod].TOC_BEFORE_HERE\*[codx] +\ \*[SIZE -.5]and\*[SIZE]\ \" +\*[cod].TOC_AFTER_HERE\*[codx] +which place the TOC either before or after the current page. +.PP +These last two commands have a small catch: although the TOC will +appear where specified, the \%"Contents" entry in the PDF outline, +which observes a hierarchy of levels, will assign the TOC to +level\~\*[BU4]1\*[BU4], possibly disrupting the visual ordering of +levels in the outline. +.HEADING 1 NAMED simplify "pdfmom: Simplifying PDF output" +.PP +As explained in the section +.PDF_LINK generating SUFFIX , * +.RW .15 +there are two established methods +.RW 0 +for creating PDF files with \[groff]: the original method, ie. +passing the \[-Tps] and \[-mpdfmark] options to \[groff] (or using +\[pdfroff], which does this for you); or the newer \[-Tpdf], which +produces PDF files natively. +.HEADING 2 NAMED fwd:ref "The problem of forward references" +.PP +.EW .2 +Both methods encounter difficulties when dealing with forward +references; that is, when a link \*[IT]\%earlier\/\*[PREV] in a +document refers to a destination \*[IT]later\/\*[PREV] in the +document and the link text terminates +.EW 0 +with one of the expandos, +\*[cod]\[dq]*\[dq]\*[codx] or \*[cod]\[dq]+\[dq]\*[codx] +(explained +.PDF_LINK expando SUFFIX ). "here" +Mom doesn't know what text to put in the expando because it has not +yet been defined. This means that \[groff] must be run multiple +times to find the unknown text. +.PP +.EW .2 +The program \[pdfroff] exists to handle these multiple runs, but it +imposes some limitations on the PDF features available with \[mom]. +.EW 0 +.HEADING 2 NAMED pdfmom "pdfmom" +.PP +\[pdfmom] performs the same function as \[pdfroff], and is the +preferred, trouble-free way to generate PDF documents from a mom +source file. Like \[pdfroff], it is a frontend to \[groff] and +accepts all the same options (see \[man]\~\[groff]). +.PP +.EW .2 +Called as-is, \[pdfmom] accepts all the same options as \[groff], +and requires no additional flags. PDF generation is performed by +\[gropdf], \[groff]'s native PDF driver: +.EW 0 +.COD "pdfmom doc.mom [groff opts] > doc.pdf +If a \[-Tps] option is supplied, \[pdfmom] hands control over to +\[pdfroff], and both \[groff] and \[pdfroff] options may given. +The resulting PDF is produced from PostScript output fed into +\[ghostscript]. +.COD "pdfmom \-Tps [pdfroff opts [groff opts]] doc.mom > doc.pdf +For either invocation, it is not necessary to add \[-mom] or +\[-mpdfmark], as these are implied. +.PP +.RW .04 +If Encapsulated PostScript or plain PostScript images have been +embedded in a document with +.PDF_WWW_LINK https://www.schaffter.ca/mom/momdoc/images.html#pspic SUFFIX , \ + "PSPIC" +the \[-Tps] option must be used. In most other cases, \[pdfmom] +with no \[-T] flag is preferable. +.RW 0 +.HEADING 2 NAMED papersize "Setting papersize within a source file" +.PP +A significant convenience afforded by using \[pdfmom] (or \[groff] +with the \[-Tpdf] flag) is that papersizes or page dimensions set +within mom source files (see +.PDF_WWW_LINK https://www.schaffter.ca/mom/momdoc/typesetting.html#page-setup-intro \ + SUFFIX ) "paper and page setup macros" +do not require a corresponding \[-P-p<papersize>] option on the +command line. It is even possible to create documents with +unequal-sized pages. +.HEADING 2 NAMED pdf-diff \ +"Differences between pdfmom and pdfroff" +.PP +Several features described in this manual are not available when +the \[-Tps] option is given to \[pdfmom], nor when using \[pdfroff] +or \[groff]\~\[-Tps]\~\[-mpdfmark]: +.SP .25v +.QUAD LEFT +.HYPHENATION off +.IB 16p +.LIST +.ITEM +.PDF_LINK toc:pos "Relocation of the Table of Contents" +is not supported. The TOC appears at the end of the document; +\[psselect] must be used to re-order pages. +.ITEM +If a link crosses a page boundary, it will stop being a clickable +hotspot on subsequent pages. +.ITEM +When establishing whether PDF outline levels are +.PDF_LINK open-close SUFFIX , "open or closed" +only the numerical parameter to \*[cod]PDF_BOOKMARKS_OPEN\*[codx] has +any effect. +.ITEM +.PDF_LINK colour "PDF_LINK_COLOR" +only accepts colour definitions in decimal notation. +.LIST OFF +.IQ +.HEADING 1 \ +"Comparison of \-Tps\*[FU4]/\*[FU2]\-mpdfmark with \-Tpdf\*[FU4]/\*[FU2]\-mom +.SP .25v +.IB +\[-Tps]\*[FU4]/\*[FU2]\[-mpdfmark] +.LIST +.SHIFT_LIST 1P+6p +.ITEM +does not support all the features described here +.ITEM +accepts images and graphics embedded with PSPIC +.LIST OFF +.IQ +.ALD .4v +.IB +\[-Tpdf]\*[FU4]/\*[FU2]\[-mom] +.LIST +.SHIFT_LIST 1P+6p +.ITEM +facilitates embedding fonts directly in the PDF file (if the +\[-P-e] flag is given on the command line) +.ITEM +sets papersize from within the source file, circumventing the need +for the papersize flag (\[-P-p<papersize>]) on the command line +.ITEM +is not compatible with +.PDF_WWW_LINK \ + https://www.schaffter.ca/mom/momdoc/docprocessing.html#printstyle \ + "PRINTSTYLE TYPEWRITE" +underlining (e.g., of italics) +.ITEM +generally produces larger files; these can be reduced by piping +the output through \[ps2pdf]\*[B] +.sp -1.25v +.BOX OUTLINED black SHADED grey90 WEIGHT 1p INSET 6p +.JUSTIFY +\*[BD]Note:\*[PREV] Owing to a known bug, PDF files piped through +\[ps2pdf] lose some of their metadata, notably the window title set +with \*[cod]PDF_TITLE\*[codx]. +.BOX STOP +.SP -.25v +.LIST OFF +.TOC +.\" Local Variables: +.\" mode: nroff +.\" End: +.\" vim: filetype=groff: diff --git a/contrib/mom/examples/mom.vim b/contrib/mom/examples/mom.vim new file mode 100644 index 0000000..fe8debf --- /dev/null +++ b/contrib/mom/examples/mom.vim @@ -0,0 +1,140 @@ +" Copyright (C) 2012-2020 Free Software Foundation, Inc. +" +" Copying and distribution of this file, with or without modification, +" are permitted in any medium without royalty provided the copyright +" notice and this notice are preserved. + +" Vim syntax file +" Language: mom +" Maintainer: Peter Schaffter (peter@schaffter.ca) +" Last Change: So 06 Mr 2005 17:28:13 CET +" Filenames: *.mom +" URL: http://www.cvjb.de/comp/vim/mom.vim +" Note: Remove or overwrite troff syntax for *.mom-files with filetype/filedetect. +" Version: 0.1 +" +" Mom: Macro set for easy typesetting with troff/nroff/groff. + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Mom is case sensitive +syn case match + +" Synchronization, I know it is a huge number, but normal texts can be +" _very_ long ;-) +syn sync lines=1000 + +" Characters allowed in keywords +if version >= 600 + setlocal iskeyword=@,#,$,%,48-57,.,@-@,_,\\,{,},192-255 +else + set iskeyword=@,#,$,%,48-57,.,@-@,_,\\,{,},192-255 +endif + +" mom/groff macros and requests (the initial dot or single-quote) +" +" Highlighting carries through to EOL; macro names, requests and +" arguments are contained +syn match startRequest /^\s*\(\.\|'\)\s*.*$/ contains=momMacro,groffCommentLine,groffRequest,momRegister,groffNoLineBreak,momInteger,groffUnit,momString,momSpecialParam,groffDelimiter,groffRegister,groffPreprocessor,groffBraces + +" mom macros +syn region momMacro start=/^\s*\(\.\|'\)\s*\zs[A-Z0-9_(){}\[\]]\+/ end=/\s\+\|$/ + +" mom registers and strings +syn match momRegister /\(\$\|#\)[A-Za-z][_0-9A-Za-z]*/ contains=momRegisterStart + +syn match momRegisterStart /#\|\$/ contained + +" mom comment region +syn region momCommentRegion matchgroup=startRequest start='\<\.\(COMMENT\)\|\(SILENT\)\>' end='\<\.\(COMMENT\s\+OFF\)\|\(SILENT\s\+OFF\)\>' skip='$' + +" groff requests +syn match groffRequest /^\s*\(\.\|'\)\s*\zs[a-z0-9]\+/ + +" groff comment region +syn region groffCommentLine start='\(\\!\)\|\(\\"\)\|\(\\#\)' end='$' contains=momTodo +syn region groffCommentRegion start="^\s*\.\s*ig" matchgroup=startRequest end="^\.\.$" contains=startRequest + +" Preprocessor requests +syn match groffPreprocessor /[^A-Z]\zs\(EQ\s*$\|EN\s*$\|GS\s*$\|GE\s*$\|GF\s*$\|PS\s*$\|PE\s*$\|R1\s*$\|R2\s*$\|TS\s*$\|TE\s*$\|TH\s*$\)/ contained +syn match groffPreprocessor /[^A-Z]\zs\(G1\s*$\|G2\s*$\|IS\s*$\|IE\s*$\|cstart\s*$\|cend\s*$\)/ contained + +" Preprocessor requests for refer +syn match groffPreprocessor /\(\[\s*$\|\]\s*$\)/ contained + +" Quoted strings +syn region momString matchgroup=startRequest start='"\zs' end='"\|$' contains=groffNoLineBreak,groffGreek,groffSpecialChar,momInteger,momFloatEN,momFloatDE,momBracketRegion,momBracketError,momSpecialMove contained + +" Special characters +syn match groffSpecialChar '\\\((\|\[\)[-+A-Za-z0-9*<>=~!\/]\+\]*' + +" Greek symbols +syn match groffGreek '\\(\*[A-Za-z]\+' + +" Hyphenation marks +syn match groffHyphenation '\\%' + +" Masking of line breaks +syn match groffNoLineBreak /\\\s*$/ contains=groffBraces + +" groff number and string register delimiters +syn region groffDelimiter start=/\\*\\\(n+*\|\*\)\((\|\[\)\</ end=/\(\s\|\]\|$\)/ contains=momRegister,groffRegister,groffOperators + +" groff registers +syn match groffRegister /\\\((\|\[\)\zs\.*[a-z]\+/ + +" groff operators +syn match groffOperators /\(+\|-\|\/\|\*[^[]\)/ contained + +" Units (of measure) +syn match groffUnit '[-+]\=\([0-9]\|]\)\+\zs[icPpvusfz]\=' contained + +" Braces +syn match groffBraces /\(\\{\|\\}\)/ contained + +" Error +syn match groffError '\\\[ \+[[:print:]]\+ \+[[:print:]]\+\]' + +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_mom_syn_inits") + if version < 508 + let did_mom_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + +HiLink groffError Error +HiLink groffBraces darkmagenta +HiLink groffCommentLine darkcyan +HiLink groffCommentRegion cyan +HiLink groffDelimiter cyan +HiLink groffGreek cyan +HiLink groffHyphenation cyan +HiLink groffNoLineBreak cyan +HiLink groffOperators white +HiLink groffPreprocessor brown +HiLink groffRegister darkgreen +HiLink groffRequest magenta +HiLink groffSpecialChar darkcyan +HiLink groffUnit brown +HiLink momCommentRegion darkcyan +HiLink momMacro red +HiLink momRegister green +HiLink momRegisterStart magenta +HiLink momSpecialParam red +HiLink momString white +HiLink startRequest yellow + delcommand HiLink +endif + +let b:current_syntax = "mom" + +" vim:ts=8:sw=4:nocindent:smartindent: diff --git a/contrib/mom/examples/mon_premier_doc.mom b/contrib/mom/examples/mon_premier_doc.mom new file mode 100644 index 0000000..3497c06 --- /dev/null +++ b/contrib/mom/examples/mon_premier_doc.mom @@ -0,0 +1,140 @@ +.\" -*- mode: text; coding: utf-8; -*- +\# +\# Copyright (C) 2015-2020 Free Software Foundation, Inc. +\# +\# Copying and distribution of this file, with or without modification, +\# are permitted in any medium without royalty provided the copyright +\# notice and this notice are preserved. +\# +\# A very simple document with basic elements: headings, paragraphs, +\# lists, table of contents and clickable links. +\# +.TITLE "Mon Premier Document" +.AUTHOR "Cicéron" +. +.DOCTYPE DEFAULT +.PRINTSTYLE TYPESET +. +.PAPER A4 +.DOC_COVERTITLE "Mon Premier Document" +.DOC_COVER DOC_COVERTITLE AUTHOR +.COVER TITLE +.ATTRIBUTE_STRING "par" +.TOC_HEADER_STRING "Table des matières" +.AUTO_RELOCATE_TOC +.HEADING_STYLE 1 NUMBER +.HEADING_STYLE 2 NUMBER +.NO_SHIM +.START +\# +.HEADING 1 "Les différentes versions" +.PP +Voir également le chapitre sur +.PDF_LINK evolution "les évolutions" +possibles. +.HEADING 2 "La version originale" +.PP +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non +risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, +ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula +massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci +nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl +sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, +consequat in, pretium a, enim. Pellentesque congue. Ut in risus +volutpat libero pharetra tempor. Cras vestibulum bibendum augue. +Praesent egestas leo in pede. Praesent blandit odio eu enim. +Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum +primis in faucibus orci luctus et ultrices posuere cubilia Curae; +Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. +Maecenas adipiscing ante non diam sodales hendrerit. +.PP +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non +risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, +ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula +massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci +nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl +sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, +consequat in, pretium a, enim. Pellentesque congue. Ut in risus +volutpat libero pharetra tempor. Cras vestibulum bibendum augue. +Praesent egestas leo in pede. Praesent blandit odio eu enim. +Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum +primis in faucibus orci luctus et ultrices posuere cubilia Curae; +Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. +Maecenas adipiscing ante non diam sodales hendrerit. +.PP +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non +risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, +ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula +massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci +nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl +sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, +consequat in, pretium a, enim. Pellentesque congue. Ut in risus +volutpat libero pharetra tempor. Cras vestibulum bibendum augue. +Praesent egestas leo in pede. Praesent blandit odio eu enim. +Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum +primis in faucibus orci luctus et ultrices posuere cubilia Curae; +Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. +\# +.HEADING 2 "La version moderne" +.PP +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non +risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, +ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula +massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci +nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl +sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, +consequat in, pretium a, enim. Pellentesque congue. Ut in risus +volutpat libero pharetra tempor. Cras vestibulum bibendum augue. +Praesent egestas leo in pede. Praesent blandit odio eu enim. +Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum +primis in faucibus orci luctus et ultrices posuere cubilia Curae; +Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. +Maecenas adipiscing ante non diam sodales hendrerit. +.PP +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non +risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, +ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula +massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci +nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl +sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, +consequat in, pretium a, enim. Pellentesque congue. Ut in risus +volutpat libero pharetra tempor. Cras vestibulum bibendum augue. +Praesent egestas leo in pede. Praesent blandit odio eu enim. +Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum +primis in faucibus orci luctus et ultrices posuere cubilia Curae; +Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. +Maecenas adipiscing ante non diam sodales hendrerit. +\# +.HEADING 1 NAMED evolution "Les évolutions du Lorem" +.PP +Trois axes de progressions sont envisageables: +.LIST +.SHIFT_LIST 3m +.ITEM +Lorem ipsum dolor sit amet. +.ITEM +Consectetur adipiscing elit. +.ITEM +.PDF_TARGET sed_non_risus +Sed non risus. +.LIST OFF +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non +risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, +ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula +massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci +nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl +sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, +consequat in, pretium a, enim. Pellentesque congue. Ut in risus +volutpat libero pharetra tempor. Cras vestibulum bibendum augue. +Praesent egestas leo in pede. Praesent blandit odio eu enim. +Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum +primis in faucibus orci luctus et ultrices posuere cubilia Curae; +Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. +Maecenas adipiscing ante non diam sodales hendrerit. +\# +.TOC_RV_SWITCH +.TOC +.\" Local Variables: +.\" mode: nroff +.\" End: +.\" vim: filetype=groff: diff --git a/contrib/mom/examples/penguin.pdf b/contrib/mom/examples/penguin.pdf new file mode 100644 index 0000000..5e969ea --- /dev/null +++ b/contrib/mom/examples/penguin.pdf @@ -0,0 +1,148 @@ +%PDF-1.4 +1 0 obj +<< +/Pages 2 0 R +/Type /Catalog +>> +endobj +2 0 obj +<< +/Type /Pages +/Kids [ 3 0 R ] +/Count 1 +>> +endobj +3 0 obj +<< +/Type /Page +/Parent 2 0 R +/Resources << +/XObject << /Im0 8 0 R >> +/ProcSet 6 0 R >> +/MediaBox [0 0 81 96] +/CropBox [0 0 81 96] +/Contents 4 0 R +/Thumb 11 0 R +>> +endobj +4 0 obj +<< +/Length 5 0 R +>> +stream +q +81 0 0 96 0 0 cm +/Im0 Do +Q +endstream +endobj +5 0 obj +29 +endobj +6 0 obj +[ /PDF /Text /ImageC ] +endobj +7 0 obj +<< +>> +endobj +8 0 obj +<< +/Type /XObject +/Subtype /Image +/Name /Im0 +/Filter [ /RunLengthDecode ] +/Width 81 +/Height 96 +/ColorSpace 10 0 R +/BitsPerComponent 8 +/SMask 15 0 R +/Length 9 0 R +>> +stream +ڄzkeXfmz~фp\QIGJMPXfvфw]PJIJIKHIKNwnKNKJIHIHJPgԄONHJIJHIQi_HIX{ׄQGJIOqgJHR}ڄmNKJHMrx[JMcڄXHKJTvwbJKOsڄsJHIJKISo{YWQKMHZڄ_GIJIJN[`OMKIMJIKtRIHIMJIKJNKNIMKIKJ]ڄJKIKIJKJIJKIJIOׄvMJHNRMJKORSMKIMsׄuKGKQYpmPKJKGHIZ~NIKJHIKouMH[s`MJjnXKJKN\tMG_ZXKJePYKJHIJXڄsMGJKJlJKIHIPڄsMWIJGKJIHOtIX`sVMOfXTKJHIHMڄsJ]HfvxNJogKJIHMzK\O\Z]jFMVn{hJIKSWMNizyKJKnkIJIJIMHԄROWKRJMKO^IJISHnvHIJIJFԄSFO|PIJGRGfhJIJMH]TqMKIJMIMڄe^bKMJIJN~gY]MKIJGIPlԄcKoQJKXBIYԄbNWSHvRM|gM[JKMqINxZHiRJKQmDEDIZvPM`KMJISMJIOtWKI_WKJIN^nNKIPKJITmzcXFk\KNHKJO\~Ņ]gTQNKIKIJK`ZJFQIJKIJIKMsŅmOPMW|GIKIJZ}΅˄zKI^KJIJIMOeSJHM_MKJKIJK˅_KJFXxPKIHIjхfPKJF\YKJKJIJKIJPo˅uNJndJGMINKJINOv΅\NHJWVOw`JIKJIHM]хsOJKJ]ChrXMNIKJOu݅]KNIYMrKNk]KNKJMdׅTOHqsQQJNI_SDEDOKJIR~jMs_KNH`ncwkJKJFMQ݅ZPYGHkPqgSKJKJNvׅwPM}eGNWxeltMIJIK`څdJW}IJmbqwiTQKNIKNTڅYHofBOYNPKGqINHIKt݅vMKPCduMJKG]GNIKcڅ`KetKHHKIJPRHIHJRyM{WKQMKNGHKJIKP{ON\sGKJKJHTHFIJHJMgڅJGfoHIMKIM`IGHIHMblKIesIYSKJmIJIHJIQ݅RMFi{KYRKMKyIJIHKJPhMKQrI^SKIwIJIJOڅbONbKnTKWrKJIO݅XIHX~O|VKHmXKJHIQ݅RJIWZ|PHJR{KNJKJKS݅VIM[uKPm{pWsgXPJMJdKc|iQKJIKJsxWzPhlIJIKJMptZ~݅P`nOJIKJOxqdJZcHMIKJRbQgKdJIJKJFfVQnoJKHKJRGMXXMFHGKYHKJTXQOIStxHKHCPjXIHMJHeKFJGIjJIGQHIKIJHJzgRXpVeJYWHF`^KHMIHqnJKJGHIwmPGKN~KNoq]NKJHKJTYHIHNJIGFDEDJHKGKJIJHYhIJIJIYlJIJHIJ\kHJHIKMKHGHJI^`MQR]hkj_WTQ_څwׅ݄΅݄΅݅ԅ +endstream +endobj +9 0 obj +7826 +endobj +10 0 obj +/DeviceRGB +endobj +11 0 obj +<< +/Filter [ /RunLengthDecode ] +/Width 81 +/Height 96 +/ColorSpace 10 0 R +/BitsPerComponent 8 +/Length 12 0 R +>> +stream +ڄzkeXfmz~фp\QIGJMPXfvфw]PJIJIKHIKNwnKNKJIHIHJPgԄONHJIJHIQi_HIX{ׄQGJIOqgJHR}ڄmNKJHMrx[JMcڄXHKJTvwbJKOsڄsJHIJKISo{YWQKMHZڄ_GIJIJN[`OMKIMJIKtRIHIMJIKJNKNIMKIKJ]ڄJKIKIJKJIJKIJIOׄvMJHNRMJKORSMKIMsׄuKGKQYpmPKJKGHIZ~NIKJHIKouMH[s`MJjnXKJKN\tMG_ZXKJePYKJHIJXڄsMGJKJlJKIHIPڄsMWIJGKJIHOtIX`sVMOfXTKJHIHMڄsJ]HfvxNJogKJIHMzK\O\Z]jFMVn{hJIKSWMNizyKJKnkIJIJIMHԄROWKRJMKO^IJISHnvHIJIJFԄSFO|PIJGRGfhJIJMH]TqMKIJMIMڄe^bKMJIJN~gY]MKIJGIPlԄcKoQJKXBIYԄbNWSHvRM|gM[JKMqINxZHiRJKQmDEDIZvPM`KMJISMJIOtWKI_WKJIN^nNKIPKJITmzcXFk\KNHKJO\~Ņ]gTQNKIKIJK`ZJFQIJKIJIKMsŅmOPMW|GIKIJZ}΅˄zKI^KJIJIMOeSJHM_MKJKIJK˅_KJFXxPKIHIjхfPKJF\YKJKJIJKIJPo˅uNJndJGMINKJINOv΅\NHJWVOw`JIKJIHM]хsOJKJ]ChrXMNIKJOu݅]KNIYMrKNk]KNKJMdׅTOHqsQQJNI_SDEDOKJIR~jMs_KNH`ncwkJKJFMQ݅ZPYGHkPqgSKJKJNvׅwPM}eGNWxeltMIJIK`څdJW}IJmbqwiTQKNIKNTڅYHofBOYNPKGqINHIKt݅vMKPCduMJKG]GNIKcڅ`KetKHHKIJPRHIHJRyM{WKQMKNGHKJIKP{ON\sGKJKJHTHFIJHJMgڅJGfoHIMKIM`IGHIHMblKIesIYSKJmIJIHJIQ݅RMFi{KYRKMKyIJIHKJPhMKQrI^SKIwIJIJOڅbONbKnTKWrKJIO݅XIHX~O|VKHmXKJHIQ݅RJIWZ|PHJR{KNJKJKS݅VIM[uKPm{pWsgXPJMJdKc|iQKJIKJsxWzPhlIJIKJMptZ~݅P`nOJIKJOxqdJZcHMIKJRbQgKdJIJKJFfVQnoJKHKJRGMXXMFHGKYHKJTXQOIStxHKHCPjXIHMJHeKFJGIjJIGQHIKIJHJzgRXpVeJYWHF`^KHMIHqnJKJGHIwmPGKN~KNoq]NKJHKJTYHIHNJIGFDEDJHKGKJIJHYhIJIJIYlJIJHIJ\kHJHIKMKHGHJI^`MQR]hkj_WTQ_څwׅ݄΅݄΅݅ԅ +endstream +endobj +12 0 obj +7826 +endobj +13 0 obj +endobj +14 0 obj +7826 +endobj +15 0 obj +<< +/Type /XObject +/Subtype /Image +/Name /Ma0 +/Filter [ /RunLengthDecode ] +/Width 81 +/Height 96 +/ColorSpace /DeviceGray +/BitsPerComponent 8 +/Length 16 0 R +>> +stream + +endstream +endobj +16 0 obj +125 +endobj +17 0 obj +<< +/Title (penguin.pdf) +/CreationDate (D:20120619194903) +/ModDate (D:20120619194903) +/Producer (ImageMagick 6.6.0-4 2012-04-30 Q16 http://www.imagemagick.org) +>> +endobj +xref +0 18 +0000000000 65535 f +0000000010 00000 n +0000000059 00000 n +0000000118 00000 n +0000000296 00000 n +0000000377 00000 n +0000000395 00000 n +0000000433 00000 n +0000000454 00000 n +0000008478 00000 n +0000008498 00000 n +0000008525 00000 n +0000016495 00000 n +0000016516 00000 n +0000016532 00000 n +0000016553 00000 n +0000016869 00000 n +0000016889 00000 n +trailer +<< +/Size 18 +/Info 17 0 R +/Root 1 0 R +>> +startxref +17067 +%%EOF diff --git a/contrib/mom/examples/penguin.ps b/contrib/mom/examples/penguin.ps new file mode 100644 index 0000000..2728930 --- /dev/null +++ b/contrib/mom/examples/penguin.ps @@ -0,0 +1,461 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner +%%Title: /home/peter/Pics/penguin_small2_bw.ps +%%CreationDate: Wed Apr 17 19:49:51 2002 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%Pages: 1 +%%BoundingBox: 0 0 81 96 +%%EndComments +%%BeginPreview: 90 107 1 107 +% aaaaaaaaabff555555555540 +% 5b6db6db5edbf6b6b6b6b680 +% aaaaaaaab7ff7ad555555540 +% b55555557eddeeaadadadac0 +% 56db6db6dbffdf56ab555540 +% aaaaaaaaffb755dab556ab40 +% 5b555b55f77ed7d556b56d40 +% aab6d56dbfffaaeb6ad5aa80 +% 6d555aabf6edd5daad56ab40 +% aadaab56ffdfaff555aab540 +% 5555b56bddfdff76dab55680 +% b6aaaaaffbbbbbed5556dac0 +% 55b6d6d5bff7f77aab6aaa80 +% aaaaaaaff77f6ffd6d555540 +% 5b555b576defeedaaaadb680 +% aab6d56dfbfd3bfdb56aaac0 +% 55555aab8eda4fb556ab5540 +% b6daab5743f40b7eaad56d80 +% 5555b56f037007fadaad5540 +% aaaaaaab11e0c6ed55b5aa80 +% 5b6d6db731b1a3feaaaab6c0 +% aaab55566963a3badb555540 +% 6d556aaf35d2e37d556daa80 +% aadaadb57959f3f6aaaab6c0 +% 5555aaab3403c37d6dab5540 +% 6daab5571428c3eeaab56a80 +% aab6d6db908007fd5556ad80 +% ad5555574000176edb6ad540 +% 55aaadab920003fd55555a80 +% b56db55b2000136eaaadab40 +% 56aaaaab400047fdb6d55540 +% aad556d7040112df555ab680 +% 6d5b6ab5d00447bb55ab5540 +% aaaaad57402915cf6d556a80 +% adb555ab9a9243a7aab6ad80 +% 5556dab6902485ead5aad540 +% b5aaab57854901d7daad5a80 +% 56b5556d929201bfab55ab40 +% aaab6d57004400fb756ab540 +% 6d6d55af0a1000efeaad5680 +% aaaaaaba0080005ef6d5aac0 +% adb5b6d60220003fdaaab540 +% 5556aabc0000003bfd5b5680 +% b5aab57c0000003f76d56ac0 +% 56b556e80000001beeaaad40 +% aaab6bf80000001f7f5b5580 +% 6d6d55b00000001dfbaab540 +% aaaaaff00000001bdf6d5680 +% 55b5b5b00000000ffbd5aac0 +% b6aaafe40000000f6ff55a80 +% aad6df7000000246fedaab40 +% 555ab6d000000003aff5b540 +% b6aaafe000000013edbaaa80 +% 556b7d8000000001b7f6d6c0 +% aaad5bc000000001fbbd5a80 +% 6db57f0000000000d77aaac0 +% aaaab58000000000edf6d540 +% 5556f7000000000056fead80 +% b6dab600000000006edb5540 +% aaaaee00000000007ffeb680 +% 5555ee000000000076bb5540 +% b6dabc00000000003f7f6a80 +% 5555d800000000003b7756c0 +% aaabfc00000000003f7eda80 +% 6db6b0000000000036f7aac0 +% aaabd800000000003ffeab40 +% ad57b800000000003d6fda80 +% 55b7d8000000000037fdaac0 +% b55eb800000000003edfab40 +% 56afb000000000003bfbb540 +% aaddb000000000003edf5680 +% 6d5bd8000000000035fdaac0 +% aaafe800000000003b5bb540 +% 55ba5000000000006fef5680 +% b6a83800000000005f736ac0 +% aaa00c00000000003dfdad40 +% 55680e00000000003bd65580 +% b6a107000000000077bc5a80 +% 55a013c0000000023ff82b40 +% a80401a0000000005db45540 +% 429021f0000000043ff02d40 +% 900000f80000000096c4aa80 +% a00080be000000082a902d80 +% 004204770000000244401540 +% a200003e8000001411001540 +% 4004105fc000000044444b40 +% 8800001b8000000a00800540 +% 5040411f4000001012000280 +% 80040007c000001440044080 +% 5080040d0000003100100040 +% 800040200000007400400400 +% 51080002000000e804008040 +% 80008440000003f210000080 +% 50000005000007d400080940 +% 0111000080001ef020808280 +% a00008894000ffd480001540 +% 02000000fa57bb680108aa80 +% a0222002bfffffe900012b40 +% 0a4001115ffdedd20824d540 +% d0888004bb6fbfb4008b5a80 +% ad251202bffdfbe921255580 +% b554a05576ab576a045aaa80 +% aaaa950aaaad5aaaa955b6c0 +% 56d56a556d6aaad48556aa80 +% b55b5555aaab6b5ab55aad40 +% 55aaaaaab5b555554aaad580 +% ad556d5b56aaad6b556b5a80 +%%EndPreview +%%BeginProlog +% Use own dictionary to avoid conflicts +5 dict begin +%%EndProlog +%%Page: 1 1 +% Translate for offset +0.000000 0.000000 translate +% Translate to begin of first scanline +0.000000 95.872000 translate +80.640000 -95.872000 scale +% Variable to keep one line of raster data +/scanline 90 1 mul string def +% Image geometry +90 107 8 +% Transformation matrix +[ 90 0 0 107 0 0 ] +{ currentfile scanline readhexstring pop } +image +72727272717171717171717172717171717171717171717172717171727271717171727273736f +675852524e4653535a676b73737272727272727272727272727272727272727272727272727272 +727272727272727272727272 +7172717271717171717171717271717171717171717171717271717171717172727272726d5d4a +4039393939373a3a3c3f4653637172727272727272727272727272727272727272727272727272 +727272727272727272727272 +7171717271717171717171717271717171717171717171717271717171717173747271644b3f3a +3a393a3a3a393b3b3b38393b3d4d64707272727272727272727272727272727272727272727272 +727272727272727272727272 +727272727171717171717171727171717172717171717171727171717171727372705b3b3d3b3a +3939393939393938393939383a3c3f546d71747272727272727272727272727272727272727272 +727272727272727272727272 +727271727171717171717171727171717171717171717171727171717171727173553e3d383a39 +393a383838383838393940564d3f38394668727272727272727272727272727272727272727272 +727272727272727272727272 +71717171717171717171717172717171717171717171717172717171717172715f3d38393b3b39 +3a393939393939393a3c5574807252403742627272727272727272727272727272727272727272 +727272727272727272727272 +727271727171717171717171727171717171717171717171727171717172726c403c373a3a3a3a +3a3a3a3a3a3a3a3a393e5e82958c72543a38416a72737272727272727272727272727272727272 +727272727272727272727272 +727171727171717171717171727171717171717171717171727171717271735a3d383b3a3a3a3a +3a3a3a3a3a3a3a3a383c5f87978e7c65493a3c5070737272727272727272727272727272727272 +727272727272727272727272 +7171717271717171717171717271717171717171717171717271717172736c4638373b3a3a3a3a +3a3a3a3a3a3a3a3a3a436384897d6d644f3a3b3e60727472727272727272727272727272727272 +727272727272727272727272 +727171727171717171717171727171717171717171717171727171717273603a3839393a3a3a3a +3a3a3a3a3a3a3a3b39425c6f68574745403b3c3848707472727272727272727272727272727272 +727272727272727272727272 +7271727271717171717171717271717171717171717171717271717172724d373938393a3a3a3a +3a3a3a3a3a3a3a393a3d494e3e3e3c3b393c3a393b617272727272727272727272727272727272 +727272727272727272727272 +71717171717171717171717171717171717171717171717172717171727241393839393c3a3a3a +3a3a3a3a3a3a3a393b3a3a3d3b3a3d393c3b393b3a4b7374717272727272727272727272727272 +727272727272727272727272 +7272727271717171717171717271717171717171717171717271717172703a3b3937393b393a3a +3a3a3a3a3a3a3a3a3a3b3a3a393d3a3b3b3b393a393e6d74727272727272727272727272727272 +727272727272727272727272 +7272727271717171717171717271717171717171717171717271717171633c3a3a38383d413c3a +3a3a3a3a3a3a3a3a3a3b3e4142393c3c3b3b3939393c6074707272727272727272727272727272 +727272727272727272727272 +7272727271717171717171717271717171717171717171717271717171623b373b3e40475d5a3f +3b3b3a3a393b3b3b373839486b6d3d393b3b3a38393b5c73717272727272727272727272727272 +727272727272727272727272 +7272727271717171717171717271717171717271717171717271717172623b373c3a3d3f425d65 +3f393a3a3d393b3e5b75795a3e6562393b3b3b39393d4f71727272727272727272727272727272 +727272727272727272727272 +7272727271717171717171717272717171717271717171717271717172623c3838538a9e7e4960 +4e3c3a3a3c3a57879ea9b0b68e445b463b3b3b3a3b3d4a72727272727272727272727272727272 +727272727272727272727272 +7272727271717171727171717272717171727171717271717271717172613c374d96b6cabb8e48 +463b3a3a3a5291abb6c0c7d1be7f3f473b3b3a38393a4672727272727272727272727272727272 +727272727272727272727272 +7272727271717171717271717271717171717171717171717271717172603c3770acd1e3dfcc84 +3a3b3a3a3d85c0e7f4f7f7f2d9a4593a3b3b393839393f6b727272727272727272727272727272 +727272727272727272727272 +7272727271717171717171717271717171717171717171717271717172603c3c9aebdbc5eefdda +45393a3a45b8f7fcda8386d1faec8b373b3b3a3938383e6b727272727272727272727272727272 +727272727272727272727272 +7272727271717171717171717271717171717171717172717271717172613946c8db4e7188eaf9 +60443c3e4dc7fbe953468a7fcdfdc7433b3b3a3839383c6a727272727272727272727272727272 +727272727272727272727272 +7272727271717171717171717271717171717171717171717271717172603a4bd59a387184a5fb +755363655bc9fb9c3d3a5c907ffbe7543b3b3a3939383c6a717272727272727272727272727272 +727272727272727272727272 +7171717171717171717171717171717171717171717171717171717171673b4ad5833e4a7f75f8 +6f484b575cb3f67b363c445b68f4ed553a3a3a3939393b6a717272727272727272727272727272 +727272727272727272727272 +7272727272717171717171717271717171717171717272717271717171714245cc953c3d5667ce +666e6f6c6282e97a3b3a3a3b5bf5ea58393a393a393c386a737272727272727272727272727272 +727272727272727272727272 +727272727171717171717171727171717171717171717171727171717171413eb7c4453b416fa6 +c3c9c6c2bcb1c19d3a3c3b3e8cfbdc4c3939393a39393969727272727272727272727272727272 +727272727272727272727272 +727272727171717171717171727171717171727171717171727171717171413a8df18e477da2af +cdcecbbfa6b2cfc289534273ebf9ac3f3939393939383b62727272727272727272727272727272 +727272727272727272727272 +72727272717171717171717172717171717172717171717172717171717142385bdae697a9c1cd +cfcecfd3d4d7dcd9d5c5a8c5e4dc633838393a39393a365b727272727272727272727272727272 +727272727272727272727272 +72727272717171717171717172717171717171717171717172717171717142363e99a4a8b9cacf +cecfd2d8dcdfe2dfdedad6cdc3ac693f39393939393a375b727272727272727272727272727272 +727272727272727272727272 +7272727271717171717271717271717171717171727171717271717171714137538fa4b4c2cbcf +cfd1d5dadee2e1dfdedededfdcdab5553a3a39393a3c3859727272727272727272727272727272 +727272727272727272727272 +7272727271717171717171717271717171717271717171717271717171714b43839facbdc8cfcf +d0d3d7dae2e2dfdedededed1b1c5c05e3c3b393a3c393c4c717272727272727272727272727272 +727272727272727272727272 +727272727171717171717171727271717171717171717171727171717172524c94a0b2c1cbcfcf +d1d5d9dee1dfdedededabea8aebbad4f3b3c3a393a3a3d426b7273727272727272727272727272 +727272727272727272727272 +72727272727171717271717172727171717171717172717172727171717254478ea5b9c3ced0d1 +d3d6dbe0dededddccfabaab7bbbaaa4b3c3b393a37393f3b597174727272727272727272727272 +727272727272727272727272 +727272727171717171727171727171717171717171717171727171717171503b5c84aec9d0d1d1 +d6d9dddcded9d1b0a0b1b8bbbab387403a3b6c7446333938477173727272727272727272727272 +727272727272727272727272 +7272727271717171717171717271727171717171717171717271717171714f3d457986a3c5d1d6 +d8d9d8d1bfa795a2b4b7bab7adac8642383863978e6f413c3c6973727272727272727272727272 +727272727272727272727272 +727272727171717171717171727171717171717171717271727172717272523b4390a58a8e9da8 +aba4a29d9ca5aeb3b2afabb7c4c2bb5d3b3645849b99663a3c4e72727272727272727272727272 +727272727272727272727272 +727272727171717171717171727171727171717171717271727171717273543c49adbfa29097b4 +c0b9b5b3b4b0afada5aabec7cfcac3763a3b3c5e999a8745393d65727272727272727272727272 +727272727272727272727272 +727272727271717171717171727271717172717171717171727172727171483856aac1bfa18e9e +b1b4b2afa9a3a0a4b3c1c1c5d3ded4ac413a3b4079895a38353948707472727272727272727272 +727272727272727272727272 +7272727271727171717171717272727171717171717171717272737272633f3c4ea8c5c1c0a790 +919698959193a7bac2c1c9e1f4fbfbde6c3b3c3a39423c3b3a393e617473727272727272727272 +727272727272727272727272 +7272727271717171717171717271727171717171717172717272717270453b394dc1d9c8c2c2bc +a79b9b9dabbac0c1c2cde3f8fdfdfdfabf453b3b3b3b3b3b3a393d4c7071727272727272727272 +727272727272727272727272 +727272727171717171717172727171717171717171717171727270715b3d3b398ff5e7cec3c3c1 +c3c1c2c2c3c2c2c8d4e4f5fdfdfdfdfdf9723f3b3b3b3b3b3b3a39435a74747272727272727272 +727272727272727272727272 +7272727271717171717171717271717171717171717171717271726750463658e0fbf7e4c6c2c3 +c3c2c3c2c2c4ceddedf7fdfdfdfdfcfdfccb4a3b3d383b3b3a3a3a3e4a6b727271727272727272 +727272727272727272727272 +72727272717171717171717172717271717171717171717172716d4b544340b1f7fcfdf7d5c2c2 +c2c2c2c2c6d5e7f5fcfdfdfdfdfdfdfcfbf7833d3d3b3b3b393b393a3b4e717272717272727272 +727272727272727272727272 +7272727271717171717271727271727171717171717171727371483a3a3673f4fdfcfbfceccfc5 +c2c1c2cde3f3fafdfdfdfcfdfdfdfdfcfdfccb40393a3b3b39393a393b3c607271727272727272 +727272727272727272727272 +727272727171717171727171727171717171717171717171705a3e3f3c45d0fcfdfdfcfdfcf5e6 +d9dce5f1fafcfcfcfdfdfcfdfdfdfdfdfdfdf66937393b3b393939393a3a486a72717272727272 +727272727272727272727272 +7272727271717171717171717271717171717171717171725f3e3a3c3985fbfcfdfcfdfdfdfdf9 +f1f8fcfdfdfcfcfcfcfdfdfdfdfdfdfdfdfdfd933b3a3b3b3a3a3a3a393a3d4a6b717272727272 +727272727272727272727272 +717171717171717171717171717171717171717172727267443b3b394cd2fafcfdfdfdfdfdfdfb +fafcfdfdfdfcfcfcfcfcfdfdfdfdfdfdfdfdfbc73b3b3a3a3a393a3a3a393c3e52727272727271 +727272717171717172717271 +727172727171717171717171727171717172727175736d423a3a383c7de7f9fefefdfdfdfdfdfc +fbfcfdfdfdfcfdfdfcfdfdfdfdfdfdfdfdfcf8e24d3c3b3b3a3a3a3a3b3b393a3b537173727272 +727272727272727272727272 +7272727271717171717171717271727171727271726e4d3b3b3a3646a0e2f8fdfefdfcfcfdfdfc +f8f8fcfdfdfdfdfdfdfdfcfdfdfdfcfbf4f0efeb653f3b3b3b3b3b3b3b3b3938393f5772727272 +727272727272727272727272 +727172727171717171717171727171717171727171533f3b3b3a364aa5cef0f9fbfdfdfcf9f5f1 +ecebf3f8fafbfbfafcfaf8f7f5f5efeae3dbdfe687473b3b3a3b3a393a3a3b393a393f5c727272 +727272727272727272727272 +7272727271717171717171717272717171717271623d3d3a3b3a3a5ba9b8d0e7edf5f9f9f5ede3 +e1e5e7f2fbf9fafaf7eee2dad3d0cececcc8c9d8c5513a3b3a373c393d3b3a3939383d3e637272 +727272727272727272727272 +727272727171717171717171727171717172726e4a3d383a3b3a456fadb5cbddebf8fbfcfdfced +e4f5fbfdfcfdfdfdfcf7ede3d5cecac8c7c6c6c7deb844393e644e3a393b3a3a3939383c4b6f72 +727272727272727272727272 +72727272717171717172727272727271717272603e3a3b3b393a4b7cbbd3ebf7fdfcfcfbfdfcee +f1fcfcfcfcfbfbfdfcfcfdfbf8f2e8ded3cbc7c6ceee993d34556f5f463c3d393b393a3a3e6272 +727272727272727272727272 +717171727171717172717171727171717173704b3b3d39473c3c5fb0dcf1fbfcfcfcfdfcfcfcf5 +f5fbfcfbfdfcfcfcfcfcfbfbfdfcfcfbf5e9d9cdc7d8ea683b3d3d58724b3b3d3b3a3a3a3c5173 +737272727272727272727272 +7272727271717171717271717271717171736e433e385e603e4090dff5fcfdfcfcfbfcfcfbfcfa +fbfbfcfcfcfbfcfdfcfcfcfcfdfcfcfcfbfcf6e6d3c9e3c3403a3d394d7342353e3a3b3a39416b +727372727272727272727272 +727171727171717171717171727171717172673d374a6b3b3d4cd9f8fdfcfcfcfbfdfbfcfbfcfc +fbfcfcfbfcfcfcfcfdfcfcfcfbfcfbfcfcfdfdfaedd4ceeb6c3c3d3d3e51663a3e383b3a393c56 +717472727272727272727272 +727271727171717171717171727171717173573c3c604d3b3c8ffbfdfbfcfdfcfcfcfcfcfcfbfb +fdfbfdfcfdfbfcfcfcfbfcfcfdfbfdfcfcfcfcfdfcedd3dac43d384e5b5064583a3c3b3a363c40 +6f7272727272727272727272 +727271727171717171717171727171717170483f476f373851e9fdfdfdfbfcfcfcfcfcfcfbfcfd +fcfcfcfbfcfcfbfbfcfcfdfcfdfcfcfcfcfcfcfdfcfdf1e6f1583f5e7770546d42393b3a3b3a3d +637272727272727272727272 +7272727271717172717171717271727372643f3c6a52373da0fbfcfcfcfcfbfcfcfcfdfcfcfbfb +fcfbfcfbfbfcfdfcfcfcfcfcfcfcfcfbfcfcfdfcfdfbfcfcfd9545657c735259613d3c393a393b +4e7172727272727272727272 +7272727271717171717171717271727471513a456a393a5ae6fafcfbfcfbfcfbfcfcfcfcfbf8fa +fbfcfcfcfcfdfbfcfdfcfcfdfcfdfcfbfdfcfbfcfcfcfcfcfdc64f5e6456434078433b3d393b3d +436c72727272727272727272 +727272727171727171717171727272726e47385c53333e98fbfbfcfcfcfcfcfcfcfcfcfcf9eafb +fbfbfbfbfcfcfbfdfcfcfbfcfcfcfcfcfbfdfcfcfdfdfcfdfce7473d3f3b3b375e57393d383939 +3b6171727272727272727272 +72727272717171717171717172717272633c3b703f3451dafcfcfbfbfcfcfbfcfcfdfdfbf4e8fa +fcfdfcfcfcfbfcfbfcfcfcfcfbfdfcfcfcfcfcfcfcfbfbfcfcfa623c3a3a3b374b66373d393939 +3b5072727272727272727272 +727272727171717171717171727272714e3b52613b388af8fcfbfcfbfcfcfcfcfcfdfcfcf2edfc +fdfcfcfcfcfdfcfbfcfcfcfcfcfdfcfdfdfcfcfcfcfdfcfbfcfc84383b3b393a3f774138383938 +3a416f727272727272727272 +727271727171717171717171727272663c3c68453b40c5fbfbfbfdfdfcfcfdfbfcfcfcfcededfb +fcfcfcfcfbfcfcfcfcfbfbfcfcfcfcfcfafcfcfcfcfbfcfdfcfda23c3b3b3b3b3d7437383b3a39 +3b3f68727272727272727272 +7272727271717171717171717174714b3a3a6b373b57eefcfcfcfcfbfcfcfbfcfcfbfdfbe9e9fb +fbfcfcfcfbfcfcfbfbfcfcfbfbfcfbfcfcfcfcfcfbfcfcfcfdfcaf3b3b3b3c3a406f37373a3a39 +393d5f727272727272727272 +7171717272717171727171717271623e3d4a60373b82fbfcfcfdfbfdfcfcfcfcfbfcfcfbe6eafb +fcfdfcfcfcfcfcfbfdfcfcfcfdfcfcfcfcfdfcfcfcfbfcfcfcfdbd3a3b3b3a3843633836393a38 +3a3c54727272727272727272 +727272727272717171717272736d463a37535c3839aafcfcfcfdfdfcfcfcfbfcfdfcfbfbe6eaf9 +fbfbfcfbfcfbfcfcfbfdfcfcfbfcfcfcfcfdfcfcfcfcfbfdfcfcce3c3b3b393c4e533937383939 +383c4f727272727272727272 +71717272717171717171717371593d3b3952603947cdfcfbfcfcfcfcfcfdfdfcfcfcfdfae2e9fa +fbfbfcfdfbfcfcfcfcfcfcfcfcfcfcfbfbfcfbfdfcfcfdfafcfcd4423b3b3b3a5a4e393a39383a +3a3940727272727272727272 +7272727271717171717271726c41393c3656683b47d6fdfbfcfcfcfcfcfcfbfcfdfcfcfae1e9fb +fbfcfdfcfcfcfbfcfcfcfcfbfcfcfbfcfcfcfbfbfdfcfbfcfcfdda413b3b3c3b6644393a3a3938 +3b3a3f727272727272727272 +727271727171717171717171553c3b3b405f6d394ce1fcfcfcfcfcfcfbfdfcfcfcfcfcf9e1ecfb +fcfcfcfcfcfbfbfcfdfcfcfdfbfcfcfcfcfbfcfbfbfdfcfdfcfcdd423b3b3b39643f393a393939 +3a3a3e727272727272727272 +7272727271727171717171724f3e363d4f767e3b5be9fcfdfcfdfbfbfbfcfcfbfafcfcf8e2eefb +fbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfdfcfbfcfdfcfcfcfbfdde433b3b3b455f3a3b3b3a3a39 +39393e727272727272727272 +72727272717171717171716e46393938466b863e69edfcfdfcfcfcfcfbfcfcfcfcfcfcf7e2eefc +fbfcfcfdfbfdfcfbfdfcfdfdfdfcfcfcfcfdfbfcfcfbfcfcfbfddc443b3b385a463b3b3b3a3839 +393940727272727272727272 +72727272717171727171716f413a3a3a3945724869effcfcfcfcfbfcfcfbfcfcfcfcfbf8e2f1fc +fcfcfcfbfcfcfcfcfcfcfcfcfcfcfcfbfcfcfcfcfcfcfbfcfdfccc3f383a41683b3d3d3a3b3a3a +3a3b42727272727272727272 +72727272727171717171716e443938393c3c49626eeefcfbfcfcfcfcfcfcfcfcfcfcfcf8e2f1fc +fbfcfdfcfcfdfdfcfcfcfcfcfbfcfbfcfcfcfcfcfcfcfcfcfcfcb83b3f5a685d455b6054463f3a +3c3a51727272727272727272 +727272727271717172717171524a728f8d5e424d80e3fbfcfcfbfcfcfdfcfbfcfcfcfcf7e1f2fb +fcfcfcfcfcfcfcfbfcfdfbfcfcfcfcfcfcfcfcfcfcfdfcfcfcfc9c405b503d3b3c3c455368755c +3d3a5a727272727272727272 +72727172717171727271727174a3c9d4d6c87b3b50b0f9fcfcfdfcfcfcfbfdfcfcfcfcf8e2f3fb +fcfcfdfcfcfcfcfcfcfcfbfbfbfcfbfcfbfcfcfcfcfcfbf9fbf66956403b3a3a39393b3a3a608d +654567717273727272727272 +7272727271717172717371739bc1d1d4d4d4cc7f3f55a9f5fbfbfcfbfdfbfbfcfbfbfcf8e1f3fc +fbfcfcfcfbfcfbfcfcfdfdfcfcfcfcfcfcfcfcfcfbf6d5d3d3d29c59393a393b3b3b3b3a3c5d76 +61486b737272727272727272 +727272727171727171737288b1c7d1d4d4d5d4cc803f4ea1f0fbfcfcfcfbfcfcfcfdfcf6e3f4fc +fdfbfbfcfcfcfcfcfcfcfcfcfdfbfcfcfcfbfcfcfcdccfdbdddccd5b3e3a393b3b3b3b3a3e655e +519c89727373727272727272 +7171717272727171717276a3b8c8d2d4d5d4d5d5c66d3a4892e9fcfbfcfdfcfbfbfbfcf8e1effb +fcfbfcfcfcfcfbfcfcfbfcfbfcfcfcfcfbfcfcfcfcd5c7d4d7dabb50383c393b3b3b3b3a414f40 +76cfda8f7374727272727272 +7172717372727271707e9db3c0cdd4d4d5d4d4d5d4b6543b4673d6fbfbfcfcfdfdfcfbfaeaedfc +fbfdfcfcfcfdfdfcfcfcfcfcfbfbfcfbfcfdfcfcfcd7c5d3d4d1a9513a393a3b3b3b3b3a3a3653 +bad5d7b87371727272727272 +7170778c9baaa8a5a3a7b4bdc9d1d4d4d4d4d4d4d5d2a04435405bc1f7fcfcfdfbfcfcfdfbf9fc +fdfcfbfcfcfcfbfcfcfcfcfbfcfcfcfdfcfcfbfbf8d8c4d3d2c9a85c3a3b383b3b3b3b3a3a4196 +cfd1d4c47370727272727272 +73779fb2bcc1bfbbbbbdc4cad1d4d4d4d5d4d4d4d5d4cb7c3d373c469ef3fbfcfcfcfdfcfcfcfc +fcfbfcfcfbfcfcfcfcfcfcfcfcfcfcfcfbfcfbe8d3c7c4d2cec3ae78463c36383836373b477dbf +cccfd1c07671727272727272 +738ab0bec9cdccc9c7ccd1d2d4d4d4d4d4d4d4d4d4d5d5b758383b3a4387e5fdfcfcfcfbfcfcfc +fdfdfbfcfcfcfcfcfbfcfcfdfcfcfbfbfdfceecdc7c3c2cecbc1ae997146403e393d426189b2c3 +cccfd2c27572727272727272 +7193b7c7ced1d2d3d2d3d4d4d4d4d4d4d5d4d4d4d4d3d4cf953d383a353a68d0fbfbfbfbfdfcfc +fbfbfbfdfcfdfcfbfcfcfbfcfcfcfdfcfbfde3c7c8c2bfc9cac4b5a69c8e7d77767e929eacc0ca +d0d3d4d07f72727272727272 +729eb8c8d0d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d5d3d3d5c065383b38343f57bffbfbfcfcfbfc +fcfcfcfcfbfbfcfdfcfcfcfcfbfbfbfcfcfbdfc9c8bdb9c8cac6bbb0a8a5a1a0a1a3a7b1bfccd1 +d4d4d4d3af77717372727272 +7192b7c6d0d4d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d3d4d4a64639383c3a3852c7fcfcfdfdfd +fcfcfcfcfcfcfdfdfcfcfdfcfdfcfbfcfcfbe0c8c8b8b4c6cacac1b9b5b1b0afafb2b7c0cbd4d4 +d4d5d4d2cf9c727272727272 +728cb5c3ced4d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d4c97d3b363a3737396ef0fcfcfcfc +fdfcfcfcfbfcfcfcfcfcfcfcfdfcfcfbfcfde7cbc9b3aebfc9cbc8c2bcbbb9b9b9bcc3c9d1d5d5 +d5d5d5d3d1c88f7272727272 +718bb2c0cdd3d4d4d4d4d4d5d5d5d4d4d5d4d4d4d5d4d4d4d4d5b6573a3939393742d8fcfcfcfc +fcfbfcfbfcfcfcfdfcfcfcfcfbfbfcfcfdfbeed0c8adaabcc9d0cecbc5c3c2c1c3c5c8ced2d5d5 +d5d5d5d5d4d1c29071727372 +727fafbdccd3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d4d4ce974038393b393fd1fcfcfcfb +fcfbfcfdfcfcfbfcfcfcfcfcfbfcfcfbfcfcf3d3b588aabdc9d0d2d1cdcbc9c8caccced1d4d5d5 +d5d5d5d5d4d3d0cb99767372 +727aadbccbd3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d3d5c57a3a3a383a59ecfdfcfcfc +fbfcfcfcfcfcfcfbfcfbfcfcfbfcfcfcfbfcf2c46785aabdc9d1d3d3d2d2d0d1d1d2d2d3d4d5d5 +d5d5d5d5d5d5d4d4d4b88872 +727bacbacbd3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d4d3d5b15441467bd7fcfcfcfbfc +fcfdfdfcfcfcfbfcfcfcfdfdfcfcfcfcfbfccd5d4484abbecad1d2d4d4d5d4d5d4d4d4d4d5d5d5 +d5d5d5d5d5d4d5d4d4d5cea5 +727caebac9d3d4d4d4d4d5d5d5d5d4d4d4d4d4d4d4d4d4d4d5d5d3d3ce99a7dcf8fcfcfcfcfcfc +fbfbfcfcfbfcfcfdfcfcfcfcfbfcfcfcf8c2523a4789aabecad1d3d4d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d2c6 +7084aebacbd2d3d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d3d1d1bfa4f4fafbfbfcfcfbfc +fcfcfbfbfcfcfcfcfcfcfcfcfcfbfbf6a44538364e8aaabecbd2d4d4d4d4d4d4d4d4d4d4d4d4d4 +d4d4d4d4d4d4d5d5d4d3cec1 +718eacbbcdd3d3d4d4d4d5d4d5d4d4d4d5d4d4d5d4d4d5d4d5d4d4d3cfceadbdfbfcfbfcfcfcfc +fbfdfdfcfbfdfbfbfcfcfbfbfcfce87f42353834578aa9c0cbd2d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d4d0c9c19f +739daec0d0d4d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d4d4d4cfd0bc95d1fbfbfbfcfcfc +fcfcfcfcfcfcfbfcfcfcfcfcefa84c3b383c39385e88a7c1ccd2d4d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d4d4d4d1c6bca676 +81a6b6cbd2d3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d4d4d4cfcabf9f80cbfafbfcfcfc +fbfcfcfcfcfbfcfcfcfcf0b45b3c3a3b3a3738396488a6bfccd3d4d5d5d5d5d5d5d5d5d5d5d5d5 +d4d4d4d4d3d1ccc1b5947871 +94aebfcdd2d3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d5d5d4d4d4d0c6bda6835a8ad1eff7fb +fcfbfcfcfbfaf3e7c5935a3f373a3b3b3b3b3b3d6b8ba7becbd2d5d5d5d5d5d5d5d5d5d5d5d4d4 +d5d4d4cec7c0b5a280727373 +a4afbdc8d1d2d2d3d4d3d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d4d4d4d1c8bca98d693b3d5c7e93 +a7aea0988f7c5e4b3d3b3a38383b3b3b3b3b3a43708ea7bdcad2d5d5d5d5d5d5d5d5d5d5d4d2d1 +d2d1c8bbb09a7f7372727272 +a3abb7bfc8cbcdcecfd0d2d4d3d4d4d4d4d4d4d4d4d4d4d5d5d4d5d4d0c8bca78f75473839383d +3d3a39373836353a383b37373b3a3a393a3a38477590a6bac9d2d4d5d5d5d4d4d4d5d4d4d0ccca +c6bdb1947971727272737272 +9aa5aaafb7bcbfc0c3c5c6cacccfd0d1d2d3d3d4d4d4d4d5d5d4d4d3cec3b6a28b7b553939393a +393939393939393939393939393a393a3a393947768fa3b5c3cfd4d4d4d4d4d4d2d2d1cbc5bfbb +b19b80737172727272727272 +7a91989da0a2a7abafb2b6b7bcc0c4c6c9cdd0d2d4d4d4d4d4d4d4d1c8bba9988a7c593a3a3a3a +3a393a3a3a3a3a3a3a3a3a3a3a3938393a3a3a4a768a9daebdc9d0d2d3d3d2d2d0cdc7bfb8b2a6 +8a7371717171727272727272 +7172757a838c91979c9fa4a4a6a9aeb1b6bac1c7cdcfd1d2d1d1d1cbbfb09e8f857958383a3839 +3b3b3b3b3c3b3b3c3b3b3b3b3b3a3837383a394c738596a5b5bfc9ced0d1d0cdc7bfbbafa49a7b +727172727272727272727272 +727273727272747c858b90949496999b9fa4acb3b9bec3c8cbcac4bbafa393867d734e3c404141 +4b555858585858585858585857554d454543404d7082909daab6c0c5c7c8c6beb8b2a89b8a7571 +727272727272727272727272 +7372727272727171727274797d8185898d90959ba2a6abb0b6b6b0a89c92867e776547656f7372 +707172727272727272727272727174736f6f66656c7e8a959fa6aeb3b4b4b1aaa49d9382727272 +727272727272727272727272 +727271717271717171727271717273767b7d82898e9195989b9b98928a837e7972616470727172 +72727171717171717172727272727272727171706d76828e979b9da0a1a19f9b968d7c73727271 +717272727272727272727272 +72727272717171717171717172717170717172767d81868788878683807c776f6e727271717171 +7171717171717171717272727272727272727271706f79838c9192959595938d84787171717272 +727272727272727272727272 +7272727271717171717171717271717171737372727375767a7c7d7b79746e6d72737271717171 +7171717171717171717272727272727272727271726e6f737c8285888786837974727172717272 +727272727272727272727272 +7272727271717171717171717271717171727272727272707273706f6f71707272727271717171 +71717271717171717172727272727272727272727272716e6f6f72757372727172717172727272 +727272727272727272727272 +showpage +%%Trailer +end +%%EOF diff --git a/contrib/mom/examples/sample_docs.mom b/contrib/mom/examples/sample_docs.mom new file mode 100644 index 0000000..f9b2933 --- /dev/null +++ b/contrib/mom/examples/sample_docs.mom @@ -0,0 +1,713 @@ +.\" -*- mode: text; coding: utf-8; -*- +\# +\# Copyright (C) 2004-2020 +\# +\# Copying and distribution of this file, with or without modification, +\# are permitted in any medium without royalty provided the copyright +\# notice and this notice are preserved. +\# +\# This file contains three greeked documents collated together: +\# +\# i) two pages of a novelist's outline +\# ii) two pages of a chapter using COPYSTYLE DRAFT +\# iii) three pages of an academic paper, set in two columns +\# +\# Mom's defaults are used throughout, except for iii), which +\# demonstrates some of the ways you can design your own documents. +\# +\# Since the text throughout is greeked, and groff doesn't know how +\# to hyphenate all that pseudo-latinate nonsense, I've inserted +\# discretionary hyphens (\%) into a large number of the words. +\# Normally, this isn't necessary. +\# +\# The PRINTSTYLE is TYPESET. If you'd like to see what mom does +\# with the documents when the PRINTSTYLE is TYPEWRITE, change +\# PRINTSTYLE TYPESET, below, to PRINTSTYLE TYPEWRITE and re-run with +\# +\# pdfmom -Tps sample_docs.mom > sample_docs.pdf +\# +\# =================================================================== +\# +\# First, a sample NAMED document--in this case, an outline. +\# A novelist wouldn't normally write an outline with numbered +\# subheads and paraheads. I've turned the feature on merely to +\# demonstrate it. +\# +\# Information for the cover pages +\# +\# Title, subtitle and copyright for the document cover. +\# +.TITLE DOC_COVER \ + "Sample mom documents" +.SUBTITLE DOC_COVER \ + "Three types of mom documents" \ + "assembled and collated" \ + "by mom's author" +.COPYRIGHT DOC_COVER \ + "2015 Peter Schaffter" +\# +\# What appears in the pdf viewer's window title +\# +.PDF_TITLE "Sample mom documents" +\# +\# Reference macros (metadata) for the first section of the collated +\# document. +\# +.TITLE "Lake Attica's Shores" +.SUBTITLE "A Romance Novel" +.AUTHOR "Rosemary Winspeare" +.COPYRIGHT "2015 Alma Podborski" +\# +\# What to put on the cover for the whole document (in mom-speak, +\# the "doc cover"). The title, subtitle, and author are what were +\# given to TITLE DOC_COVER, SUBTITLE DOC_COVER, and COPYRIGHT +\# DOC_COVER. +\# +.DOC_COVER TITLE SUBTITLE COPYRIGHT +\# +\# What to put on the first document's title page (in mom-speak, the +\# "cover"). In this case, we're using the metadata from TITLE, +\# SUBTITLE, AUTHOR and COPYRIGHT, which will also be used to +\# generate the docheader (minus the copyright). +\# +.COVER TITLE AUTHOR DOCTYPE COPYRIGHT +\# +\# Docstyle macros (templates) +\# +.DOCTYPE NAMED "Outline" +.PRINTSTYLE TYPESET +.PAPER LETTER +\# +\# Here we style the covers a bit. +\# +.DOC_COVER_TITLE_STYLE \ + SIZE +8 \ + SMALLCAPS \ + UNDERLINE 1 3p +.DOC_COVER_SUBTITLE_STYLE \ + FONT I \ + SIZE +2 \ + LEAD 18 \ + SPACE .75v +.DOC_COVER_COPYRIGHT_SIZE -.5 +\# +.COVER_TITLE_SIZE +5 +.COVER_ATTRIBUTE_STYLE \ + SIZE +2 \ + SPACE .25v +.COVER_AUTHOR_STYLE \ + SIZE +2 \ + LEAD 18 +.COVER_DOCTYPE_STYLE \ + SIZE +4 \ + UNDERLINE DOUBLE 1 +.COVER_COPYRIGHT_SIZE -.5 +\# +\# Here we style the docheader a bit. +\# +.SUBTITLE_SPACE .25v +.DOCTYPE_UNDERLINE 1 2p +\# +\# Styles for nested heading levels +\# +\# The first two instances of level-1 headings will be paragraph heads +\# so we set the paragraph head style here, then change it when +\# level-1 headings become main heads. +\# +.HEADING_STYLE 1 \ + FONT BI \ + SIZE +.75 +.HEADING_STYLE 2 \ + FONT B \ + SIZE +.5 \ + BASELINE_ADJUST \n[.v]/8 \" ie 1/8 the leading +\# +.AUTO_RELOCATE_TOC \" Move table of contents to the top of the doc +.SPACE_TOC_ITEMS \" Prettify TOC spacing +\# +\# Begin the document +\# +.START +\# +.PP +.HEADING 1 PARAHEAD "A note on the setting" +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam +nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, +sed diam voluptua. Stet clita kasd gubergren, no sea takimata sanctus est. +At vero eos et accusam et justo duo do\%lo\%re et ea rebum. +.PP +Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum +dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, sed diam +voluptua. +.PP +Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt +ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At +vero, eos et accusam et justo duo do\%lo\%res et ea rebum. Consetetur +sadipscing elitr, sed diam nonumy. +.LINEBREAK +.PP +.HEADING 1 PARAHEAD "About historical personnages" +At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita +kasd gubergren, no sea takimata sanctus est. Tempor invidunt ut +labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. +.PP +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam +nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, +sed diam voluptua. Consetetur sadipscing elitr, sed diam nonumy +eirmod tempor invidunt ut labore et do\%lo\%re magna. Tempor invidunt +ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. +\# +\# Change level-1 style and add numbering to levels 1 and 2 +\# +.HEADING_STYLE 1 \ + FONT B \ + SIZE +1.5 \ + CAPS \ + UNDERSCORE .5 2p \ + QUAD C \ + NO_SPACE_AFTER \ + BASELINE_ADJUST +0 \ + NUMBER +.HEADING_STYLE 2 NUMBER +\# +.HEADING 1 "Part One" +.HEADING 2 "Chapter 1" +.PP +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, +sed diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna +ali\%quyam erat, sed diam voluptua. At vero eos et accusam et +justo duo do\%lo\%res et ea rebum. +.PP +At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita +kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit +amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor +invidunt ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. +Stet clita kasd gubergren, no sea takimata sanctus est. +.HEADING 2 "Chapter 2" +.PP +Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum +dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, sed diam +voluptua. At vero eos et accusam et justo duo do\%lo\%res et ea rebum. +.PP +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, +sed diam nonumy eirmod tempor invidunt. Ut labore et do\%lo\%re magna +ali\%quyam erat, sed diam voluptua at vero. +.HEADING 2 "Chapter 3" +.PP +Eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita kasd +gubergren, no sea takimata sanctus est lorem ipsum dolor sit amet. +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam +nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, +sed diam voluptua. At vero eos et accusam et justo duo do\%lo\%res et +ea rebum. +.HEADING 1 "Part Two" +.HEADING 2 "Chapter 4" +.PP +Stet clita kasd gubergren, no sea takimata sanctus est +lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur +sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore +et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. +.PP +At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita +kasd gubergren, no sea takimata sanctus est lorem ipsum dolor sit amet. +.PP +Nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, +sed diam voluptua. At vero eos et accusam et justo duo do\%lo\%res et +ea rebum. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, +sed diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna +ali\%quyam erat, sed diam voluptua. At vero eos et accusam et justo +duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, no sea takimata +sanctus est lorem ipsum dolor sit amet. Consetetur sadipscing elitr, +sed diam nonumy eirmod tempor invidunt. +.HEADING 2 "Chapter 5" +.PP +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed +diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna +ali\%quyam erat, sed diam voluptua. At vero eos et accusam et +justo duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, +no sea takimata sanctus est lorem ipsum dolor sit amet. +.PP +Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt +ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At vero +eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita kasd +gubergren, no sea takimata sanctus. +.PP +At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita +kasd gubergren. Sea takimata sanctus est lorem ipsum dolor +sit amet. Accusam et justo duo do\%lo\%res et ea rebum. Diam +nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. +.RIGHT +\*[BD]\&...end of sample outline\c +.EL +.COLLATE +\# +\# The '\c /.EL' keeps mom from depositing a line break which, +\# because "...end of sample outline" falls exactly on the last +\# baseline of the page, would spring the page trap that sets a +\# header at the top of the next page. Since the next page is a +\# title page, we don't want that. Normally, this isn't required, +\# although using it routinely before COLLATE is a good habit. +\# +\# Notice, too, the use of "\&" before "..." Whenever an input line +\# begins with either a period, an apostrophe or a space, you must +\# precede it with \&, otherwise the line will disappear, even when, +\# as here, there's an inline escape beforehand. +\# +\# ===================================================================== +\# +\# Next, a document composed of two pages of a chapter, set in DRAFT +\# style, showing the use of the EPIGRAPH BLOCK macro and the QUOTE +\# macro. +\# +\# You'll notice that the starting page number of this "draft" is 1 (in +\# roman numerals). COPYSTYLE DRAFT always numbers the first page of a +\# document 1. +\# +.TITLE "Lake Attica's Shores" +.SUBTITLE "A Romance Novel" +.AUTHOR "Rosemary Winspeare" +.CHAPTER 1 +.CHAPTER_TITLE "The Bonny Blue Yonder" +.DRAFT 1 +.REVISION 2 +.MISC "Draft 1, 2nd revision" +\# +.DOCTYPE CHAPTER +.COPYSTYLE DRAFT +\# +.EPIGRAPH_FONT I \" Epigraphs are normally set in roman +.DRAFT_WITH_PAGENUMBER \" Draft/revision info usually goes in the header +\# +\# Style the title page +\# +.COVER_CHAPTER_SIZE +6 +.COVER_CHAPTER_TITLE_STYLE \ + SIZE +5 \ + SPACE .25v +.COVER_MISC_SIZE -.25 +\# +\# What goes on the title page +\# +.COVER CHAPTER+TITLE MISC +\# +\# Begin the document +\# +.CHAPTER_SIZE +3.5 +.CHAPTER_TITLE_SIZE +5 +.CHAPTER_TITLE_SPACE +3p +.START +.EPIGRAPH BLOCK +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam +nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, +sed diam voluptua. +.RIGHT +\# +\# If running PRINTSTYLE TYPEWRITE, this adds space before +\# attribution ("Joseph E. Blough") +\# +.if \n[#PRINT_STYLE]=1 .sp +\# +\*[ROM]\[em]Joseph E. Blough +.EPIGRAPH OFF +.PP +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam +nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, +sed diam voluptua. At vero eos et accusam et justo duo do\%lo\%res et +ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. +At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Lorem ipsum +dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, sed diam +voluptua. At vero eos et accusam et justo duo do\%lo\%res et ea rebum. +Stet clita kasd gubergren, no sea takimata sanctus est. At vero eos +et accusam et justo duo do\%lo\%res et ea rebum. +.PP +Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum +dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +tempor invidunt. +.PP +"Consetetur sadipscing elitr," dixit ea. +.PP +"Sed diam nonumy eirmod tempor invidunt ut labore," dixit eum. +.PP +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam +nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, +sed diam voluptua. Consetetur sadipscing elitr, sed diam nonumy +eirmod tempor invidunt ut labore et do\%lo\%re magna. +.PP +"Lorem ipsum dolor sit amet," dixit ea. +.PP +"At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita +kasd gubergren, no sea takimata sanctus est," dixit eum. "Sed diam +nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, +sed diam voluptua." +.PP +Consetetur sadipscing elitr, sed diam nonumy eirmod tempor: +.QUOTE +Invidunt ut labore et do\%lo\%re +Magna ali\%quyam erat sed diam +Voluptua stet clita kasd gubergren +No sea takimata sanctus est. +.QUOTE OFF +.PP +Justo duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, no +sea takimata sanctus est. Lorem ipsum dolor sit amet, consetetur +sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore +et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. +.PP +"Stet clita kasd gubergren," dixit ea. +.PP +"No sea takimata sanctus est," dixit eum. +.PP +Nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. Aliquyam erat +sed diam voluptua. At vero eos et accusam et justo, duo do\%lo\%res et +ea rebum. +.PP +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam +nonumy eirmod tempor invidunt. Ut labore et do\%lo\%re magna ali\%quyam +erat, sed diam voluptua at vero. Stet clita kasd gubergren, no sea +takimata sanctus est. Consetetur sadipscing elitr, sed diam nonumy +eirmod tempor invidunt ut labore et do\%lo\%re magna. +.PP +Invidunt ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. +At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita +kasd gubergren, no sea takimata sanctus est. At vero eos et accusam et +justo duo do\%lo\%res et ea rebum. Lorem ipsum dolor sit amet, consetetur +sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore +et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At vero eos et +accusam et justo duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, +no sea takimata sanctus est. At vero eos et accusam et justo duo +do\%lo\%res et ea rebum. +.RIGHT +\*[BD]\&...end of sample chapter\c +.EL +.COLLATE +\# +\# ===================================================================== +\# +\# Finally, a sample journal article, set in two columns with a +\# 1.5-pica gutter between them. This example also uses QUOTES, +\# BLOCKQUOTES and FOOTNOTES. In addition, it's set RECTO_VERSO, +\# with differing left and right margins that alternate from page to +\# page. (The header also flips from right to left, which you can +\# see on the 2nd and 3rd pages). +\# +\# The primary purpose of this sample is to demonstrate how to +\# create a stylesheet, along with some of the control macros that +\# can be used. +\# +\# Style the title page +\# +.COVER_TITLE_CAPS +.COVER_ATTRIBUTE_SPACE .5v +.COVER_AUTHOR_STYLE \ + SIZE +1.5 \ + LEAD 14 \ + SPACE .25v +.COVER_MISC_STYLE \ + QUAD L \ + SIZE +0 +.COVER_COPYRIGHT_SIZE +0 +\# +\# What goes on the title page +\# +.COVER TITLE AUTHOR COPYRIGHT MISC +\# +.DOCTYPE DEFAULT +.COPYSTYLE FINAL +\# +.TITLE "Control Equals Chaos" +.SUBTITLE "\*[ALD1]The Psychological and Auditory \ +Impact of Serial vs. Aleatoric Music\*[RLD1]" +.AUTHOR "Joe Chang" "and" "Brad Hegel Connors" +.COPYRIGHT "2015 J. Chang, B.H. Connors +.MISC "Submitted June 3, 2015" "\*[IT]Piano Quarterly\*[PREV]" +\# +\# Style the docheader +\# +.TITLE_CAPS +.ATTRIBUTE_SPACE .33 +.AUTHOR_SIZE +1 +.SUBTITLE_SIZE +2 +\# +.L_MARGIN 6P +.R_MARGIN 4P+6p +.PT_SIZE 10 +.AUTOLEAD 1.5 +\# +.RECTO_VERSO +.PAGENUM 1 +\# +.HEADER_LEFT "Chang, Connors" \" Because we have two authors +.HEADER_SIZE +1 +\# +.DOCHEADER_ADVANCE 1.75i +.DOCHEADER_LEAD +2p +\# +\# When PRINTSTYLE is TYPESET, these indents need to be smaller than +\# the default +\# +.if \n[#PRINT_STYLE]=2 \{\ +. PARA_INDENT 1P +. QUOTE_INDENT 2 +. BLOCKQUOTE_INDENT 2 +.\} +\# +\# Style heading 1 +\# +.HEADING_STYLE 1 \ + QUAD L \ + SIZE +0 \ + NO_NUMBER \ + NO_CAPS \ + NO_UNDERSCORE \ + NO_SPACE_AFTER \ + BASELINE_ADJUST \n[.v]/8 \" ie 1/8 of the leading +\# +\# Style the blockquotes +\# +.BLOCKQUOTE_STYLE \ + FAMILY H \ + SIZE -2 \ + AUTOLEAD 2 +\# +.COLUMNS 2 1P+6p \" Set in two columns +\# +\# Being the document +\# +.START +.PP +Lorem ipsum dolor sit amet, consetetur sadipscing elitr. Sed diam +nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. Ali\%quyam +erat, sed diam voluptua. +.PP +At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita +kasd gubergren no sea takimata. Sanctus est, lorem ipsum dolor sit +amet. Consetetur sadipscing elitr, sed diam nonumy. Eirmod tempor +invidunt ut labore et do\%lo\%re magna ali\%quyam erat. Sed diam voluptua +at vero eos et accusam et justo. +\# +.BLOCKQUOTE +Stet clita kasd gubergren, no sea takimata sanctus est lorem. +Ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy +eirmod tempor. Invidunt ut labore et do\%lo\%re magna ali\%quyam erat, +sed diam voluptua at vero. Eos et accusam et justo duo do\%lo\%res et +ea rebum stet clita.\c +.FOOTNOTE \" Note the use of \c, above, to keep the word and footnote marker together. +Clita ipsum dolor sit amet, consetetur sadipscing elitr. +.FOOTNOTE OFF +.BLOCKQUOTE OFF +\# +.PP +Duo do\%lo\%res et ea rebum, stet clita kasd gubergren. No sea takimata +sanctus est lorem ipsum dolor sit amet, consetetur sadipscing elitr. +Sed diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna +ali\%quyam. Erat sed diam voluptua at. Vero eos et accusam et justo +duo do\%lo\%res et ea rebum stet. Clita kasd gubergren no sea takimata +sanctus est. +.PP +Nonumy eirmod tempor invidunt, ut labore et do\%lo\%re magna ali\%quyam +erat? At vero eos et accusam et justo duo do\%lo\%res et ea. Rebum stet +clita kasd gubergren no sea takimata sanctus. Est lorem ipsum dolor +sit amet. Sadipscing\c +.FOOTNOTE +Sadipscing diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna +ali\%quyam erat, sed diam voluptua. +.FOOTNOTE OFF + elitr sed diam nonumy eirmod tempor invidunt. Ut labore et do\%lo\%re +magna ali\%quyam erat, sed diam voluptua. At vero eos et accusam et +justo duo do\%lo\%res et ea rebum. Stet clita kasd gubergren no sea. +\# +.HEADING 1 "Schoenberg \[em]" "The Origins of Serial Pitch Organization" +\# +.PP +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam +nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, +sed diam voluptua. At vero eos et accusam et justo duo do\%lo\%res et ea +rebum. Stet clita kasd gubergren, no sea takimata sanctus est lorem. +Ipsum dolor sit amet consetetur sadipscing. Elitr, sed diam nonumy, +eirmod tempor invidunt ut labore et do\%lo\%re magna. Ali\%quyam erat sed +diam voluptua, at vero eos. Et accusam et justo duo do\%lo\%res et ea +rebum stet clita kasd gubergren lorem ipsum. Dolor sit amet +consetetur, sadipscing elitr, sed diam. Nonumy eirmod tempor invidunt +ut labore et do\%lo\%re. Magna ali\%quyam erat sed diam voluptua at vero. +Eos et accusam et justo duo do\%lo\%res et ea rebum stet clita kasd. +Gubergren no sea takimata sanctus est. +.PP +Amet consetetur sadipscing elitr sed diam nonumy eirmod. Tempor +invidunt ut labore. Et dolor\%e magna ali\%quyam erat, sed diam voluptua, +at vero. Eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita +kasd gubergren sed diam voluptua. +.PP +No sea takimata\c +.FOOTNOTE +Takimata sadipscing elitr, sed diam nonumy eirmod tempor invidunt +ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. +.FOOTNOTE OFF + sanctus est lorem. Ipsum dolor sit amet, consetetur +sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore +et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At vero eos et +accusam et justo duo do\%lo\%res et ea rebum amet. Consetetur sadipscing +elitr sed diam nonumy eirmod tempor invidunt ut labore, et do\%lo\%re +magna ali\%quyam erat. Sed diam voluptua, at vero, eos et accusam et +justo duo do\%lo\%res et ea rebum qua certiore. +\# +.HEADING 1 "Messiaen to Stockhausen \[em]" "The Quest for Absolute Control" +\# +.PP +Vero eos et accusam et justo duo do\%lo\%res et ea rebum amet: +\# +.QUOTE +Eirmod tempor invidunt +Ut labore et do\%lo\%re magna ali\%quyam erat +Sed diam voluptua +At vero eos et accusam et justo duo do\%lo\%res. +.QUOTE OFF +\# +Lorem ipsum dolor sit amet, consetetur sadipscing elitr +sed diam. Nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. +Aliquyam erat, sed diam voluptua at vero eos et accusam. Et +justo duo do\%lo\%res et rebum. +.PP +Elitr sed diam nonumy eirmod tempor. Invidunt ut labore et do\%lo\%re +magna ali\%quyam erat sed. Diam voluptua at vero eos et accusam et +justo duo do\%lo\%res et ea rebum. +\# +.BLOCKQUOTE +Sanctus est lorem ipsum dolor sit amet, consetetur sadipscing. Elitr, +sed diam nonumy eirmod tempor, invidunt ut labore et do\%lo\%re magna +ali\%quyam. Erat sed diam voluptua, at vero eos et accusam et justo +rebum amet. Consetetur sadipsc\%ing elitr sed diam nonumy eirmod +sed diam nonumy, eirmod tempor. Invidunt tempor invidunt ut labore.\c +.FOOTNOTE +Labore diam nonumy eirmod tempor, invidunt ut labore et do\%lo\%re +magna ali\%quyam. Erat sed diam voluptua, at vero eos et accusam et +justo. +.FOOTNOTE OFF + Et do\%lo\%re et magna ali\%quyam erat, sed diam voluptua, at vero. +Eos et accusam et justo duo. +.BLOCKQUOTE OFF +\# +.PP +Lorem ipsum dolor sit amet, consetetur sadipscing elitr. Sed diam +nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. +.PP +Nonumy eirmod tempor invidunt, ut labore et do\%lo\%re magna ali\%quyam +erat? At vero eos et accusam et justo duo do\%lo\%res et ea. Rebum stet +clita kasd gubergren no sea takimata sanctus. Est lorem ipsum dolor +sit amet. Sadipscing elitr sed diam nonumy eirmod tempor invidunt. +Ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. +At vero eos et accusam et justo duo do\%lo\%res et ea rebum. +Stet clita kasd gubergren no sea. Ali\%quyam erat, sed diam voluptua. +\# +.HEADING 1 "John Cage \[em]" "Leaving It All to Chance" +\# +.PP +Sit amet, consetetur sadipscing elitr, sed diam nonumy. Eirmod tempor +invidunt ut labore et do\%lo\%re magna. Ali\%quyam erat, sed diam +voluptua at vero. Eos et accusam et justo duo dolores et ea rebum. +Stet clita kasd gubergren, no sea taki\%mata sanctus est. +.PP +Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt +ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At vero +eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita kasd +gubergren, no sea takimata sanctus est lorem. Ipsum dolor sit amet, +consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt +ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At vero +eos et accusam et justo duo do\%lo\%res et ea rebum. +.PP +Stet clita kasd gubergren. No sea takimata sanctus est lorem ipsum +dolor sit. Amet consetetur sadipscing elitr, sed diam nonumy eirmod +tempor. Invidunt ut labore et do\%lo\%re magna ali\%quyam erat, sed diam +voluptua, at vero. Eos et accusam et justo duo do\%lo\%res et ea rebum. +Stet clita kasd gubergren, no sea takimata. Sanctus est lorem ipsum +dolor sit amet consetetur. Sadipscing elitr sed diam nonumy eirmod +tempor invidunt. Ut labore et do\%lo\%re magna ali\%quyam erat, sed diam +voluptua. At vero eos et accusam et justo duo do\%lo\%res et ea rebum. +\# +.BLOCKQUOTE +.PP +Stet clita kasd gubergren no sea. Takimata sanctus est lorem ipsum +dolor sit amet. Consetetur sadipscing elitr sed diam nonumy eirmod +tempor invidunt ut labore et do\%lo\%re. Magna ali\%quyam\c +.FOOTNOTE +Aliquyam nonumy eirmod tempor invidunt ut labore. +.FOOTNOTE OFF + erat, sed diam +voluptua at vero eos et accusam. Et justo duo do\%lo\%res et ea rebum, +stet clita kasd gubergren, no sea takimata. +.PP +Takimata lorem ipsum dolor sit amet consetetur sadipscing elitr. +Sed diam, nonumy eirmod tempor, invidunt ut labore et do\%lo\%re magna. +Aliquyam erat sed diam voluptua. At vero eos et accusam et +justo.\c +.FOOTNOTE +Justo vero eos et accusam et justo duo. +.FOOTNOTE OFF +.BLOCKQUOTE OFF +\# +.PP +Duo do\%lo\%res et ea rebum, stet clita kasd gubergren, no sea takimata +sanctus. Est lorem ipsum. Dolor sit amet, consetetur sadipscing elitr, +sed diam nonumy. Eirmod tempor invidunt ut labore et do\%lo\%re magna +ali\%quyam erat, sed diam voluptua. At vero eos et accusam. +.PP +Et justo duo do\%lo\%res et ea rebum stet clita kasd. Gubergren +no sea takimata sanctus est. Lorem ipsum dolor sit amet, consetetur +sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore +et dolore magna ali\%quyam erat, sed diam voluptua. At vero eos et +accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, +no sea takimata sanctus est. +\# +.HEADING 1 "Beyond Cage \[em]" "Catching the Midnight Train" +\# +.PP +Lorem ipsum dolor sit amet, consetetur sadipscing elitr. Sed diam +nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. Ali\%quyam +erat, sed diam voluptua. +.PP +At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita +kasd gubergren no sea takimata. Sanctus est, lorem ipsum dolor sit +amet. Consetetur sadipscing elitr, sed diam nonumy. Eirmod tempor +invidunt ut labore et do\%lo\%re magna ali\%quyam erat. Sed diam voluptua +at vero eos et accusam et justo. +.PP +Duo do\%lo\%res et ea rebum, stet clita kasd gubergren. No sea takimata +sanctus est lorem ipsum dolor sit amet, consetetur sadipscing elitr. +Sed diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna +ali\%quyam. Erat sed diam voluptua at. Vero eos et accusam et justo +duo do\%lo\%res et ea rebum stet. Clita kasd gubergren no sea takimata +sanctus est. +.PP +Nonumy eirmod tempor invidunt, ut labore et do\%lo\%re magna ali\%quyam +erat? At vero eos et accusam et justo duo do\%lo\%res et ea. Rebum stet +clita kasd gubergren no sea takimata sanctus. Est lorem ipsum dolor +amet. Sadipscing\c +.FOOTNOTE +Sadipscing diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna +ali\%quyam erat, sed diam voluptua. +.FOOTNOTE OFF + elitr sed diam nonumy eirmod tempor invidunt. Ut labore et do\%lo\%re +magna ali\%quyam erat, sed diam voluptua. At vero eos et accusam et +justo duo do\%lo\%res et ea rebum. Stet clita kasd gubergren no sea +takimata lorem. Ipsum dolor sit amet, consetetur sadipscing elitr. +Sed diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. +Ali\%quyam erat, sed diam voluptua. At vero eos et accusam et justo +duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, no sea +takimata sanctus est. +.PP +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed +diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna +ali\%quyam erat, sed diam voluptua. At vero eos et accusam et justo +duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, no sea +takimata sanctus est. +.RIGHT +\*[BD]\&...end of sample article\*[PREV] +.FINIS +.TOC_RV_SWITCH +.TOC +.\" Local Variables: +.\" mode: nroff +.\" End: +.\" vim: filetype=groff: diff --git a/contrib/mom/examples/slide-demo.mom b/contrib/mom/examples/slide-demo.mom new file mode 100644 index 0000000..989ce5a --- /dev/null +++ b/contrib/mom/examples/slide-demo.mom @@ -0,0 +1,438 @@ +.\" -*- mode: text; coding: utf-8; -*- +\# +\# Copyright (C) 2004-2020 Free Software Foundation, Inc. +\# Revised for version 2.5 2021-08. +\# +\# Copying and distribution of this file, with or without modification, +\# are permitted in any medium without royalty provided the copyright +\# notice and this notice are preserved. +\# +.\" Macro for code blocks +.de CODE_BLOCK +. ie \\n[.$] \{\ +. CODE off +. QUOTE off +. CENTER_BLOCK off +. \} +. el \{\ +. CENTER_BLOCK +. QUOTE +. CODE +. \} +.. +.\"---------------------------------------------------------------- +. +.TITLE "Creating slide presentations with gropdf/mom" +.PDF_TITLE "\*[$TITLE]" +. +.DOCTYPE SLIDES \ + ASPECT 16:9 \ + HEADER "Header left" "\*[$TITLE]" "Header right" \ + FOOTER "" "" "\*S[+2]\*[SLIDE#]\*S[-2]" \ + TRANSITION "Box 1 . O" \ + PAUSE "Wipe 1" +. +.PARA_SPACE .75v +.SS +3 +.HYPHENATION off +. +.NEWCOLOR darkred #aa0000 +.NEWCOLOR darkred1 #900000 +.NEWCOLOR blue1 #00007b +.NEWCOLOR blue2 #00006f +.NEWCOLOR code-grey GRAY 0.3 +.XCOLOR cyan4 +.XCOLOR green4 +. +.HEADER_COLOR darkred1 +.HEADER_RULE_COLOR blue1 +.FOOTER_RULE off +. +.COVER_STYLE \ + LEAD +8 \ + COLOR white +.HEADING_STYLE 1 \ + COLOR blue2 +.CODE_STYLE \ + FONT B \ + SIZE 115 \ + COLOR code-grey +.QUOTE_STYLE \ + QUAD LEFT +.CONDENSE 90 +. +.PDF_IMAGE_FRAME "" 1 blue1 +. +.COVERTITLE \ + "Creating slide presentations" \ + "with" \ + "gropdf and mom" +. +.COVER_START_POS 15P +.COVER COVERTITLE +. +.STRING hand \*[darkred]\[rh]\*[black] +. +.\" Make first slide black. +.\" If printing, remove to save ink. +.SLIDE_COLOR black +. +.START +.SLIDE_COLOR off +. +.ADD_SPACE 9p +.IB 8P +. +.HEADING 1 "PDF slides" +.SP .5v +. +.PP +PDF slides are a subset of mom's document processing macros +formatted for presentation mode when viewed in a PDF reader. In +most respects, they behave identically to the default document type +described in mom's html documentation\*[HANG .] +.BR +Differences in the formatting include\*[HANG :] +. +.PAUSE +.LEFT +.LIST +.ITEM .2v +the choice between two aspect ratios, 4:3 or 16:9 +.LIST USER \*[hand] +.ITEM +both fit on A4 or US letter paper sizes when printed +. +.PAUSE +.LIST BACK +.ITEM .2v +type is set centered by default +.LIST USER \*[hand] +.ITEM +this may be changed to left, right, or justified +. +.PAUSE +.LIST BACK +.ITEM .2v +headers and/or footers must be explicitly instantiated +.LIST USER \*[hand] +.ITEM +the left, centre, and right parts must be supplied +by the user +. +.PAUSE +.LIST BACK +.ITEM .2v +slide numbering (pagination) is disabled +.LIST USER \*[hand] +.ITEM +if slide numbering is desired, it must be put in the left, +centre, or right part of a header or footer definition +.QUIT_LISTS +. +.NEWSLIDE +. +.ADD_SPACE 9p +.IB 2P +. +.DOC_QUAD CENTER +. +.HEADING 1 "Pauses and transitions" +.SP .5v +. +.PP +Slides made with mom take advantage of the pause and slide +transition features provided in presentation mode by most +contemporary PDF readers. +.PAUSE +.PP +Pauses and transitions are dynamic and engaging, holding the +viewer's attention while increasing the impact of the content. +.PAUSE +.PP +With pauses, material on a slide can be revealed progressively +with +.BR +a mouse click or by hitting +. +.LIST +.ITEM .5v +Next +.ITEM 2p +PgDown +.ITEM 2p +Spacebar +.LIST off +. +.PAUSE +.PP +The manner in which new material is revealed and new slides +are displayed can be tailored separately for effects like Fade, +Dissolve, Wipe and others, and can be changed on the fly. +. +.NEWSLIDE +. +.PP +Mom slides begin with the macro DOCTYPE SLIDES, where you choose +the aspect ratio and transition effects, and set up headers and +footers\*[HANG .] +.PAUSE +.PP +You may find it convenient to provide a title for the slide +presentation, as the top of the .mom file for these slides +demonstrates\*[HANG :] +. +.SP -1v +.CODE_BLOCK +\*[COND]\&.TITLE "Creating slide presentations with gropdf/mom" +\&.PDF_TITLE "\\*[$TITLE]" +\&.\\" +\&.DOCTYPE SLIDES \\ + ASPECT 16:9 \\ + HEADER "Header left" "\\*[$TITLE]" "Header right" \\ + FOOTER "" "" "\\*S[+2]\\*[SLIDE#]\\*S[-2]" \\ + TRANSITION "Box 1 . O" \\ + PAUSE "Wipe 1"\*[CONDX] +.CODE_BLOCK off +.SP -.5v +. +.PAUSE +.PP +Afterwards, you may make any changes you like to the layout and +style, then enter START. Unlike other mom documents, PRINTSTYLE is +not required\*[HANG .] +. +.NEWSLIDE +. +.ADD_SPACE 9p +.IB -1P+6p +. +.HEADING 1 \ + "The \s[-2]PAUSE\s[0] and \s[-2]NEWSLIDE\s[0] macros" +.SP .5v +. +.PP +Whenever you want a pause before revealing the next material on a +slide, enter the macro PAUSE on a line by itself. If you want a +reveal effect that's different from the current one, you may pass +PAUSE the parameters of the new effect\*[HANG :] +. +.SP -1v +.PAUSE +. +.CODE_BLOCK +\&.PAUSE "Dissolve .4" +.CODE_BLOCK off +. +.PAUSE "Dissolve .4" +Notice that this material dissolves in, whereas before, new material +appeared from left to right. \*[BU6]The new effect stays in force +until you change it again\*[HANG .] +.PAUSE "Wipe 1" +.PP +New slides are introduced with NEWSLIDE. \*[bu6]Transition effects +and parameters may be given to NEWSLIDE\*[HANG :] +.SP -1v +. +.CODE_BLOCK +\&.NEWSLIDE "Blinds .5" +.CODE_BLOCK off +. +.PAUSE +The next slide in this presentation will appear with the Blinds +effect\*[HANG .] +.BR +Consult man gropdf\c +\*[FU2]\*[UP 1p](\*[DOWN 1p]\*[BU2]1\*[UP 1p]\*[BU1])\*[DOWN 1p] +for all the pause/transition effects and their +parameters.\*[BU6]\*[UP 2p]\s[-2]*\s[0] +.SP 4p +.FT I +.PT_SIZE -2 +*Note that not all PDF \*[BU6]viewers support every effect\*[HANG .] +.FT R +.PT_SIZE +2 +. +.NEWSLIDE "Blinds .5" +.SLIDE_COLOR antiquewhite +. +.ADD_SPACE 9p +. +.HEADING 1 "Highlighting items +.SP .5v +.PP +The BOX macro lets you highlight items as they are revealed with +frames and shaded backgrounds\*[HANG .] +.PAUSE "Fade .5" +.BOX SHADED pink INSET 3p +.PP +This item is highlighted with a shaded background\*[HANG .] +.PAUSE +.PP +The highlight moves to each new item as it's revealed\*[HANG .] +.PAUSE +.PP +Highlighting can continue for as many slides as you want\*[HANG .] +.PAUSE +.PP +If there are no pauses on a slide, BOX can be used +.BR +to provide a background for all the items\*[HANG .] +.PAUSE +.PP +The SLIDE_COLOR macro lets you colour +.BR +the whole slide (q.v.)\*[HANG .] +.BOX off +. +.NEWSLIDE "Box 1 . O" +.SLIDE_COLOR off +. +.ADD_SPACE 9p +. +.HEADING 1 "Macros and preprocessors" +.SP .5v +.PP +Slides can make full use of all mom's document processing and +typesetting macros, including preprocessors and image insertion\*[HANG .] +. +.IBX CLEAR +.LS -4 +. +.PAD "\ +\*[FWD 4P+6p]\*[ST1]#\*[ST1X]\ +\*[FWD 2P+6p]\*[ST2]\*[FWD 12P]\\*[ST2X]\ +\*[FWD 3P+9p]\*[ST3]#\*[ST3X]\ +\*[FWD 3P]\*[ST4]#\*[ST4X]\*[FWD 2P]" +. +.ST 1 L +.ST 2 C +.ST 3 C +.ST 4 C +. +.PAUSE "Fade .5" +. +.TAB 1 +.PT_SIZE -1.5 +.CENTER +\*[BD]\*[blue2]\*[DOWN 6p]tbl +.LEFT +.mk +.PT_SIZE -1 +.COLOR blue2 +.TS H BOXED +tab(^) allbox; +c c +n n. +\*[darkred]\s[-.5]\*[DOWN .5p]Year^Mean Temp.\s[0]\*[blue2] +_ +.TH +\*[cyan4]\fB2015^28.3\*[blue2] +\*[cyan4]1998^28.3\*[blue2] +\*[cyan4]1997^28.3\*[blue2] +\*[cyan4]2010^28.1\*[blue2] +\*[cyan4]2002^28.1\*[blue2] +\*[cyan4]2005^28.0\*[blue2] +\*[cyan4]2014^27.9\*[blue2] +\*[cyan4]2009^27.9\*[blue2] +.TE +. +.rt +.PAUSE +. +.TN +.PT_SIZE +1 +\*[FWD 10p]\*[DOWN 6p]pic +.COLOR green4 +.SP 3p +.PS 2 LEFT +A: ellipse wid 0.5 ht 0.5 + arrow color "green4" up 0.2 from A.n + arrow color "green4" up 0.2 right 0.2 from A.ne + arrow color "green4" right 0.2 from A.e + arrow color "green4" down 0.2 right 0.2 from A.se + arrow color "green4" down 0.2 from A.s + arrow color "green4" down 0.2 left 0.2 from A.sw + arrow color "green4" left 0.2 from A.w + arrow color "green4" up 0.2 left 0.2 from A.nw +.PE +. +.rt +.PAUSE +. +.TN +.COLOR blue2 +\*[FWD 1p]\*[DOWN 6p]eqn +.FAMILY T +.PT_SIZE +3 +.LS +.COLOR code-grey +.SP 4P +.EQ +f sub X (x) ^=^ left { + rpile { 0 above 2x above 0 } + ~~lpile { x < 0 above 0 <= x <= 1 above x > 1 } +.EN +. +.rt +.PAUSE +. +.TN +.FAMILY H +.PT_SIZE -3 +.COLOR blue2 +\*[DOWN 6p]pdf image\*[black]\*[PREV] +.SP 2P+6p +.PDF_IMAGE -C penguin.pdf 81p 96p FRAME +.TQ +. +.NEWSLIDE "Box 1 . O" +.ADD_SPACE 5p +.IB 10P +.PT_SIZE +1.5 +. +.HEADING 1 "Printing handouts" +.SP .5v +. +.CODE_STYLE \ + COLOR BLACK \ + SIZE 120 +.PP +Because slides contain pauses, they need a little help on their +way to the printer or they stop printing at the first pause\*[HANG .] +.PAUSE "Wipe 1" +.PP +Setting GROPDF_NOSLIDE=1 before invoking +\[oq]\*[FU4]\*[CODE]\*[COND]pdfmom\*[CONDX]\*[CODE off]\*[FU4]\[cq] +or +\[oq]\*[FU2]\*[CODE]\*[COND]groff\~-Tpdf\*[CONDX]\*[CODE off]\*[FU6]\[cq] +disables the pauses\*[HANG :] +. +.SP -1v +. +.CODE_STYLE \ + COLOR code-grey \ + SIZE 110 +.CODE_BLOCK +\*[COND]GROPDF_NOSLIDE=1 pdfmom <options> slide-file.mom\*[CONDX] +.CODE_BLOCK off +. +.PAUSE +The output may be piped directly to a printer or saved to a file\*[HANG .] +.PAUSE +.PP +See mom's html documentation and the gropdf\c +\*[FU2]\*[UP 1p](\*[DOWN 1p]\*[BU2]1\*[UP 1p]\*[BU1])\*[DOWN 1p] +manpage for complete information concerning slide usage\*[HANG .] +. +.SP 9p +.CENTER_BLOCK +.nr dcl-ind -1 1 +.while \n[dcl-ind]<4 \{\ +. DCL SOLID \n+[dcl-ind]P 9p 9p blue2 +.\} +.CENTER_BLOCK off +.\" Local Variables: +.\" mode: nroff +.\" End: +.\" vim: filetype=groff: diff --git a/contrib/mom/examples/test-mom.sh.in b/contrib/mom/examples/test-mom.sh.in new file mode 100644 index 0000000..ebaba20 --- /dev/null +++ b/contrib/mom/examples/test-mom.sh.in @@ -0,0 +1,92 @@ +#!/bin/sh +# +# Copyright (C) 2018-2020 Free Software Foundation, Inc. +# +# This file is part of groff. +# +# groff 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 3 of the License, or +# (at your option) any later version. +# +# groff 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, see <http://www.gnu.org/licenses/>. +# + +builddir="@abs_top_builddir@" +have_urw_fonts="@groff_have_urw_fonts@" +examplesdir="$builddir/contrib/mom/examples" +ret=0 +list=" + letter.pdf + mom-pdf.pdf + mon_premier_doc.pdf + sample_docs.pdf + slide-demo.pdf + typesetting.pdf + copyright-chapter.pdf + copyright-default.pdf + " + +if test "$have_urw_fonts" != "yes"; then + echo "No URW fonts, mom examples cannot be correctly generated" + exit 77 +fi + +for cmd in pdfinfo pdfimages +do + if ! command -v $cmd >/dev/null + then + echo "cannot locate '$cmd' command; skipping" >&2 + exit 77 # skip + fi +done + +# $1: pdf file +# $2: expected number of pages +check_number_pages() +{ + echo "Checking number of pages of $1" + n_pages=`pdfinfo $1 | grep Pages | awk '{ print $2}'` + if test "$n_pages" != "$2"; then + echo " Error: expected $2 pages, found $n_pages pages" + ret=255 + fi +} + +# $1 pdf file +check_has_images() +{ + echo "Checking if $1 has images" + n_lines=`pdfimages -list $1 | wc -l ` + if test $n_lines -le 2; then + echo " no images found" + ret=255 + fi +} + +for k in $list; do + if ! test -f $examplesdir/$k; then + echo "File $k not found" + exit 255 + fi +done + +check_number_pages "$examplesdir/letter.pdf" 1 +check_number_pages "$examplesdir/mom-pdf.pdf" 8 +check_number_pages "$examplesdir/mon_premier_doc.pdf" 5 +check_number_pages "$examplesdir/sample_docs.pdf" 12 +check_number_pages "$examplesdir/slide-demo.pdf" 33 +check_number_pages "$examplesdir/typesetting.pdf" 3 +check_number_pages "$examplesdir/copyright-chapter.pdf" 5 +check_number_pages "$examplesdir/copyright-default.pdf" 5 + +check_has_images "$examplesdir/typesetting.pdf" +check_has_images "$examplesdir/slide-demo.pdf" + +exit $ret diff --git a/contrib/mom/examples/typesetting.mom b/contrib/mom/examples/typesetting.mom new file mode 100644 index 0000000..e273611 --- /dev/null +++ b/contrib/mom/examples/typesetting.mom @@ -0,0 +1,707 @@ +.\" -*- mode: text; coding: utf-8; -*- +\# +\# Copyright 2004-2020 Free Software Foundation, Inc. +\# +\# Copying and distribution of this file, with or without modification, +\# are permitted in any medium without royalty provided the copyright +\# notice and this notice are preserved. +\# +\# Most mom users rely on mom's document processing macros to format +\# their work. The doc processing macros take care of all things +\# typographic and are simple, clear and easy to learn. The kind of +\# "by hand" typesetting this file demonstrates is geared towards +\# professional typographers. Bear in mind, though, that the full +\# power of mom's typesetting capabilities can be brought to bear on +\# document processing as well. +\# +\# Basic page setup +\# +.PAGE 8.5i 11i 1i 1i 1i \" Page size, margins +\# +\# Basic type parameters +\# +.FAMILY T \" Times Roman family +.FT B \" Bold font +.PT_SIZE 12 \" Point size +.LS 14 \" Leading (line spacing) +.LEFT \" Set lines flush left, nofill mode +\# +\# Refinements +\# +.HY \" Hyphenate +.KERN \" Automatic pairwise kerning +.LIGATURES \" Automatic ligature generation +.SMARTQUOTES \" Enable smartquotes +.SS 0 \" No extra space between sentences +\# +.SP |1i-1v \" Advance 1 inch from top of paper to first baseline +Example 1\*[BU 2]: +.ALD .25v \" Advance an extra 1/4 linespace +.UNDERSCORE 3.5p "T\*[BU 4]asting notes using padding, string tabs \ +and multi-columns" +\# +.SP \" Add an extra line space +\# +.FAM H \" Helvetica family +.PT_SIZE 10 +.LS 11 \" New leading +\# +\# The following uses a combination of padding, string tabs, and the +\# FWD escape to set up five tabs with 1-pica gutters stretched over +\# the full line length. +\# +.SILENT \" Don't print the next line +.PAD "\*[ST1]VIN#\*[ST1X]\*[FWD 1P]\*[ST2]ROBE#\*[ST2X]\ +\*[FWD 1P]\*[ST3]NEZ#\*[ST3X]\*[FWD 1P]\*[ST4]BOUCHE#\*[ST4X]\ +\*[FWD 1P]\*[ST5]COMMENTAIRES\*[ST5X]" +.SILENT OFF \" Resume normal printing of text +\# +\# Now that the string tabs have been marked off, we "set" them. +\# +.ST 1 L \" First string tab flush left, nofill (line-for-line) mode +.ST 2 L QUAD \" Remaining tabs are flush left/rag right, fill mode +.ST 3 L QUAD +.ST 4 L QUAD +.ST 5 L QUAD +\# +.TAB 1 \" Call first tab +.UNDERSCORE "VIN" +.TN \" Move to next tab and stay on the same baseline +.UNDERSCORE "ROBE" +.TN \" Ibid +.UNDERSCORE "NEZ" +.TN \" Ibid +.UNDERSCORE "BOUCHE" +.TN \" Ibid +.UNDERSCORE "COMMENTAIRES" +.TQ \" Quit tabs +\# +.ALD 6p \" Advance an extra 6 points +.FT R \" Change font to roman (medium) +.MCO \" Turn multi-column mode on +\# +.TAB 1 \" Notice that this tab gets set line-for-line +\*[IT]Peelee Island \" Set italic +\*[PREV]Gewürztraminer \" Revert to former font (roman) +2000 +(Canada) +.MCR \" Return to top of column +.TAB 2 \" Call tab 2; in multi-column mode, don't use .TN +Jaune pâle. +.MCR +.TB 3 \" Notice that from here on, we use the alias TB instead of TAB +Frais, fruité, ci\%tronné, arômes fortes de lichee et de fruits +tropicaux. +.MCR +.TB 4 +Doux, fruité, bien équilibré avec une bonne acidité. +.MCR +.TB 5 +Bon apéro. Servir avec des plats +.RW .1 \" Reduce Whitespace between letters to tighten this line +indiens ou \%chinois. +.RW 0 \" Back to normal spacing between letters +.BR +Excellent rapport qualité/prix. +.MCX 8p \" Multi-column mode off; advance an extra 8 points +.MCO \" Re-invoke multi-columns for next wine description +.TB 1 +\*[IT]Carau Pujol +\*[ROM]Tannat +1995 +(Uraguay) +.MCR +.TB 2 +Rubis foncé, vio\%lacée, presque opaque. +.MCR +.TB 3 +Belles arômes de fruits foncés (prunes, cerises noires, cassis). +Odeurs tertiares de cuir, cèdre, violets, eucalyptus, avec une trace +exotique de Band-Aid*\*[BU 12]. +\# +\# The \*[BU 12], above, pulls the period back so that it falls +\# underneath the asterisk. \*[BP<n>] could have been used instead +\# if you prefer to use points rather than kern units. +\# +.MCR +.TB 4 +Très rond, tannins mûres et veloutés, avec un long finis fruité et +doucement alcoolique. +.MCR +.TB 5 +Superbe\|! Une aubaine à ne pas manquer. Prêt à boire maintenant. +.MCX 1v \" Multi-columns off; advance an extra linespace +\# +\# Now, an example of a hanging indent. This is excessively fussy +\# from a typographic standpoint in that it hangs the asterisk outside +\# the current left margin so that the text following it lines up with +\# with the text in the tasting notes. Notice that in order to use a +\# hanging indent, you must first set a left indent. +\# +.FT I \" Change font to italic +.PT_SIZE -.5 \" Reduce point size by 1/2 point +.LS -.5 \" Reduce leading by 1/2 point +.JUSTIFY \" Set text justified +\# +\# Now, move the left margin back by the width of an asterisk plus 2 points... +\# +.L_MARGIN -(\w'*'+2p) +\# +\# ...and set a left indent equal to the width of an asterisk plus 2 points +\# +.IL \w'*'+2p +\# +\# Now, set the hanging indent equal to the left indent, effectively +\# pulling the first line of the following text back to the new left +\# margin. Subsequent output lines will be indented by the .IL +\# amount. Notice that when using the \w inline escape, there's no +\# need to append a unit of measure. +\# +.HI \w'*'+2p +*\*[FWD 1p]The term "Band-Aid" means the slightly sweet, vaguely chemical +smell associated with medical-grade plastics. It is often found in +wines from terroirs in South America. Provided a wine has a sufficient +concentration of fruit +.RW .04 \" Tighten the next line slightly, so "lipstick" doesn't hyphenate. +aromas and complex tertiary characteristics, Band-Aid is a Good Thing. +Otherwise, it smells like cheap lipstick. +.RW 0 \" Reset kerning to 0 +\# +\# Notice, above, that although the values for IL and HI are the width +\# of an asterisk plus 2 points, when setting the first line of text +\# (the one with the asterisk at the beginning), we put only 1 point of +\# space after the *. This is to compensate for the fact that in the +\# italic font, the letter T doesn't align visually with the rest of +\# the text. As already noted, this is an extremely fussy example. :) +\# +.IQ CLEAR \" Cancel and clear stored indent values +.L_MARGIN 1i \" Reset left margin to its original value. +\# +.ALD 2P \" Add 2-picas extra space before next example +\# +.FAM T +.FT B +.PT_SIZE 12 +.LS 14 +\# +Example 2: +.ALD .25v +\# +.COMMENT +In the next line, because the string to be underscored must be +enclosed in double-quotes, you can't use the double-quote character +itself around the word "Massaging". We circumvent this by using the +groff inline escapes \[lq] and \[rq] (leftquote and rightquote). +.COMMENT OFF +\# +.UNDERSCORE 3.5p "\[lq]Massaging\[rq] \*[BCK 1p]a passage of rag right text" +.SP \" Add an extra linespace +\# +.PT_SIZE 12.5 +.LS 14 +.PT_SIZE -1 \" Reduce point size by 1 point +Passage using groff spacing defaults +\# +.ALD .5v \" Add an extra 1/2 line space +\# +.PT_SIZE +1 \" Restore point size +.QUAD LEFT \" Set quad left, fill mode +.IB 3P \" Indent 3 picas from both the left and right margins +.FT R +The thousand injuries of Fortunato I had borne as I best could; +but when he ventured upon insult, I vowed revenge. You, who so well +know the nature of my soul, will not suppose, however, that I gave +utterance to a threat. \*[IT]At length\*[PREV] I would be +avenged; this was a point definitively settled\[em]but the very +definitiveness with which it was resolved, precluded the idea of +risk. I must not only punish, but punish with impunity. A +wrong is unredressed when retribution overtakes its redresser. +It is equally unredressed when the avenger fails to make himself +felt as such to him who has done the wrong. +.ALD 6p +\# +\# The next line is set quad right, nofill mode, 1/2 point smaller +\# than the preceding text (using the \*[SIZE <n>] inline escape. +\# +.RIGHT +\*[SIZE -.5]\[em]Edgar Allen Poe, \*[IT]The Cask of Amontillado\*[PREV]\*[SIZE +.5] +.SP \" Extra linespace +.IBQ \" Disable "indent both" +\# +\# The passage above, while acceptable in a longer document, exhibits a +\# few typographic flaws. The shape of the right margin rag exhibits +\# a decidedly "rounded" appearance. The word "I" stands alone at the +\# end of the third line. The space between the 1st and 2nd sentences +\# ("...revenge. You...") is too large, owing to the letter "Y" that +\# begins the 2nd sentence. The spacing between "A wrong..." (line 6) +\# is equally too large because of the way "A" and "w" fit together. +\# The em-dash before Edgar isn't vertically centered with the letter "E". +\# And so on. The most important correction below is fixing the rag +\# so that longer and shorter lines alternate. This is accomplished by +\# manually breaking lines and then slightly lengthening and shortening +\# them until a pleasing rag is achieved. The remainder of the little +\# flaws are fixed with inline escapes. +\# +.FT B +.PT_SIZE -1 +.LEFT +The same passage, \*[BU4]"massaged" +\# +.ALD .5v +\# +.FT R +.PT_SIZE +1 +.QUAD LEFT +.HY OFF \" Turn automatic hyphenation off +.BR_AT_LINE_KERN \" Automatically insert a line break (.BR) at each .RW and .EW +.WS +1 \" Increase word space slightly +.IB \" Turn "indent both" back on; values are the same as before +\# +The thousand injuries of Fortunato I had borne as I best could; +but when he ventured upon insult, I \*[BU2]vowed revenge. +\*[BU4]Y\*[BU6]ou, \*[BU4]who so \*[BU2]well know the nature +.EW .2 +of my soul, \*[BU2]will not suppose, however, that I gave utterance +to a threat. \*[IT]At +.EW .2 +length\*[PREV] I would be avenged; this was a point definitively +settled\[em]but the +.EW .2 +v\*[BU1]ery definitiveness with which it was resolved, precluded the +idea of risk. +.EW 0 +I must not only punish, but punish with impunity. A \*[BCK 1p]wrong +is unredressed +.EW .1 +when retribution overtakes its redresser. It is equally unredressed +when the +.RW .1 +avenger fails to make himself felt as such to him \*[BU 2]who has +done the wrong. +.RW 0 \" Restore normal kerning +.WS +0 \" Restore normal wordspacing +.ALD 6p +.PT_SIZE -.5 +.RIGHT +\*[UP 1.5p]\[em]\*[DOWN 1.5p]\*[BCK 1p]Edgar \*[BCK 1p]Allen Poe, \ +\*[IT]The Cask of Amontillado\*[PREV] +.IQ CLEAR \" Cancel and clear stored values of all indents +\# +.NEWPAGE \" Start a new page +.T_MARGIN 1i \" Set top margin to 1i (approx. equivalent to .ALD 1i-1v above) +\# +.FAM T +.FT B +.PT_SIZE 12 +.LS 14 +.LEFT +\# +Example 3: +.ALD .25v +.UNDERSCORE 3.5p "A \*[BU2]recipe for enumerated lists using indents" +.SP .5v \" Add an extra half line space +.ie '\*[.T]'ps' \ +.FAM N \" New Century Schoolbook family +.el .if '\*[.T]'pdf' \ +.FAM U-N +.FT R +.PT_SIZE 11 +.LS 13 +.HY \" Turn hyphenation back on +.JUSTIFY \" Justify text +This example demonstrates the use of left and hanging indents for +simple enumerated lists. Nested lists are possible, as the example +shows; however, the more complex the nesting, the wiser it becomes +to use (string) tabs, as seen in Example 4. +.DBX .5 0 \n[.l]u 2P+9p \" Draw box; \n[.l]u means "the current line length" +.IB 6p \" Indent from both left and right margins +.ALD 14p +\*[BD]Please note: mom\*[PREV] has macros that allow you to set +enumerated lists automatically. These examples merely show hanging +indents and string tabs in use. +\# +.ALD 9p +.JUSTIFY \" Justify text +.IL \w'\0.\0' \" Establish a left indent equal to 2 figure spaces plus a period. +.HI \w'\0.\0' \" Establish a hanging indent equal to the left indent. +.ALD 6p +\# +\# +1.\0This is the first item in the list. N\*[BU2]otice how the first line +"hangs" back from the remaining text, which is otherwise +indented by the width of by two figure-spaces (digit-width +spaces) and a period. +.BR +.HI \" Notice that HI doesn't require an argument once the value's set +.ALD 6p +2.\0This is the second item in the list. As with the above item, +notice the use of the \*[BU8]\\0 escape sequence in the input +text. It's there to ensure that the space after the number/period +combination always remains the same (i.e. doesn't stretch when the +line is justified). That way, the text of each item always lines up +perfectly. +\# +.COMMENT +Now we're going to set a bullet-point list, indented from the text +above by 1 pica. IL arguments are always added to whatever value +is in already effect for IL, hence all we have to do is tell mom to +indent (from the current left indent) 1 pica plus the width of the +bullet character, \[bu]. \*[FWD 3p] puts three points of space after +the bullet so that the bullet and the text are visually separated. +.COMMENT OFF +\# +\# +.IL 1P+\w'\[bu]\*[FWD 3p]' +\# +\# Hanging indents are always relative to the current left indent. +\# The additional 1-pica indent, above, already having been taken +\# care of, we only want to hang the first lines of bullet list +\# items back by the width of the bullet character plus its 3 extra +\# points of space. +\# +.ALD 6p +.HI \w'\[bu]\*[FWD 3p]' +\*[DOWN 1p]\[bu]\*[UP 1p]\*[FWD 3p]This is the first line of a +sublist with bullets. N\*[BU2]otice how the first line (the one +with the bullet) is indented exactly one pica from the text of the +list item above it, while the remaining lines align with the left +indent we set above. +.ALD 6p +.HI +\*[DOWN 1p]\[bu]\*[UP 1p]\*[FWD 3p]This is the second item of the +sublist with bullets. \*[BU4]We could go on indefinitely, but let's +go back to the top level (numbered) list... +\# +\# The easiest way to return to a previous indent value is by +\# subtraction. The argument to IL, above, was 1P+\w'[bu]\*[FWD +\# 3p]', so we just reverse it by putting a minus sign in front. +\# The parentheses are required for groff to evaluate the expression +\# properly. +\# +.IL -(1P+\w'\[bu]\*[FWD 3p]') +.HI \w'\0.\0' \" Reset hanging indent for use with numbered items. +.ALD 6p +3.\0...and here we are. +.IQ CLEAR \" Don't forget to cancel and/or clear indents! +\# +.FAM T +.FT B +.PT_SIZE 12 +.LS 14 +.LEFT +.SP +\# +Example 4: +.ALD .25v +.UNDERSCORE 3.5p "A \*[BU 2]recipe for nested lists using string tabs" +.SP .5v +.ie '\*[.T]'ps' \ +.FAM N +.el .if '\*[.T]'pdf' \ +.FAM U-N +.FT R +.PT_SIZE 11 +.LS 13 +.JUSTIFY +Although setting up string tabs is a bit more complex than setting +up indents, it's \*[BU 3]well worth the effort, especially for +nested lists. +.ALD 6p +\# +.COMMENT +The PAD line, below, sets up two string tabs. The first (ST1) is +exactly the length of two figure spaces and a period. The second +(ST2) is simply "the remainder of the line." +.COMMENT OFF +\# +.SILENT \" Don't print any of this +.PAD "\*[ST1]\0.\0\*[ST1X]\*[ST2]#\*[ST2X]" +.ST 1 L \" String tabs must be "set" after being marked off in a line +.ST 2 J \" ST 1 will be set flush left, nofill; ST 2 will be justified. +.SILENT OFF \" Restore printing +\# +.TB 1 +1.\c +.TN \" Use .TN so text stays on the same baseline +This is the first item in the list. N\*[BU 2]otice how, just as in +Example 3, the first line hangs back from the remaining text, which +is otherwise +indented. +.ALD 6p +.TB 1 +2.\c +.TN +This is the second item in the list. N\*[BU 2]otice that when +setting "lists" with tabs, there's no need to use the \*[BU 8]\\0 +escape sequence after the number/period combination in the input +text. +\# +.COMMENT +Now, set up the indented bullet-point sublist. The PAD line +says: move forward 12 points (1 pica), then mark off a string +tab (ST3) that's the length of the bullet character; move forward +another three points, then make the next string tab (ST4) the +length of remainder of the line. +.COMMENT OFF +\# +.SILENT +.PAD "\*[FWD 12p]\*[ST3]\[bu]\*[ST3X]\*[FWD 3p]\*[ST4]#\*[ST4X]" +.ST 3 L +.ST 4 J +.SILENT OFF +.ALD 6p +.TB 3 +\*[DOWN 1p]\[bu]\*[UP 1p]\c +.TN +This is the first line of a sublist with bullets. N\*[BU2]otice +how the bullets and the text line up exactly the same as in Example +3. +.ALD 6p +.TB 3 +\*[DOWN 1p]\[bu]\*[UP 1p]\c +.TN +This is the second item of the sublist with bullets. For the fun of +it, lets add in an +.SPREAD +en-dashed sub-sublist. +.BR \" We're in fill mode right now, so you must terminate the line with BR +\# +.SILENT +.PAD "\*[FWD 12p]\*[ST5]\[en]\*[ST5X]\*[FWD 4p]\*[ST6]#\*[ST6X]" +.ST 5 L +.ST 6 J +.SILENT OFF +.ALD 6p +.TB 5 +\*[UP .75p]\[en]\*[DOWN .75p]\c +.TN +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam +nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam +erat, sed diam voluptua. +.ALD 6p +.TB 5 +\*[UP .75p]\[en]\*[DOWN .75p]\c +.TN +At \*[BU 3]vero eos et accusam et justo duo dolores et ea rebum. +Stet clita kasd gubergren, no sea takimata sanctus est lorem ipsum +dolor sit amet. +.ALD 6p +.TB 1 +3.\c +.TN +And here we are, back at the top-level numbered list with a minimum +of muss and fuss, +.ALD 6p +.TB 1 +4.\c +.TN +Generally speaking, once you get the hang of string tabs and the +\*[BD]PAD\*[PREV] macro, you'll find setting up complex indenting +structures easier than with the indent macros. +.TQ +\# +.NEWPAGE +.FAM T +.FT B +.PT_SIZE 12 +.LS 14 +.RLD 2p +.LEFT +\# +Example 5: +.ALD .25v +.UNDERSCORE 3.5p "Word spacing" +.ALD 8p +.ie '\*[.T]'ps' \ +.FAM P \" Palatino family +.el .if '\*[.T]'pdf' \ +.FAM U-P +.PT_SIZE 11 +.LS 14 +\# +\# The "label" lines for the following are set in Helvetica +\# bold, one point smaller than the examples themselves. This +\# demonstrates the use of the groff inline escape \f[...] to change +\# both family and font inline. It also shows using the mom inline +\# \*S[...], which is an alternate form of the inline, \*[SIZE <n>] +\# +\f[HB]\*S[-1]Normal word spacing\*S[+1]\*[PREV] +.FT R +N\*[BU1]o\*[BU1]w \*[BU1]is the time for all good men to come to the aid of the party. +.ALD 4p +\f[HB]\*S[-1]Word spacing adjusted by \*[UP 1p]\*[BU3]+\*[DOWN 1p]\*[BU1]2\*S[+1]\*[PREV] +.FT R +.WS +2 +N\*[BU1]o\*[BU1]w \*[BU1]is the time for all good men to come to the aid of the party. +.WS DEFAULT +.ALD 4p +\f[HB]\*S[-1]Word spacing adjusted by \*[UP 1p]\*[BU3]+\*[DOWN 1p]4\*S[+1]\*[PREV] +.FT R +.WS +4 +N\*[BU1]o\*[BU1]w \*[BU1]is the time for all good men to come to the aid of the party. +.WS DEFAULT +.ALD 4p +\f[HB]\*S[-1]Word spacing adjusted by \*[UP 1p]\*[BU3]+\*[DOWN 1p]6\*S[+1]\*[PREV] +.FT R +.WS +6 +N\*[BU1]o\*[BU1]w \*[BU1]is the time for all good men to come to the aid of the party. +.WS DEFAULT +.SP 1.5v +\# +.FAM T +.FT B +.PT_SIZE 12 +.LS 14 +\# +.LEFT +Example 6: +.ALD .25v +.UNDERSCORE 3.5p "Line kerning" +.ALD 8p +.ie '\*[.T]'ps' \ +.FAM P \" Palatino family +.el .if '\*[.T]'pdf' \ +.FAM U-P +.FT R +.PT_SIZE 11 +.LS 15 +\# +\# Here, we set up some tabs so the examples can go into facing columns. +\# +.TAB_SET 1 0 19.5P L +.TAB_SET 2 19.5P 19.5P L +\# +.MCO \" Turn multi-columns on +.TB 1 +\f[HB]\*S[-1]Unkerned line\*S[+1]\*[PREV] +.FT R +"But this is \*[IT]important!\/"\*[PREV]she exclaimed. +.ALD 4p +\f[HB]\*S[-1]Line "tightened" \[en] .RW .1\*S[+1]\*[PREV] +.RW .1 +"But this is \*[IT]important!\/"\*[PREV]she exclaimed. +.ALD 4p +\# +\# In the next line, notice that because it uses a different family +\# (Helvetica instead of Palatino), the RW macro doesn't affect it. +\# +\f[HB]\*S[-1]Line "tightened" \[en] .RW .2\*S[+1]\*[PREV] +.RW .2 +"But this is \*[IT]important!\/"\*[PREV]she exclaimed. +.ALD 4p +\f[HB]\*S[-1]Line "tightened" \[en] .RW .3\*S[+1]\*[PREV] +.RW .3 +"But this is \*[IT]important!\/"\*[PREV]she exclaimed. +.MCR +.TB 2 +\f[HB]\*S[-1]Unkerned line\*S[+1]\*[PREV] +"But this is \*[IT]important!\/"\*[PREV]she exclaimed. +.ALD 4p +\f[HB]\*S[-1]Line "loosened" \[en] .EW .1\*S[+1]\*[PREV] +.EW .1 +"But this is \*[IT]important!\/"\*[PREV]she exclaimed. +.ALD 4p +\f[HB]\*S[-1]Line "loosened" \[en] .EW .2\*S[+1]\*[PREV] +.EW .2 +"But this is \*[IT]important!\/"\*[PREV]she exclaimed. +.ALD 4p +\f[HB]\*S[-1]Line "loosened" \[en] .EW .3\*S[+1]\*[PREV] +.EW .3 +"But this is \*[IT]important!\/"\*[PREV]she exclaimed. +.MCX 1.5v +.EW 0 +\# +.FAM T +.FT B +.PT_SIZE 12 +.LS 14 +.LEFT +\# +Example 7: +.ALD .25v +.UNDERSCORE 3.5p "Cutaround using left\*[FU 2]/right indents, \ +multi columns and a dropcap" +.SP +\# +.FT R +.PT_SIZE 11 +.LS 12 +.BR_AT_LINE_KERN OFF \" In justified text, it's best to have this OFF +\# +.TAB_SET 1 0 18.5P J +.TAB_SET 2 20.5P 18.5P J +.MCO +.ALD 5P+9p +\# +\# The little picture of tux. +\# +.if '\*[.T]'pdf' .PDF_IMAGE penguin.pdf 81p 96p +.if '\*[.T]'ps' .PSPIC penguin.ps 81p 96p +.MCR +.TAB 1 +.XCOLOR red \" Initialize the X11 color, red +.DROPCAP_COLOR red +.DROPCAP_FONT B +.DROPCAP L 3 COND 80 \" i.e. the letter L dropped 3 lines, condensed to 80% of its normal width +.EW .2 +orem ipsum dolor sit amet, consetetur sa\%dip\%scing elitr, sed diam +nonumy eir\%mod tempor invidunt ut labore et dolore magna aliquyam +erat, sed diam voluptua. +.EW 0 +.TI 1P +At vero eos et accusam et justo duo dolores et ea rebum. Stet clita +kasd gubergren, no sea taki- +.SPREAD \" Force justify preceding line before starting indent +.IR 3.5P +kimata sanctus est lorem ipsum dolor sit amet. Lorem ipsum dolor +sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +tempor. +.EW .2 +.TI +Invidunt ut labore et dolore magna ali\%qu\%yam erat, sed diam +voluptua. At +.EW 0 +vero eos et accusam et justo duo dolores et ea rebum. +.TI +Stet clita kasd gubergren, no sea ta- +.SPREAD \" Force justify preceding line before quitting indent +.IRQ +kimata sanctus est lorem ipsum dolor sit amet. Lorem ipsum dolor +sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor +in\%vi\%dunt ut labore et dolore magna aliquyam erat. Sed diam +voluptua, at vero eos et accusam et justo duo +.SPREAD +.EW .3 +dolores et ea rebum. Stet clita no kasd guber- +.SPREAD +.MCR +.TB 2 +gren, no sea takimata sanctus est lorem ipsum +.EW 0 +dolor sit amet. Consetetur sadipscing elitr, sed diam nonumy eirmod +tempor invidunt ut labore et dolore. +.TI +Magna aliquyam erat, sed diam voluptua, at vero eos et accusam. Et +justo duo dolores et ea +.SPREAD +.IL 3.5P +rebum, stet clita kasd gubergren. No sea takimata sanctus est, +lorem ipsum dolor sit amet. +.TI +Sit amet, consetetur sadipscing elitr, sed diam. Nonumy eirmod +tempor in\%vi- +.EW .3 +dunt ut labore et dolore magna. Ali- +.EW 0 +quyam erat sed diam voluptua. At vero eos et accusam et justo duo +dolores et ea rebum stet. +.ILQ +.TI +Dolores et ea rebum stet clita kasd gubergren, no sea takimata +sanctus. Sadipscing elitr sed diam, nonumy eirmod tempor, invidunt +ut labore et dolore magna aliquyam erat. Sed diam voluptua, at vero +eos et accusam et justo duo dolores et ea rebum. +.\" Local Variables: +.\" mode: nroff +.\" End: +.\" vim: filetype=groff: |