# Utroff demonstration # Utroff provides a set of tools to use troff these days : macros, pre-processors, post-processors, and filters, created from scratch or modified versions of the heirloom doctools. This document is an example of the rendering of these tools, using the uw macro. Get utroff tools on [http://utroff.org](http://utroff.org) tweet [@utroff_](https://twitter.com/intent/tweet?related=utroff_&text=@utroff_%20), and donate on [flattr](https://flattr.com/submit/auto?user_id=utroff&url=http://utroff.org&title=Utroff&description=hacks%20and%20scratchs%20to%20Use%20troff&language=en_GB&tags=troff&category=software). ## Utmac Macros ## ### Paragraph macros ### Default paragraph. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. > Quotation paragraph. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. Left extended paragraph. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. - List item. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. Left align paragraph. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. Right align paragraph. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. Centered paragraph. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. ``` Example paragraph (text is not filled). Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. ``` ### Notes macros ### Numbered note^1^. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. Unnumbered top note. This note is printed on the top of the page. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. Unnumbered bottom note. This note is printed on the bottom of the page. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. ### Typographic macros ### Default paragraph. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. Shortened paragraph. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. Extended paragraph. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sitamet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proinporttitor, orci nec nonum molestie, enim est eleifend mi, non fermentum diamnis sit amet erat. Duis semper. ### Inline macros ### #### Fonts #### Roman, __Bold__, _Italic_, Bold-Italic, Acronym, Bold Acronym, Italic Acronym, Bold Italic Acronym, Small-Capitals, Bold Small Capitals, Italic Small Capitals, Bold Italic Small Capits, Finale, Bold Finale, Italic Finale, Bold Italic Finale, Superscript, Italic Superscript, Bold Italic Superscript. #### Inline macros #### Link to keyword2, [email](email@example.com), name, object, title, [url](http://example.com), word. élégant #### Index macros #### Link to keyword1, [email](email@example.com), name, object, title, [url](http://example.com), word. ## Pre-processors ## ### References with refer ### #### Idem and op. cit. system #### « Citation from a simple book^2^ », « idem^3^ », «idem with different chapter^4^», «citation from another book^5^», «opcit hereinbefore^6^». #### References formats #### «Simple book^7^», «article in book^8^», «serie of books^9^», «book in serie^10^», «article in book in serie^11^», «single journal^12^», «article in journal^13^», «journal in serie^14^», «article in journal in serie^15^». ### Syntax highlighting with ugrind ### #### troff #### ``` troff .de page :head . \\" put a vacuum header .wh \\\\n[page-foot]v page :foot .if !"\\\\n(.F"\\\\*[page-file]" \\{\\ . pdf :anchor \\\\n(.F . ds page-file \\\\n(.F .\\} .sp |\\\\n[page-head]v .ns .po \\\\n[text-offset]u .if \\\\n(RV=1 .if e .po \\\\n[text-offset-e]u .. ``` #### shell #### ``` sh if [ "$1" == "-d" ]; then # default # input : troff output # output : troff format sortwords $2 | catpages | totroff else # default # input : troff output # output : troff format tr -d ’\004’ < $1 | sortwords | catpages | totroff fi ``` #### C #### ``` C /* trprinter : ** print a char, ** escape it if needed */ void trprinter(char c) { switch (c) { case ’\\’ : printf ("\\*e\\&"); // \\e break; case (’.’) : printf("\\&."); break; case (’\’’) : printf("\\&’"); break; case ’_’ : printf("\\*_"); break; case ’-’ : printf("\\*-"); break; default : putchar(c); break; } } ``` #### Makefile #### ``` make .SUFFIXES : .man .7 UBIN=u-apolline u-en u-fr u-grind uh u-idx \ u-libertine u-locale um uw ut \ u-ref us ux UMAN=utmac.7 u-ref.7 % : %.tmac sed -e "s|@UPATH@|$(UPATH)|g" $< > $@ .man.7 : sed -e "s|@MACDIR@|$(MACDIR)|g" \ -e "s|@UFILES@|$(UBIN)|g" $< > $@; ``` ## Appendix ## ### Bibliographie ### lastname, firstname jr. _Another book title_. Trad. Firstname Lastname. How published. City : Issuer, date. Col. Collection. - _Article title_. In _Book title_. P. xx-yy. Trad. Firstname Lastname. How published. City : Issuer, date. Col. Collection. - _Article title_. «Journal title». No xx. Trad. Firstname Lastname. How published. P. xx-yy. City : Issuer, date. Col. Collection. - _Article title_. In _Serie title_. Vol. I : _Book title_. P. xx-yy. Trad. Firstname Lastname. How published. City : Issuer, date. Col. Collection. - _Article title_. _Serie title_. «Journal title». No xx. Trad. Firstname Lastname. How published. P. xx-yy. City : Issuer, date. Col. Collection. - _Book title_. Illustration Firstname Lastname. How published. City : Issuer, date. Col. Collection. - «Journal title». No xx. Trad. Firstname Lastname. How published. City : Issuer, date. Col. Collection. - _Serie title_. Vol. II : _Book title_. Trad. Firstname Lastname. How published. City : Issuer, date. Col. Collection. - _Serie title_. Vol. III. Trad. Firstname Lastname. How published. City : Issuer, date. Col. Collection. - _Serie title_. «Journal title». No xx. Trad. Firstname Lastname. How published. City : Issuer, date. Col. Collection. ^1^ This is a numbered note. Note that you must manually insert the string \\\*\* to tell to utmac where to put the number in the text. ^2^ lastname, firstname jr, _Book title_ (City : Issuer, date), chapter I, p. xx. ^3^ _Idem._ ^4^ _Idem._, chapter III, p. yy. ^5^ lastname, firstname jr, _Another book title_ (City : Issuer, date). ^6^ lastname, firstname jr, _Book title_ (City : Issuer, date), chapter I, p. xx. ^7^ _Idem._ ^8^ lastname, firstname jr, _Article title_, in _Book title_ (City : Issuer, date). ^9^ lastname, firstname jr, _Serie title_, vol. III (City : Issuer, date). ^10^ _Idem._, vol. II : _Book title_ (City : Issuer, date). ^11^ lastname, firstname jr, _Article title_, in _Serie title_, vol. I : _Book title_ (City : Issuer, date). ^12^ lastname, firstname jr, «Journal title» (no xx, City : Issuer, date). ^13^ lastname, firstname jr, _Article title_, «Journal title» (no xx, City : Issuer, date). ^14^ lastname, firstname jr, _Serie title_, «Journal title» (no xx, City : Issuer, date). ^15^ lastname, firstname jr, _Article title_, _Serie title_, «Journal title» (no xx, City : Issuer, date).