diff options
Diffstat (limited to 'macros/latex/contrib/fullwidth')
-rw-r--r-- | macros/latex/contrib/fullwidth/README | 11 | ||||
-rw-r--r-- | macros/latex/contrib/fullwidth/fullwidth-test.pdf | bin | 0 -> 30885 bytes | |||
-rw-r--r-- | macros/latex/contrib/fullwidth/fullwidth-test.tex | 14 | ||||
-rw-r--r-- | macros/latex/contrib/fullwidth/fullwidth.pdf | bin | 0 -> 251699 bytes | |||
-rw-r--r-- | macros/latex/contrib/fullwidth/fullwidth.sty | 402 | ||||
-rw-r--r-- | macros/latex/contrib/fullwidth/fullwidth.tex | 128 |
6 files changed, 555 insertions, 0 deletions
diff --git a/macros/latex/contrib/fullwidth/README b/macros/latex/contrib/fullwidth/README new file mode 100644 index 0000000000..b21b0f8473 --- /dev/null +++ b/macros/latex/contrib/fullwidth/README @@ -0,0 +1,11 @@ +This package provides the environment fullwidth. +The package was inspired by a question of stack exchange + +This package provides the environment fullwidth which allows to +set the left and right margins in a very simple way. It also allows page breaks. +If you are using the twoside mode you can set the inner and outer margins. + +see also: http://tex.stackexchange.com/questions/34368/how-to-switch-between-two-margin-sizes + +Author's name: Marco Daniel +version: 0.1a diff --git a/macros/latex/contrib/fullwidth/fullwidth-test.pdf b/macros/latex/contrib/fullwidth/fullwidth-test.pdf Binary files differnew file mode 100644 index 0000000000..75633396e7 --- /dev/null +++ b/macros/latex/contrib/fullwidth/fullwidth-test.pdf diff --git a/macros/latex/contrib/fullwidth/fullwidth-test.tex b/macros/latex/contrib/fullwidth/fullwidth-test.tex new file mode 100644 index 0000000000..5333dd739e --- /dev/null +++ b/macros/latex/contrib/fullwidth/fullwidth-test.tex @@ -0,0 +1,14 @@ +\setcounter{errorcontextlines}{999} +\documentclass[twoside]{article} +\usepackage{showframe,lipsum} +\usepackage[innermargin=-2.0cm,]{fullwidth} +\begin{document} +\lipsum + +%\clearpage +\begin{fullwidth}[width=\linewidth+2cm] +Start\par +\lipsum[1] \lipsum \lipsum +ENDE +\end{fullwidth} +\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/fullwidth/fullwidth.pdf b/macros/latex/contrib/fullwidth/fullwidth.pdf Binary files differnew file mode 100644 index 0000000000..d901eb5469 --- /dev/null +++ b/macros/latex/contrib/fullwidth/fullwidth.pdf diff --git a/macros/latex/contrib/fullwidth/fullwidth.sty b/macros/latex/contrib/fullwidth/fullwidth.sty new file mode 100644 index 0000000000..cd3210f1b4 --- /dev/null +++ b/macros/latex/contrib/fullwidth/fullwidth.sty @@ -0,0 +1,402 @@ +%% +%% Package fullwidth +%% +%% Currently the package has a beta-Status +%% +%% Copyright (c) 2011 Marco Daniel +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. + + +%% Allgemeine Angaben +\def\fwdversion{v0.1} +\def\fwdpackagename{fullwidth} +\def\fwddate{2011/11/18\space} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{fullwidth}[\fwddate \fwdversion: \fwdpackagename] + +%%Benoetigte Pakete +\RequirePackage{kvoptions,etoolbox} +\RequirePackage{zref-abspage} +\SetupKeyvalOptions{family=fwd,prefix=fwd@} +%%Schleifenmakro zur Optioneneingabe +\DeclareListParser*{\fwd@dolist}{,} + +%Laengenoptionen +\def\fwd@do@lengthoption#1{% + \fwd@lengthoption@doubledo#1\@nil% +} +\def\fwd@lengthoption@doubledo#1==#2\@nil{% + \csdef{fwd@#1}{} + \expandafter\newlength\csname fwd@#1@length\endcsname% + \expandafter\deflength\csname fwd@#1@length\endcsname{#2\relax}% + \fdw@define@key@length{#1}% +} +\newrobustcmd*{\fdw@define@key@length}[1]{% + \define@key{fwd}{#1}{% + \expandafter\deflength\csname fwd@#1@length\endcsname{##1\relax}% + }% +} + +\fwd@dolist{\fwd@do@lengthoption}{% + {width==\linewidth},% + {skipabove==\topskip},% + {skipbelow==\topskip},% + {leftmargin==\z@},% + {rightmargin==\z@},% + {innertopmargin==0.4\baselineskip},% + {innerbottommargin==0.4\baselineskip},% + {splittopskip==\topsep},% + {splitbottomskip==\z@},% + {outermargin==\z@},% + {innermargin==\z@},% + {footenotedistance==\medskipamount}, +} + +%Nutzung des Paketes needspace +\define@key{fwd}{needspace}[\z@]{% + \begingroup% + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@% + \penalty -100\vskip\z@\@plus -\dimen@% + \vskip\dimen@% + \penalty 9999% + \vskip -\dimen@% + \vskip\z@skip % hide the previous |\vskip| from |\addvspace| + \endgroup% +} +\DeclareBoolOption[true]{twosidemode} +\DeclareBoolOption{nobreak} +\DeclareBoolOption{footnoteinside} + +\ProcessKeyvalOptions*\relax +\newrobustcmd{\fullwidthsetup}{\setkeys{fwd}} + + +%%Anpassung lrbox +\let\fwd@lrbox\lrbox +\patchcmd\fwd@lrbox\hbox\vbox{}{} +\patchcmd\fwd@lrbox\color@setgroup{% +\color@setgroup% +\hsize=\fwd@width@length% +\columnwidth=\hsize% +\textwidth=\hsize% +\linewidth=\hsize% +}{}{} +\def\endfwd@lrbox{\unskip\color@endgroup} + +%Anpassung trivlist +\let\fwd@trivlist\trivlist +\let\endfwd@trivlist\endtrivlist +\patchcmd\endfwd@trivlist\@endparenv\fwd@endparenv{}{} +\def\fwd@endparenv{% + \addpenalty\@endparpenalty\addvspace\fwd@skipbelow@length\@endpetrue} + +\newrobustcmd*\fwd@footnoterule{% + \kern0\p@% + \hrule \@width 1in \kern 2.6\p@} + + +\newrobustcmd*\fwd@footnoteoutput{% + \ifvoid\@mpfootins\else + \nobreak% + \vskip\fwd@footenotedistance@length% + \normalcolor% + \fwd@footnoterule + \unvbox\@mpfootins + \fi% +} + +\newrobustcmd*\fwd@footnoteinput{% + \def\@mpfn{mpfootnote}% + \def\thempfn{\thempfootnote}% + \c@mpfootnote\z@% + \let\@footnotetext\@mpfootnotetext% +} + + +\let\fwd@reserved@a\@empty +\newrobustcmd*\fwd@detect@output{% + \iffwd@nobreak%Option nobreak=true? + \def\fwd@reserved@a{\fwd@standalone}% + \else + \def\fwd@reserved@a{\fwd@putframe}% + \ifnum\@floatpenalty<0\relax%Detecting float + \if@twocolumn% + \ifx\@captype\@undefined + \def\fwd@reserved@a{\fwd@putframe}% + \else + \PackageWarning{fullwidth}{fullwidth inside float ^^J + fullwidth uses option nobreak}% + \def\fwd@reserved@a{\fwd@standalone}% + \fi + \else + \PackageWarning{fullwidth inside float ^^J + fullwidth uses option nobreak}% + \def\fwd@reserved@a{\fwd@standalone}% + \fi% + \fi% + \if@minipage% + \PackageWarning{fullwidth inside minipage ^^J + fullwidth uses option nobreak}% + \def\fwd@reserved@a{\fwd@standalone}% + \fi% + \ifinner% + \PackageWarning{fullwidth inside a box ^^J + fullwidth uses option nobreak }% + \def\fwd@reserved@a{\fwd@standalone}% + \fi% + \fi% +%\fwd@standalone% +\fwd@reserved@a% +} + + +\def\fullwidth{\@ifnextchar[\fullwidth@i\fullwidth@ii}% +\def\fullwidth@ii{\fullwidth@i[]}% +\def\fullwidth@i[#1]{% default-Umgebung + \begingroup + \fullwidthsetup{#1}%% + \fwd@twoside@checklength% + \let\width\z@% + \let\height\z@% + \setlength{\topsep}{\fwd@skipabove@length}% + \begingroup% + \let\partopsep\z@% + \expandafter\endgroup% + \begin{fwd@trivlist}\item\relax% + \hsize=\fwd@width@length\relax% + \fwd@footnoteinput% + \begin{fwd@lrbox}{\@tempboxa}% + } +\def\endfullwidth{% + \iffwd@footnoteinside% + \def\fwd@reserveda{% + \fwd@footnoteoutput% + \end{fwd@lrbox}% + \fwd@detect@output}% + \else% + \def\fwd@reserveda{% + \end{fwd@lrbox} + \fwd@detect@output% + \fwd@footnoteoutput% + }% + \fi% + \fwd@reserveda% + \end{fwd@trivlist}% + \hrule \@height\z@ \@width\hsize +\endgroup%\@endparenv% +} + + + +%%==================================================%% +%%================== Twoside-Modus =================%% +%%==================================================%% +\newrobustcmd*\fwd@twoside@checklength{% + \if@twoside + \setlength\fwd@rightmargin@length{\fwd@outermargin@length}% + \setlength\fwd@leftmargin@length{\fwd@innermargin@length}% +% \booltrue{fwd@twosidemode}% + \else + \boolfalse{fwd@twosidemode}% + \fi% +} + +\newcounter{fwd@zref@counter}%keine doppelten laebes +\zref@newprop*{fwd@pagevalue}[0]{\number\value{page}} +\zref@addprop{\ZREF@mainlist}{fwd@pagevalue} + +\newrobustcmd*\fwd@zref@label{% + \stepcounter{fwd@zref@counter} + \zref@label{fwd@pagelabel-\number\value{fwd@zref@counter}}% +} + +\newrobustcmd*\if@fwd@pageodd{% + \zref@refused{fwd@pagelabel-\the\value{fwd@zref@counter}}% + \ifodd\zref@extract{fwd@pagelabel-\the\value{fwd@zref@counter}}{fwd@pagevalue}% + \edef\fwd@reserveda{\fwd@pageisodd}% + \else + \edef\fwd@reserveda{\fwd@pageiseven}% + \fi + \fwd@reserveda% +} + +\newrobustcmd*\fwd@pageisodd{% + \setlength\fwd@rightmargin@length{\fwd@outermargin@length}% + \setlength\fwd@leftmargin@length{\fwd@innermargin@length}% +} +\newrobustcmd*\fwd@pageiseven{% + \setlength\fwd@leftmargin@length{\fwd@outermargin@length}% + \setlength\fwd@rightmargin@length{\fwd@innermargin@length}% +} + +\newrobustcmd*\fwd@@setzref{\fwd@zref@label\if@fwd@pageodd} + +%%==================================================%% +%%================= Platz auf Seite ================%% +%%==================================================%% + +\newlength\fwd@freevspace@length +\newrobustcmd*\fwd@freepagevspace{% + \penalty\@M \vskip 2\baselineskip \vskip\height + \penalty9999 \vskip -2\baselineskip \vskip-\height + \penalty9999 + \ifdimequal{\pagegoal}{\maxdimen}% + {\fwd@freevspace@length\vsize}% + {\fwd@freevspace@length=\pagegoal\relax% + \advance\fwd@freevspace@length by -\pagetotal\relax% + }% +} + +\newrobustcmd*\fwd@standalone{\relax% + \ifvoid\@tempboxa\relax + \PackageWarning{fullwidth}{The environment is empty\MessageBreak}% + \let\fwd@reserved@a\relax% + \else + \def\fwd@reserved@a{\fwd@putbox@tempboxa}% + \fi + \fwd@reserved@a% +} + + +\def\fwd@putframe{\relax% + \ifvoid\@tempboxa\relax + \PackageWarning{fullwidth}{The environment is empty\MessageBreak}% + \let\fwd@reserved@a\relax% + \else + \fwd@freepagevspace% + \ifdimless{\fwd@freevspace@length}{2\baselineskip} + {\PackageInfo{fullwidth}{Not enough space on this page}%die Seite hat nur noch minimal Platz + \vfill\eject% + \def\fwd@reserved@a{\fwd@putframe}% + }{% + \ifdimless{\ht\@tempboxa+\dp\@tempboxa}{\fwd@freevspace@length}% + {%passt auf Seite% + \begingroup + \ifbool{fwd@twosidemode}{\fwd@@setzref}{}% + \fwd@putbox@tempboxa%% + \endgroup + \let\fwd@reserved@a\relax}% + {\def\fwd@reserved@a{\fwd@putframe@i}}%passt nicht auf Seite + }% + \fi + \fwd@reserved@a% +} + +\def\fwd@putframe@i{%Box muss gesplittet werden -- Ausgabe der ersten Teilbox + %Berechnung der Splittgroesse Abstand oben + \fwd@freepagevspace% + \dimen@=\the\fwd@freevspace@length% + \dimen@i=\fwd@innertopmargin@length% + \advance\dimen@i by 2\baselineskip% + \ifdim\dimen@<\dimen@i\relax + \hrule \@height\z@ \@width\hsize% + \vfill\eject% + \def\fwd@reserved@a{\fwd@putframe}% + \else% + \ifdimless{\ht\@tempboxa+\dp\@tempboxa}{\dimen@}% + {\PackageWarning{fullwidth}{You got a bad break\MessageBreak + you have to change it manually\MessageBreak + by changing the text, the space\MessageBreak + or something else}% + \advance\dimen@ by -1.8\baselineskip\relax% + }{}% + \advance\dimen@ by -1pt\relax%Box darf nicht zu Groß werden. + \splitmaxdepth\z@ \splittopskip\fwd@splittopskip@length% + \setbox\tw@\vsplit\@tempboxa to \dimen@ + \setbox\tw@\vbox{\unvbox\tw@}%needed? + \ifdimgreater{\ht\tw@+\dp\tw@}{\dimen@}{%Falsch gesplittet + \PackageInfo{fullwidth}{Box was splittet wrong\MessageBreak}% + \dimen@i=\dimen@ + \advance\dimen@ by -\ht\tw@ + \advance\dimen@ by -\dp\tw@ + \advance\dimen@i by 0.5\dimen@ + \splittopskip\z@% + \setbox\@tempboxa\vbox{\unvbox\tw@% + \hrule \@height\dp\strutbox \@width\z@%benoetigt um Tiefe zu haben + \unvbox\@tempboxa} + \splittopskip\fwd@splittopskip@length% + \setbox\tw@\vsplit\@tempboxa to \dimen@i + \setbox\tw@\vbox{\unvbox\tw@}% + }{}% + \setbox\@tempboxa\vbox{\unvbox\@tempboxa}%PRUEFEN!!!! + \ifvoid\@tempboxa + \PackageWarning{fullwidth}{You got a bad break\MessageBreak + because the splittet box is empty\MessageBreak + You have to change the page settings\MessageBreak + like enlargethispage or something else}% + \setbox\@tempboxa\vbox{\box\tw@\box\@tempboxa}% + \def\fwd@reserved@a{\fwd@putframe}% + \fi + \ifvoid\tw@%%pruefe, ob erste Box leer ist + \hrule \@height\z@ \@width\hsize + \vfill\eject% + \def\fwd@reserved@a{\fwd@putframe}% + \else + \ifdimequal{\ht\tw@}{0pt}% + {\hrule \@height\z@ \@width\hsize% + \vfill\eject% + \setbox\@tempboxa\vbox{\unvbox\tw@\unvbox\@tempboxa} + \def\fwd@reserved@a{\fwd@putframe}% + }% + {% + \begingroup + \ifbool{fwd@twosidemode}{\fwd@@setzref}{}% + \fwd@putbox@tw@%Groesse des Splittens passt + \endgroup + \hrule \@height\z@ \@width\hsize + \vfill\eject% + \def\fwd@reserved@a{\fwd@putframe@ii}% + }% + \fi% + \fi% +\fwd@reserved@a% +} + +\def\fwd@putframe@ii{%Ausgabe der mittleren Box(en) wenn vorhanden + \setlength{\fwd@freevspace@length}{\vsize}% + \setlength{\dimen@}{\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax}% + \ifdimgreater{\dimen@}{\fwd@freevspace@length}% + {% + \advance\fwd@freevspace@length by -\fwd@splitbottomskip@length + \splitmaxdepth\z@ \splittopskip\fwd@splittopskip@length% + \setbox\tw@\vsplit\@tempboxa to \fwd@freevspace@length% + \setbox\tw@\vbox{\unvbox\tw@}%PRUEFEN!!! + \setbox\@tempboxa\vbox{\unvbox\@tempboxa}%PRUEFEN!!!! + \ifvoid\@tempboxa\relax% + \fwd@PackageWarning{You got a bad break\MessageBreak + because the split box is empty\MessageBreak + You have to change the settings}% + \fi% + \begingroup + \ifbool{fwd@twosidemode}{\fwd@@setzref}{}% + \fwd@putbox@tw@% + \endgroup + \hrule \@height\z@ \@width\hsize + \vfill\eject + \def\fwd@reserved@a{\fwd@putframe@ii}% + }%Hier die Ausgabe der mittleren Box + {\ifvoid\@tempboxa + \fwd@PackageWarning{You got a bad break\MessageBreak + because the last split box is empty\MessageBreak + You have to change the settings}% + \fi% + \begingroup + \ifbool{fwd@twosidemode}{\fwd@@setzref}{}% + \fwd@putbox@tempboxa% + \endgroup + \let\fwd@reserved@a\relax% + }%Hier kommt die Ausgabe der letzten Box + \fwd@reserved@a% +} + + +\newrobustcmd\fwd@leftline[1]{\leftline{\hspace*{\fwd@leftmargin@length}#1}}%Keine Modifikation + +\newrobustcmd\fwd@putbox@tempboxa{\fwd@leftline{\box\@tempboxa}} +\newrobustcmd\fwd@putbox@tw@{\fwd@leftline{\box\tw@}} + +\endinput diff --git a/macros/latex/contrib/fullwidth/fullwidth.tex b/macros/latex/contrib/fullwidth/fullwidth.tex new file mode 100644 index 0000000000..92e063b1fa --- /dev/null +++ b/macros/latex/contrib/fullwidth/fullwidth.tex @@ -0,0 +1,128 @@ +%Documenation of the package fullwidth +\setcounter{errorcontextlines}{999} +\documentclass[parskip=false,english,11pt]{ltxmdf} +\makeatletter +\renewcommand\tableofcontents{% +\setcounter{tocdepth}{1}% + \begin{multicols}{2}[\centering\textbf{\sffamily\Large\contentsname}] + \@starttoc{toc} + \end{multicols} +} +\ifoot{} +\makeatother +\usepackage{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lipsum} +%\usepackage[T1,altbullet]{lucidabr} +\usepackage[scaled=0.82]{beramono} + +\usepackage{fullwidth} +%\fullwidthsetup + +\def\fwdname{\texttt{fullwidth}\xspace} +\title{The \fwdname package} +\subtitle{Environment with adjustable margins for onside and twoside documents} +\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}% + \footnote{Sorry for bad English.}} +\version{\fwdversion} +\date{\today} +\introduction{This package provides the environment \fwdname which allows to set the left and right margins in a very simple way. It also allows page breaks. If you are using the \texttt{twoside} mode you can set the inner and outer margins. \par +By defining new environments the user may choose between several individual designs.% +} + + +\begin{document} +\maketitle + +\section{Motivation} +The package is inspired by many questions on \href{http://tex.stackexchange.com/}{tex stackexchange}. For example in the question \href{http://tex.stackexchange.com/questions/34368/how-to-switch-between-two-margin-sizes}{\emph{How to switch between two margin sizes?}} I solved the problem by using the package \mdname. However, since the package wasn't designed for such a environment, I decided to create a new package based on the algorithm of \mdname. + + + +\section{Syntax}\label{sec:syntax} +The package itself loads the packages \mdpack{kvoptions} and \mdpack{etoolbox}. + +Load the package as usual: +\begin{mdexample} + \usepackage[<GLOBAL OPTIONS>]{fullwidth} +\end{mdexample} + +The package defines only one environment with the following syntax: +\begin{mdexample} + \begin{fullwidth}[<LOCAL OPTIONS>] + <CONTENT> + \end{fullwidth} +\end{mdexample} + + +\minisec{Autodetecting floats} +I added a detection of \mdpack{float} and \mdpack{minipage} environments. If \fwdname would be used within such an environment, \fwdname it would automatically use the option \mdoption{nobreak}. + + +%%%%%%%%%%%%%%%%%%%%%%% +\section{Options} +The package provides various options for manipulating frames. All options are listed in the following section. Some internal macros are not shown in this documentation, though they can be manipulated. +\mdDescribeCmd{fullwidthsetup}The listed option can also be set via \mdcommand{fullwidthsetup}. + +\subsection{Options with lengths} + +All lengths will be evaluated by the \eTeX-command \mdcommand{dimexpr}. + +I know that the predefined lengths are not well prepared. Maybe I will change it later. + + +\mdDescribeMacro[0pt]{width} Sets the width of the whole \fwdname environment. + +\mdDescribeMacro[\textbackslash topskip]{skipabove} Sets an additional skip above the frame. +\mdDescribeMacro[\textbackslash topskip]{skipbelow} Sets an additional skip below the frame. + +\mdDescribeMacro[0pt]{leftmargin} Sets the length of the left margin of the environment. +\mdDescribeMacro[0pt]{rightmargin} Sets the length of the right margin of the environment. + +\mdDescribeMacro[.4\textbackslash baselineskip]{innertopmargin} Sets the length of the inner top margin of the environment. +\mdDescribeMacro[.4\textbackslash baselineskip]{innerbottommargin} Sets the length of the inner bottom margin of the environment. + +\mdDescribeMacro[0pt]{outermargin} Sets the length of the outer margin. This option is only avaidable in \texttt{twoside} mode. +\mdDescribeMacro[0pt]{innermargin} Sets the length of the inner margin. This option is only avaidable in \texttt{twoside} mode. + + +\mdDescribeMacro[\textbackslash topsep]{splittopskip} Sets the length of the skip above the split part of the environment. +\mdDescribeMacro[0pt]{splitbottomskip} Sets the length of the skip below the split part of the environment. + + +\subsection{General options}\label{genopt} + +\mdDescribeMacro[true]{twosidemode} The package detects wether \mdcommand{twoside} mode is active and uses \mdoption{innermargin} and \mdoption{outermagin} by default. If you don't know this you can use this option. + +\mdDescribeMacro[0pt]{needspace} Sometimes it is useful to set a minimum height before the environment should be splitted. For such cases you can use \mdoption{needspace}. The option requires a length which sets the minimum height before a frame will be splitted. + +\subsection{Footnotes} +Inside the environment you can use the command \mdcommand{footnote} as usual. \mdname uses the syntax of the environment \mdpack{minipage} with the same counter. + +Every footnote text will be collected inside a box and will be displayed at the end of the environment \fwdname. + +\mdDescribeMacro[\mbox{} \mdcommand{bigskipamount}]{footnotedistance} The length is the distance between the end of the environment \fwdname and the displaying of the \mdcommand{footnoterule}. + +%\mdDescribeMacro[true]{footnoteinside} The position of the footnotes can be changed with the option \mdoption{footnoteinside}. The footnotes will be displayed at the end of the environment but you can decide whether the output is inside \fwdname or after. +% +%\vskip\baselineskip +%\noindent\textbf{Note}\qquad The output of the footnotes with the option \mdoption{footnoteinside=false} are not in a splitted frame. I think it isn't useful because the first line of a new page shouldn't be a footnote. + + +\section{Known Problems} + In this section I will collect known problems. In case you encounter any further problems, please + drop me an email, \href{mailto:marco.daniel@mada-nada.de}{marco.daniel at mada-nada.de}. + + Do you have any ideas / wishes on further extensions to this package? Please let me know! + +\section{Acknowledgements} +Thanks to the members of \href{http://tex.stackexchange.com/}{tex stackexchange}. + +\subsection{Revision history}\label{rev} +\raggedright +\minisec{Version 0.1 submitted 26 Nov 2011} +\begin{itemize*} +\item first upload to \href{http://dante.ctan.org/upload}{CTAN} +\end{itemize*} +\end{document} |