summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/decorule
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/decorule
Initial commit
Diffstat (limited to 'macros/latex/contrib/decorule')
-rw-r--r--macros/latex/contrib/decorule/MANIFEST7
-rw-r--r--macros/latex/contrib/decorule/README87
-rw-r--r--macros/latex/contrib/decorule/decorule.dtx838
-rw-r--r--macros/latex/contrib/decorule/decorule.ins36
-rw-r--r--macros/latex/contrib/decorule/decorule.pdfbin0 -> 423349 bytes
5 files changed, 968 insertions, 0 deletions
diff --git a/macros/latex/contrib/decorule/MANIFEST b/macros/latex/contrib/decorule/MANIFEST
new file mode 100644
index 0000000000..5315031b5f
--- /dev/null
+++ b/macros/latex/contrib/decorule/MANIFEST
@@ -0,0 +1,7 @@
+README
+MANIFEST
+decorule.dtx
+decorule.ins
+decorule.pdf
+decorule.dvi
+decorule.ps.gz
diff --git a/macros/latex/contrib/decorule/README b/macros/latex/contrib/decorule/README
new file mode 100644
index 0000000000..fa7fef1c5a
--- /dev/null
+++ b/macros/latex/contrib/decorule/README
@@ -0,0 +1,87 @@
+This is the README file for the decorule package.
+
+Summary
+
+This package implements a decorative swelled rule using
+only a symbol from a font installed with all distributions of
+\TeX{}, so it works independently, without the need to install
+any additional software or fonts.
+
+This is the packaged version of the macro which was
+originally published in the 'Typographers' Inn'
+column in TUGboat (Flynn 2010).
+
+This version fixes the bug caused by failing to supply the
+correct values for DVI drivers for rendering glyph rotation.
+The result now works in Postscript output but DVI viewers may
+still display incorrectly.
+
+INSTALLATION
+
+To install this package, run LaTeX on the decorule.ins file.
+This will create the package file decorule.sty, which you must
+move to a directory (folder) where LaTeX will find it.
+
+For personal installations, that is:
+
+(Mac) ~/Library/texmf/tex/latex/decorule
+(Unix / GNU/Linux) ~/texmf/tex/latex/decorule
+(MS-Windows 95/XP) C:\texmf\tex\latex\decorule
+(Windows 7/8) Computer\System\Users\your~name\texmf\tex\latex\decorule
+ [replacing your-name with your account name]
+
+Create that directory (folder) if it does not exist.
+
+If you are a Windows user with MiKTeX and this is your
+first time installing packages by hand, you must also
+add the texmf folder to MiKTeX's list of supported
+folders (in the Roots tab of the MiKTeX Maintenance/Settings
+program), and then update the FNDB in the General tab.
+
+For shared installations (multi-user systems), identify
+the shared local directory with the command
+
+ kpsewhich -expand-var '$TEXMFLOCAL'
+
+This will give you the texmf location within which you must
+create the tex/latex/decorule subdirectories. Do not forget
+to run the texhash or mktexlsr filename indexer program
+after installation, otherwise the files will not be findable.
+
+USAGE
+
+Add this line to the Preamble of your LateX document:
+
+ \usepackage[options]{decorule}
+
+Read the documentation for the options available.
+
+
+BUGS
+
+None known of.
+
+
+COPYRIGHT
+
+%% decorule.*
+%% Copyright © 2010-2011 by Peter Flynn <peter@silmaril.ie>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The current maintainer of this work is Peter Flynn <peter@silmaril.ie>
+%
+% This work consists of the files decorule.dtx and decorule.ins
+% and the derived file decorule.sty.
+
+Please send comments and bug reports to the maintainer.
diff --git a/macros/latex/contrib/decorule/decorule.dtx b/macros/latex/contrib/decorule/decorule.dtx
new file mode 100644
index 0000000000..80f70bd597
--- /dev/null
+++ b/macros/latex/contrib/decorule/decorule.dtx
@@ -0,0 +1,838 @@
+% \iffalse meta-comment
+%
+%% decorule.dtx
+%% Copyright © 2010-2011 by Peter Flynn <peter@silmaril.ie>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The current maintainer of this work is Peter Flynn <peter@silmaril.ie>
+%
+% This work consists of the files decorule.dtx and decorule.ins
+% and the derived file decorule.sty.
+%
+% \fi
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}[2009/09/24]
+%<package>\ProvidesPackage{decorule}[2011/08/02 v0.6 The decorule LaTeX2e package]
+%<package>\RequirePackage{graphicx}
+%<package>\RequirePackage{fix-cm}
+%<*driver>
+\documentclass[12pt]{ltxdoc}
+\usepackage{decorule}
+\usepackage[utf8x]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{fancyvrb}
+\usepackage{mflogo}
+\usepackage{chicago}
+\usepackage{url}
+\usepackage{nicefrac}
+\usepackage{lmodern}
+\usepackage[a4paper,margin=3cm]{geometry}
+\usepackage{parskip}
+\usepackage{varioref}
+\usepackage{listings}
+\usepackage{textcomp}
+\newcommand{\classorpackage}{package}
+\newcommand{\ConTeXt}{%
+ C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{decorule.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{142}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \changes{v0.6}{2011/08/02}{Fix for the DVI-related display bug: Heiko Overdiek kindly identified the problem with the c@sym@rotate counter, that it isn't expandable. The graphics package only uses edef, but in the special, the explicit number is needed, because PostScript or GhostScript don't know \TeX{}. The result now works in Postscript output but DVI viewers may still display incorrectly..}
+% \changes{v0.5}{2011/07/28}{Fixes after release: Added par breaks and centering. Attempted to identify why it fails when creating DVI but works for PDF (section on Bugs created)..}
+% \changes{v0.4}{2011/06/13}{Bugs fixed on first release: 1) Added missing packages (graphicx and fix-cm); 2) Removed bogus change record from .sty file.}
+% \changes{v0.3}{2011/06/11}{Revised for .dtx file: 1) Rewrote documentation; 2) Generated .dtx.}
+% \changes{v0.2}{2010/07/14}{Updated to package format: Wrote .dtx file by hand.}
+% \changes{v0.1}{2010/03/20}{Written for TUGboat: Developed by hand.}
+%
+% \GetFileInfo{decorule.dtx}
+%
+% \DoNotIndex{\@,\@@par,\@beginparpenalty,\@empty}
+% \DoNotIndex{\@flushglue,\@gobble,\@input}
+% \DoNotIndex{\@makefnmark,\@makeother,\@maketitle}
+% \DoNotIndex{\@namedef,\@ne,\@spaces,\@tempa}
+% \DoNotIndex{\@tempb,\@tempswafalse,\@tempswatrue}
+% \DoNotIndex{\@thanks,\@thefnmark,\@topnum}
+% \DoNotIndex{\@@,\@elt,\@forloop,\@fortmp,\@gtempa,\@totalleftmargin}
+% \DoNotIndex{\",\/,\@ifundefined,\@nil,\@verbatim,\@vobeyspaces}
+% \DoNotIndex{\|,\~,\ ,\active,\advance,\aftergroup,\begingroup,\bgroup}
+% \DoNotIndex{\mathcal,\csname,\def,\documentstyle,\dospecials,\edef}
+% \DoNotIndex{\egroup}
+% \DoNotIndex{\else,\endcsname,\endgroup,\endinput,\endtrivlist}
+% \DoNotIndex{\expandafter,\fi,\fnsymbol,\futurelet,\gdef,\global}
+% \DoNotIndex{\hbox,\hss,\if,\if@inlabel,\if@tempswa,\if@twocolumn}
+% \DoNotIndex{\ifcase}
+% \DoNotIndex{\ifcat,\iffalse,\ifx,\ignorespaces,\index,\input,\item}
+% \DoNotIndex{\jobname,\kern,\leavevmode,\leftskip,\let,\llap,\lower}
+% \DoNotIndex{\m@ne,\next,\newpage,\nobreak,\noexpand,\nonfrenchspacing}
+% \DoNotIndex{\obeylines,\or,\protect,\raggedleft,\rightskip,\rm,\sc}
+% \DoNotIndex{\setbox,\setcounter,\small,\space,\string,\strut}
+% \DoNotIndex{\strutbox}
+% \DoNotIndex{\thefootnote,\thispagestyle,\topmargin,\trivlist,\tt}
+% \DoNotIndex{\twocolumn,\typeout,\vss,\vtop,\xdef,\z@}
+% \DoNotIndex{\,,\@bsphack,\@esphack,\@noligs,\@vobeyspaces,\@xverbatim}
+% \DoNotIndex{\`,\catcode,\end,\escapechar,\frenchspacing,\glossary}
+% \DoNotIndex{\hangindent,\hfil,\hfill,\hskip,\hspace,\ht,\it,\langle}
+% \DoNotIndex{\leaders,\long,\makelabel,\marginpar,\markboth,\mathcode}
+% \DoNotIndex{\mathsurround,\mbox,\newcount,\newdimen,\newskip}
+% \DoNotIndex{\nopagebreak}
+% \DoNotIndex{\parfillskip,\parindent,\parskip,\penalty,\raise,\rangle}
+% \DoNotIndex{\section,\setlength,\TeX,\topsep,\underline,\unskip,\verb}
+% \DoNotIndex{\vskip,\vspace,\widetilde,\\,\%,\@date,\@defpar}
+% \DoNotIndex{\[,\{,\},\]}
+% \DoNotIndex{\count@,\ifnum,\loop,\today,\uppercase,\uccode}
+% \DoNotIndex{\baselineskip,\begin,\tw@}
+% \DoNotIndex{\a,\b,\c,\d,\e,\f,\g,\h,\i,\j,\k,\l,\m,\n,\o,\p,\q}
+% \DoNotIndex{\r,\s,\t,\u,\v,\w,\x,\y,\z,\A,\B,\C,\D,\E,\F,\G,\H}
+% \DoNotIndex{\I,\J,\K,\L,\M,\N,\O,\P,\Q,\R,\S,\T,\U,\V,\W,\X,\Y,\Z}
+% \DoNotIndex{\1,\2,\3,\4,\5,\6,\7,\8,\9,\0}
+% \DoNotIndex{\!,\#,\$,\&,\',\(,\),\+,\.,\:,\;,\<,\=,\>,\?,\_}
+% \DoNotIndex{\discretionary,\immediate,\makeatletter,\makeatother}
+% \DoNotIndex{\meaning,\newenvironment,\par,\relax,\renewenvironment}
+% \DoNotIndex{\repeat,\scriptsize,\selectfont,\the,\undefined}
+% \DoNotIndex{\arabic,\do,\makeindex,\null,\number,\show,\write,\@ehc}
+% \DoNotIndex{\@author,\@ehc,\@ifstar,\@sanitize,\@title,\everypar}
+% \DoNotIndex{\if@minipage,\if@restonecol,\ifeof,\ifmmode}
+% \DoNotIndex{\lccode,\newtoks,\onecolumn,\openin,\p@,\SelfDocumenting}
+% \DoNotIndex{\settowidth,\@resetonecoltrue,\@resetonecolfalse,\bf}
+% \DoNotIndex{\clearpage,\closein,\lowercase,\@inlabelfalse}
+% \DoNotIndex{\selectfont,\mathcode,\newmathalphabet,\rmdefault}
+% \DoNotIndex{\bfdefault}
+%
+% \def\fileversion{0.6}
+% \def\filedate{2011/08/02}
+% \title{The \textsf{decorule} LaTeX2e package\thanks{%
+% This document corresponds to \textsf{decorule}
+% \textit{v.}\ \fileversion, dated \filedate.}
+% \\[1ex]\Large
+% A decorative swelled rule}
+% \author{Peter Flynn\\\normalsize
+% Silmaril Consultants\\[-4pt]\normalsize
+% Textual Therapy Division\\\normalsize
+% (\texttt{peter@silmaril.ie})}
+% \maketitle
+% \renewcommand{\abstractname}{Summary}\thispagestyle{empty}
+% \begin{abstract}\noindent
+% This package implements a decorative swelled rule using
+% only a symbol from a font installed with all distributions of
+% \TeX{}, so it works independently, without the need to install
+% any additional software or fonts.\par
+% This is the packaged version of the macro which was
+% originally published in the `Typographers' Inn'
+% column in TUGboat \cite{tb97}.\par
+% This version fixes the bug caused by failing to supply the
+% correct values for DVI drivers for rendering glyph rotation.
+% The result now works in Postscript output but DVI viewers may
+% still display incorrectly.\par
+% \end{abstract}
+% \clearpage
+% \tableofcontents
+% \clearpage
+% \section{Swelled rules}
+% Swelled rules were a popular device in 19th century
+% typesetting, and were usually done as special sorts from a
+% typefounder, or in some cases fabricated from combinations of
+% decorative brass rule cut to calculated lengths.\par
+% In digital systems, they can be implemented as images or
+% as glyphs in fonts, but are not usually extensible except by
+% distortion. This example is constructed programmatically so
+% that it could be adapted to the width it is required for (that
+% feature is not implemented in this version and is left as an
+% exercise to the user).\par
+% \subsection{Other work}
+% As discussed in the original article \cite{tb97} there is an \textsf{swrule} package
+% by Tobias Dussa \cite{dussa} which builds a
+% geometric lozenge from very fine lines, and there is a paper
+% by Steve Peter \cite{peter} which describes
+% a more extensible method using \MP{} for
+% \ConTeXt{}.\par
+% \subsection{This solution}
+% However, it is also possible to produce one using just a
+% character from a font, combined with some looping in a macro
+% with careful positioning and kerning. This example was
+% constructed from the swung dash (\DescribeMacro{\sim}\verb`\sim`)
+% character in math mode, rotated and scaled to fit in an
+% asending and then descending series.\par
+% This package is available from your nearest CTAN
+% respository in the directory \url{}. The original
+% example is available at
+% \url{http://latex.silmaril.ie/packages/decorule}.
+% All suggestions for improving and extending it are
+% welcome.\par
+% \decorule{}\par
+% \subsection{Bugs}
+% Rainer adS and Herbert Schulz kindly pointed out on
+% \url{comp.text.tex}\footnote{%
+% \url{<j0sco9$emv$1@news.albasani.net>}
+% and
+% \url{<herbs-038AC9.15151428072011@news.wowway.com>}} that it failed when using standard (DVI)
+% \LaTeX{}, although it was correct when using
+% \emph{pdflatex}.\par
+% Attempts to render the DVI with (eg)
+% \emph{dvipdf} were failing with a
+% Ghostscript error: \verb`/undefined in \c@sym@rotate`.\par
+% Heiko Overdiek kindly identified the problem with the
+% \DescribeMacro{\c@sym@rotate}\verb`\c@sym@rotate` counter, that `it
+% isn't expandable. The graphics package only uses \texttt{edef}, but in the \texttt{special}, the explicit number is
+% needed, because PostScript or GhostScript don't know
+% \TeX{}.'\par
+% The result now works in Postscript output but DVI
+% viewers may still display incorrectly.\par
+% \clearpage
+% \raggedright
+% \addtocontents{toc}{\medskip}
+% \addcontentsline{toc}{section}{\refname}
+% \bibliography{decorule}
+% \bibliographystyle{chicago}
+% \begin{VerbatimOut}{decorule.bib}
+%<*ignore>
+@article{tb97,
+author = {Peter Flynn},
+shortauthor = {Flynn},
+title = {{Typographers' Inn: Where have all the flowers gone?}},
+pages = {21-22},
+journal = {{TUGboat}},
+volume = {31},
+number = {1},
+year = {2010}
+}
+@article{peter,
+author = {Steve Peter},
+shortauthor = {Peter},
+title = {{Swelled rules and \MP{}}},
+pages = {193-195},
+journal = {{TUGboat}},
+volume = {26},
+number = {3},
+year = {2005}
+}
+@misc{dussa,
+author = {Tobias Dussa},
+shortauthor = {Dussa},
+title = {{swrule.sty}},
+year = {2001},
+month = {Oct},
+howpublished = {CTAN: \TeX{} Users Group},
+url = {http://mirror.ctan.org/macros/generic/misc/swrule.sty}
+}
+%</ignore>
+% \end{VerbatimOut}
+% \StopEventually{%
+% \clearpage
+% \newgeometry{left=3cm}
+% \PrintChanges
+% \clearpage
+% \PrintIndex}
+% \newgeometry{left=5cm}
+% \clearpage
+% \section{Implementation}
+% The package consists of a single main macro \texttt{decorule}, which cycles through sizes
+% of the symbol from minimum to maximum, rotating and scaling
+% according to values preset here; and then from the maximum
+% back down to the minimum.\par
+% \subsection{Preliminary declarations}
+% \begin{macro}{\sym@min}
+% Define a counter and a minimum point size to start and
+% end with. This value is an integer, hence a counter is
+% used.\par
+% \begin{macrocode}
+\newcounter{sym@min}
+\setcounter{sym@min}{1}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\sym@max}
+% Do the same for the maximum point size that the rule
+% will get to in the middle.\par
+% \begin{macrocode}
+\newcounter{sym@max}
+\setcounter{sym@max}{20}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\sym@step}
+% Set the step size or the increments of the glyph in
+% whole points.\par
+% \begin{macrocode}
+\newcounter{sym@step}
+\setcounter{sym@step}{1}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\sym@rotate}
+% Specify the amount in (whole) degrees by which we will
+% need to rotate the symbol to make each glyph mesh with the
+% previous one. The use of the
+% \DescribeMacro{\thesym@rotate}\verb`\thesym@rotate` form is a bugfix due to
+% Heiko Oberdiek in \url{news:comp.text.tex} at \textlangle\verb`j0sonk$q9v$1@dont-email.me`\textrangle{}.\par
+% \changes{v0.6}{2011/08/02}{Added fix from Heiko for sym@rotate}
+% \begin{macrocode}
+\newcounter{sym@rotate}
+\renewcommand*{\thesym@rotate}{\the\c@sym@rotate}%
+\setcounter{sym@rotate}{45}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\sym@size}
+% Define a counter to hold the current (calculated) size
+% as we loop through the sizes.\par
+% \begin{macrocode}
+\newcounter{sym@size}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\sym@raise}
+% Define a length to hold the amount calculated at each
+% step to raise/lower each glyph by (because we rotate them as
+% we go).\par
+% \begin{macrocode}
+\newlength{\sym@raise}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\sym@skip}
+% Define another length to hold the amount calculated to
+% backspace between successive glyphs to make sure they
+% touch.\par
+% \begin{macrocode}
+\newlength{\sym@skip}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\sym@symbol}
+% Lastly, define the font character to use as the glyph.
+% For the swelled rule we use the swung dash.\par
+% \begin{macrocode}
+\newcommand{\sym@symbol}{$\sim$}
+% \end{macrocode}
+% \end{macro}
+% \subsection{The main macro}
+% \begin{macro}{\decorule}
+% Now we can define the macro that does the actual
+% work.\par
+% \changes{v0.3}{2011/06/11}{Rearranged spacing to suit the .dtx layout}
+% \changes{v0.5}{2011/07/28}{Added par breaks and centering}
+% \begin{macrocode}
+\newcommand{\decorule}{\par\begingroup\centering
+% \end{macrocode}
+% Start by setting the initial size to the minimum size
+% declared above:\par
+% \begin{macrocode}
+\setcounter{sym@size}{\c@sym@min}
+% \end{macrocode}
+% Go through the steps up to, but not including, the
+% maximum size:\par
+% \begin{macrocode}
+\loop
+% \end{macrocode}
+% Raise each glyph above the baseline by half the
+% point size that we will use:\par
+% \begin{macrocode}
+\setlength{\sym@raise}{\c@sym@size pt}%
+ \divide\sym@raise by2
+% \end{macrocode}
+% Raise, rotate, and (in this case of
+% \DescribeMacro{\sim}\verb`\sim`) reflect the glyph in a \texttt{hbox} of its own point size,
+% using \texttt{hss} to prevent
+% \TeX{} squawking. Heiko Oberdiek also identified the fix of
+% using \DescribeMacro{\thesym@rotate}\verb`\thesym@rotate` instead of
+% \DescribeMacro{\c@sym@rotate}\verb`\c@sym@rotate` for the box rotation, here
+% and elsewhere below.\par
+% \changes{v0.6}{2011/08/02}{Changed c@sym@rotate to thesym@rotate}
+% \begin{macrocode}
+\raisebox{-\sym@raise}{%
+ \fontsize{\c@sym@size}{0}\selectfont
+ \rotatebox{\thesym@rotate}{\reflectbox{\hbox
+ to\c@sym@size pt{\hss\sym@symbol\hss}}}}%
+% \end{macrocode}
+% Calculate the amount to backspace as \nicefrac23 of the
+% current size:\par
+% \begin{macrocode}
+\setlength{\sym@skip}{\c@sym@size pt}%
+ \divide\sym@skip by3
+ \multiply\sym@skip by2
+ \kern-\sym@skip
+% \end{macrocode}
+% Increment the counter and repeat:\par
+% \begin{macrocode}
+\addtocounter{sym@size}{\c@sym@step}%
+ \ifnum\c@sym@size<\c@sym@max
+ \repeat
+% \end{macrocode}
+% Now do the same for the sole occurrence of the maximum
+% size:\par
+% \changes{v0.6}{2011/08/02}{Changed c@sym@rotate to thesym@rotate}
+% \begin{macrocode}
+\setlength{\sym@raise}{\c@sym@max pt}%
+ \divide\sym@raise by2
+ \raisebox{-\sym@raise}{%
+ \fontsize{\c@sym@max}{0}\selectfont
+ \rotatebox{\thesym@rotate}{\reflectbox{\hbox
+ to\c@sym@max pt{\hss\sym@symbol\hss}}}}%
+% \end{macrocode}
+% Start back down following the exact same pattern in
+% reverse, using the current size (one step less than the
+% maximum just used). The value has been left undisturbed
+% from the last loop of the outward journey. This time,
+% however, do the kerning \emph{before} the
+% glyph.\par
+% \changes{v0.6}{2011/08/02}{Changed c@sym@rotate to thesym@rotate}
+% \begin{macrocode}
+\loop
+ \setlength{\sym@skip}{\c@sym@size pt}%
+ \divide\sym@skip by3
+ \multiply\sym@skip by2
+ \kern-\sym@skip
+ \setlength{\sym@raise}{\c@sym@size pt}%
+ \divide\sym@raise by2
+ \raisebox{-\sym@raise}{%
+ \fontsize{\c@sym@size}{0}\selectfont
+ \rotatebox{\thesym@rotate}{\reflectbox{\hbox
+ to\c@sym@size pt{\hss\sym@symbol\hss}}}}%
+ \addtocounter{sym@size}{-\c@sym@step}%
+ \ifnum\c@sym@size>\c@sym@min
+ \repeat
+% \end{macrocode}
+% Finally, do the minimum size:\par
+% \changes{v0.6}{2011/08/02}{Changed c@sym@rotate to thesym@rotate}
+% \begin{macrocode}
+\setlength{\sym@skip}{\c@sym@min pt}%
+ \divide\sym@skip by3
+ \multiply\sym@skip by2
+ \kern-\sym@skip
+ \setlength{\sym@raise}{\c@sym@min pt}%
+ \divide\sym@raise by2
+ \raisebox{-\sym@raise}{%
+ \fontsize{\c@sym@min}{0}\selectfont
+ \rotatebox{\thesym@rotate}{\reflectbox{\hbox
+ to\c@sym@min pt{\hss\sym@symbol\hss}}}}%
+\par\endgroup}
+% \end{macrocode}
+% \end{macro}
+% \appendix
+% \newgeometry{left=3cm}
+% \clearpage
+% \section{The \LaTeX{} Project Public License}\label{LPPL:LPPL}
+% \begin{quotation}\small\noindent
+% Everyone is allowed to distribute verbatim copies of this
+% license document, but modification of it is not allowed.
+% \end{quotation}
+% \subsection{Preamble}\label{LPPL:Preamble}
+% The \LaTeX{} Project Public License (\textsc{lppl})
+% is the primary license under which the \LaTeX{} kernel and the
+% base \LaTeX{} packages are distributed.\par
+% You may use this license for any work of which you hold the
+% copyright and which you wish to distribute. This license may be
+% particularly suitable if your work is \TeX{}-related (such as a
+% \LaTeX{} package), but it is written in such a way that you can
+% use it even if your work is unrelated to \TeX{}.\par
+% The section \emph{Whether and How to Distribute Works under This
+% License}, below, gives instructions, examples, and
+% recommendations for authors who are considering distributing
+% their works under this license.\par
+% This license gives conditions under which a work may be
+% distributed and modified, as well as conditions under which
+% modified versions of that work may be distributed.\par
+% We, the \LaTeX{3} Project, believe that the conditions below
+% give you the freedom to make and distribute modified versions of
+% your work that conform with whatever technical specifications
+% you wish while maintaining the availability, integrity, and
+% reliability of that work. If you do not see how to achieve your
+% goal while meeting these conditions, then read the document
+% \url{cfgguide.tex} and \url{modguide.tex} in the base \LaTeX{}
+% distribution for suggestions.\par
+% \subsection{Definitions}\label{LPPL:Definitions}
+% In this license document the following terms are used:\par
+% \begingroup\raggedright
+% \begin{description}
+% \item[Work:]Any work being distributed under this License.
+% \item[Derived Work:]Any work that under any applicable law is derived from
+% the Work.
+% \item[Modification:]Any procedure that produces a Derived Work under any
+% applicable law~--- for example, the production of a file
+% containing an original file associated with the Work or a
+% significant portion of such a file, either verbatim or
+% with modifications and/or translated into another
+% language.
+% \item[Modify:]To apply any procedure that produces a Derived Work
+% under any applicable law.
+% \item[Distribution:]Making copies of the Work available from one person to
+% another, in whole or in part. Distribution includes (but
+% is not limited to) making any electronic components of the
+% Work accessible by file transfer protocols such as
+% \textsc{ftp} or \textsc{http} or by
+% shared file systems such as Sun's Network File System
+% (\textsc{nfs}).
+% \item[Compiled Work:]A version of the Work that has been processed into a
+% form where it is directly usable on a computer system.
+% This processing may include using installation facilities
+% provided by the Work, transformations of the Work, copying
+% of components of the Work, or other activities. Note that
+% modification of any installation facilities provided by
+% the Work constitutes modification of the Work.
+% \item[Current Maintainer:]A person or persons nominated as such within the Work.
+% If there is no such explicit nomination then it is the
+% `Copyright Holder' under any applicable
+% law.
+% \item[Base Interpreter:]A program or process that is normally needed for
+% running or interpreting a part or the whole of the
+% Work.\par
+% A Base Interpreter may depend on external components
+% but these are not considered part of the Base Interpreter
+% provided that each external component clearly identifies
+% itself whenever it is used interactively. Unless
+% explicitly specified when applying the license to the
+% Work, the only applicable Base Interpreter is a
+% `\LaTeX{}-Format' or in the case of files
+% belonging to the `\LaTeX{}-format' a program
+% implementing the `\TeX{} language'.
+% \end{description}\endgroup
+% \subsection{Conditions on Distribution and Modification}\label{LPPL:Conditions}
+% \begin{enumerate}
+% \item Activities other than distribution and/or modification
+% of the Work are not covered by this license; they are
+% outside its scope. In particular, the act of running the
+% Work is not restricted and no requirements are made
+% concerning any offers of support for the Work.
+% \item \label{LPPL:item:distribute}You may distribute a complete, unmodified copy of the
+% Work as you received it. Distribution of only part of the
+% Work is considered modification of the Work, and no right to
+% distribute such a Derived Work may be assumed under the
+% terms of this clause.
+% \item You may distribute a Compiled Work that has been
+% generated from a complete, unmodified copy of the Work as
+% distributed under Clause~\vref{LPPL:item:distribute} above, as
+% long as that Compiled Work is distributed in such a way that
+% the recipients may install the Compiled Work on their system
+% exactly as it would have been installed if they generated a
+% Compiled Work directly from the Work.
+% \item \label{LPPL:item:currmaint}If you are the Current Maintainer of the Work, you may,
+% without restriction, modify the Work, thus creating a
+% Derived Work. You may also distribute the Derived Work
+% without restriction, including Compiled Works generated from
+% the Derived Work. Derived Works distributed in this manner
+% by the Current Maintainer are considered to be updated
+% versions of the Work.
+% \item If you are not the Current Maintainer of the Work, you
+% may modify your copy of the Work, thus creating a Derived
+% Work based on the Work, and compile this Derived Work, thus
+% creating a Compiled Work based on the Derived Work.
+% \item \label{LPPL:item:conditions}If you are not the Current Maintainer of the Work, you
+% may distribute a Derived Work provided the following
+% conditions are met for every component of the Work unless
+% that component clearly states in the copyright notice that
+% it is exempt from that condition. Only the Current
+% Maintainer is allowed to add such statements of exemption to
+% a component of the Work.
+% \begin{enumerate}
+% \item If a component of this Derived Work can be a direct
+% replacement for a component of the Work when that
+% component is used with the Base Interpreter, then,
+% wherever this component of the Work identifies itself to
+% the user when used interactively with that Base
+% Interpreter, the replacement component of this Derived
+% Work clearly and unambiguously identifies itself as a
+% modified version of this component to the user when used
+% interactively with that Base Interpreter.
+% \item Every component of the Derived Work contains
+% prominent notices detailing the nature of the changes to
+% that component, or a prominent reference to another file
+% that is distributed as part of the Derived Work and that
+% contains a complete and accurate log of the
+% changes.
+% \item No information in the Derived Work implies that any
+% persons, including (but not limited to) the authors of
+% the original version of the Work, provide any support,
+% including (but not limited to) the reporting and
+% handling of errors, to recipients of the Derived Work
+% unless those persons have stated explicitly that they do
+% provide such support for the Derived Work.
+% \item You distribute at least one of the following with
+% the Derived Work:
+% \begin{enumerate}
+% \item A complete, unmodified copy of the Work; if your
+% distribution of a modified component is made by
+% offering access to copy the modified component from
+% a designated place, then offering equivalent access
+% to copy the Work from the same or some similar place
+% meets this condition, even though third parties are
+% not compelled to copy the Work along with the
+% modified component;
+% \item Information that is sufficient to obtain a
+% complete, unmodified copy of the Work.
+% \end{enumerate}
+% \end{enumerate}
+% \item If you are not the Current Maintainer of the Work, you
+% may distribute a Compiled Work generated from a Derived
+% Work, as long as the Derived Work is distributed to all
+% recipients of the Compiled Work, and as long as the
+% conditions of Clause~\vref{LPPL:item:conditions}, above, are met
+% with regard to the Derived Work.
+% \item The conditions above are not intended to prohibit, and
+% hence do not apply to, the modification, by any method, of
+% any component so that it becomes identical to an updated
+% version of that component of the Work as it is distributed
+% by the Current Maintainer under Clause~\vref{LPPL:item:currmaint}, above.
+% \item Distribution of the Work or any Derived Work in an
+% alternative format, where the Work or that Derived Work (in
+% whole or in part) is then produced by applying some process
+% to that format, does not relax or nullify any sections of
+% this license as they pertain to the results of applying that
+% process.
+% \item % \begin{enumerate}
+% \item A Derived Work may be distributed under a different
+% license provided that license itself honors the
+% conditions listed in Clause~\vref{LPPL:item:conditions} above, in
+% regard to the Work, though it does not have to honor the
+% rest of the conditions in this license.
+% \item If a Derived Work is distributed under a different
+% license, that Derived Work must provide sufficient
+% documentation as part of itself to allow each recipient
+% of that Derived Work to honor the restrictions in
+% Clause~\vref{LPPL:item:conditions} above, concerning
+% changes from the Work.
+% \end{enumerate}
+% \item This license places no restrictions on works that are
+% unrelated to the Work, nor does this license place any
+% restrictions on aggregating such works with the Work by any
+% means.
+% \item Nothing in this license is intended to, or may be used
+% to, prevent complete compliance by all parties with all
+% applicable laws.
+% \end{enumerate}
+% \subsection{No Warranty}\label{LPPL:Warranty}
+% There is no warranty for the Work. Except when otherwise
+% stated in writing, the Copyright Holder provides the Work
+% `as is', without warranty of any kind, either
+% expressed or implied, including, but not limited to, the implied
+% warranties of merchantability and fitness for a particular
+% purpose. The entire risk as to the quality and performance of
+% the Work is with you. Should the Work prove defective, you
+% assume the cost of all necessary servicing, repair, or
+% correction.\par
+% In no event unless required by applicable law or agreed to
+% in writing will The Copyright Holder, or any author named in the
+% components of the Work, or any other party who may distribute
+% and/or modify the Work as permitted above, be liable to you for
+% damages, including any general, special, incidental or
+% consequential damages arising out of any use of the Work or out
+% of inability to use the Work (including, but not limited to,
+% loss of data, data being rendered inaccurate, or losses
+% sustained by anyone as a result of any failure of the Work to
+% operate with any other programs), even if the Copyright Holder
+% or said author or said other party has been advised of the
+% possibility of such damages.\par
+% \subsection{Maintenance of The Work}\label{LPPL:Maintenance}
+% The Work has the status `author-maintained'
+% if the Copyright Holder explicitly and prominently states near
+% the primary copyright notice in the Work that the Work can only
+% be maintained by the Copyright Holder or simply that it is
+% `author-maintained'.\par
+% The Work has the status `maintained' if there
+% is a Current Maintainer who has indicated in the Work that they
+% are willing to receive error reports for the Work (for example,
+% by supplying a valid e-mail address). It is not required for the
+% Current Maintainer to acknowledge or act upon these error
+% reports.\par
+% The Work changes from status `maintained' to
+% `unmaintained' if there is no Current Maintainer,
+% or the person stated to be Current Maintainer of the work cannot
+% be reached through the indicated means of communication for a
+% period of six months, and there are no other significant signs
+% of active maintenance.\par
+% You can become the Current Maintainer of the Work by
+% agreement with any existing Current Maintainer to take over this
+% role.\par
+% If the Work is unmaintained, you can become the Current
+% Maintainer of the Work through the following steps:\par
+% \begin{enumerate}
+% \item Make a reasonable attempt to trace the Current
+% Maintainer (and the Copyright Holder, if the two differ)
+% through the means of an Internet or similar search.
+% \item If this search is successful, then enquire whether the
+% Work is still maintained.
+% \begin{enumerate}
+% \item If it is being maintained, then ask the Current
+% Maintainer to update their communication data within one
+% month.
+% \item \label{LPPL:item:intention}If the search is unsuccessful or no action to resume
+% active maintenance is taken by the Current Maintainer,
+% then announce within the pertinent community your
+% intention to take over maintenance. (If the Work is a
+% \LaTeX{} work, this could be done, for example, by
+% posting to \url{news:comp.text.tex}.)
+% \end{enumerate}
+% \item % \begin{enumerate}
+% \item If the Current Maintainer is reachable and agrees to
+% pass maintenance of the Work to you, then this takes
+% effect immediately upon announcement.
+% \item \label{LPPL:item:announce}If the Current Maintainer is not reachable and the
+% Copyright Holder agrees that maintenance of the Work be
+% passed to you, then this takes effect immediately upon
+% announcement.
+% \end{enumerate}
+% \item \label{LPPL:item:change}If you make an `intention announcement'
+% as described in~\vref{LPPL:item:intention} above and after three
+% months your intention is challenged neither by the Current
+% Maintainer nor by the Copyright Holder nor by other people,
+% then you may arrange for the Work to be changed so as to
+% name you as the (new) Current Maintainer.
+% \item If the previously unreachable Current Maintainer becomes
+% reachable once more within three months of a change
+% completed under the terms of~\vref{LPPL:item:announce}
+% or~\vref{LPPL:item:change}, then that
+% Current
+% Maintainer must become or remain the Current Maintainer upon
+% request provided they then update their communication data
+% within one month.
+% \end{enumerate}
+% A change in the Current Maintainer does not, of itself,
+% alter the fact that the Work is distributed under the
+% \textsc{lppl} license.\par
+% If you become the Current Maintainer of the Work, you should
+% immediately provide, within the Work, a prominent and
+% unambiguous statement of your status as Current Maintainer. You
+% should also announce your new status to the same pertinent
+% community as in~\vref{LPPL:item:intention}
+% above.\par
+% \subsection{Whether and How to Distribute Works under This
+% License}\label{LPPL:Distribute}
+% This section contains important instructions, examples, and
+% recommendations for authors who are considering distributing
+% their works under this license. These authors are addressed as
+% `you' in this section.\par
+% \subsubsection{Choosing This License or Another License}\label{LPPL:Choosing}
+% If for any part of your work you want or need to use
+% \emph{distribution} conditions that differ
+% significantly from those in this license, then do not refer to
+% this license anywhere in your work but, instead, distribute
+% your work under a different license. You may use the text of
+% this license as a model for your own license, but your license
+% should not refer to the \textsc{lppl} or otherwise
+% give the impression that your work is distributed under the
+% \textsc{lppl}.\par
+% The document \url{modguide.tex} in the base \LaTeX{}
+% distribution explains the motivation behind the conditions of
+% this license. It explains, for example, why distributing
+% \LaTeX{} under the \textsc{gnu} General Public
+% License (\textsc{gpl}) was considered inappropriate.
+% Even if your work is unrelated to \LaTeX{}, the discussion in
+% \url{modguide.tex} may still be
+% relevant, and authors intending to distribute their works
+% under any license are encouraged to read it.\par
+% \subsubsection{A Recommendation on Modification Without
+% Distribution}\label{LPPL:WithoutDistribution}
+% It is wise never to modify a component of the Work, even
+% for your own personal use, without also meeting the above
+% conditions for distributing the modified component. While you
+% might intend that such modifications will never be
+% distributed, often this will happen by accident~--- you may
+% forget that you have modified that component; or it may not
+% occur to you when allowing others to access the modified
+% version that you are thus distributing it and violating the
+% conditions of this license in ways that could have legal
+% implications and, worse, cause problems for the community. It
+% is therefore usually in your best interest to keep your copy
+% of the Work identical with the public one. Many works provide
+% ways to control the behavior of that work without altering any
+% of its licensed components.\par
+% \subsubsection{How to Use This License}\label{LPPL:HowTo}
+% To use this license, place in each of the components of
+% your work both an explicit copyright notice including your
+% name and the year the work was authored and/or last
+% substantially modified. Include also a statement that the
+% distribution and/or modification of that component is
+% constrained by the conditions in this license.\par
+% Here is an example of such a notice and statement:\par
+% \begin{verbatim}
+%%% pig.dtx
+%%% Copyright 2005 M. Y. Name
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is M. Y. Name.
+%%
+%% This work consists of the files pig.dtx and pig.ins
+%% and the derived file pig.sty.
+% \end{verbatim}
+% Given such a notice and statement in a file, the
+% conditions given in this license document would apply, with
+% the `Work' referring to the three files
+% \url{pig.dtx}, \url{pig.ins}, and \url{pig.sty} (the last being generated
+% from \url{pig.dtx} using \url{pig.ins}), the `Base
+% Interpreter' referring to any
+% `\LaTeX{}-Format', and both `Copyright
+% Holder' and `Current Maintainer'
+% referring to the person
+% M.~Y.~Name\index{M.~Y.~Name}.\par
+% If you do not want the Maintenance section of
+% \textsc{lppl} to apply to your Work, change
+% `maintained' above into
+% `author-maintained'. However, we recommend that
+% you use `maintained' as the Maintenance
+% section was added in order to ensure that your Work remains
+% useful to the community even when you can no longer maintain
+% and support it yourself.\par
+% \subsubsection{Derived Works That Are Not Replacements}\label{LPPL:NotReplacements}
+% Several clauses of the \textsc{lppl} specify
+% means to provide reliability and stability for the user
+% community. They therefore concern themselves with the case
+% that a Derived Work is intended to be used as a (compatible or
+% incompatible) replacement of the original Work. If this is not
+% the case (e.g., if a few lines of code are reused for a
+% completely different task), then clauses 6b and 6d shall not
+% apply.\par
+% \subsubsection{Important Recommendations}\label{LPPL:Recommendations}
+% \paragraph{Defining What Constitutes the Work}
+% The \textsc{lppl} requires that distributions
+% of the Work contain all the files of the Work. It is
+% therefore important that you provide a way for the licensee
+% to determine which files constitute the Work. This could,
+% for example, be achieved by explicitly listing all the files
+% of the Work near the copyright notice of each file or by
+% using a line such as:\par
+% \begin{verbatim}
+%% This work consists of all files listed in manifest.txt.
+% \end{verbatim}
+% in that place. In the absence of an unequivocal list it
+% might be impossible for the licensee to determine what is
+% considered by you to comprise the Work and, in such a case,
+% the licensee would be entitled to make reasonable
+% conjectures as to which files comprise the Work.\par
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/decorule/decorule.ins b/macros/latex/contrib/decorule/decorule.ins
new file mode 100644
index 0000000000..b6080f8753
--- /dev/null
+++ b/macros/latex/contrib/decorule/decorule.ins
@@ -0,0 +1,36 @@
+%%% decorule.ins
+%% Copyright © 2010-2011 by Peter Flynn <peter@silmaril.ie>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The current maintainer of this work is Peter Flynn <peter@silmaril.ie>
+%
+% This work consists of the files decorule.dtx and decorule.ins
+% and the derived file decorule.sty.
+%
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/decorule}
+\preamble
+This file was generated from an XML master source.
+Amendments and corrections should be notified to the maintiner
+for inclusion in future versions.
+\endpreamble
+\generate{\file{decorule.sty}{\from{decorule.dtx}{package}}}
+\obeyspaces
+\Msg{********************************************************}
+\Msg{** **}
+\Msg{** Read the documentation before using this package. **}
+\Msg{** **}
+\Msg{********************************************************}
+\endbatchfile
diff --git a/macros/latex/contrib/decorule/decorule.pdf b/macros/latex/contrib/decorule/decorule.pdf
new file mode 100644
index 0000000000..6cdb2bd06d
--- /dev/null
+++ b/macros/latex/contrib/decorule/decorule.pdf
Binary files differ