% \iffalse meta-comment
%
% Copyright 2005 by Will Robertson <wspr81@gmail.com>
% 
% Distributable under the LaTeX Project Public License,
% version 1.3c or higher (your choice). The latest version of
% this license is at: http://www.latex-project.org/lppl.txt
%
% This work is "maintained" (as per LPPL maintenance status) 
% by Will Robertson.
% 
% This work consists of the file  leading.dtx
%           and the derived files leading.sty and leading.pdf.
%
%
%<*internalbatchfile>
\begingroup
%</internalbatchfile>
%<*batchfile>
\input docstrip.tex
\keepsilent
\preamble

  __________________________________
  Copyright (C) 2007  Will Robertson

  License information appended.


\endpreamble
\postamble

Copyright (C) 2007 by Will Robertson <wspr81@gmail.com>

Distributable under the LaTeX Project Public License,
version 1.3c or higher (your choice). The latest version of
this license is at: http://www.latex-project.org/lppl.txt

This work is "maintained" (as per LPPL maintenance status) 
by Will Robertson.

This work consists of the file  \jobname.dtx
          and the derived files \jobname.sty and \jobname.pdf.

\endpostamble
\askforoverwritefalse
\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}}
\Msg{*************************************************************}
\Msg{*}
\Msg{* To finish the installation you have to move the following}
\Msg{* file into a directory searched by TeX:}
\Msg{*}
\Msg{*    leading.sty}
\Msg{*}
\Msg{* To produce the documentation run the file leading.dtx}
\Msg{* through LaTeX. Have fun!}
\Msg{*}
\Msg{*************************************************************}
%</batchfile>
%<batchfile>\endbatchfile
%<*internalbatchfile>
\generate{\file{\jobname.ins}{\from{\jobname.dtx}{batchfile}}}
\nopreamble\nopostamble
\generate{\file{dtx-style.sty}{\from{\jobname.dtx}{dtx-style}}}
\generate{\file{README.txt}{\from{\jobname.dtx}{readme}}}
\endgroup
\immediate\write18{mv README.txt README}
\immediate\write18{makeindex -s gind.ist -o \jobname.ind  \jobname.idx}
\immediate\write18{makeindex -s gglo.ist -o \jobname.gls  \jobname.glo}
%</internalbatchfile>
%
%<*driver>
\documentclass{ltxdoc}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
%\OnlyDescription
\usepackage{dtx-style}
\begin{document}
  \nonstopmode
  \DocInput{\jobname.dtx}
\end{document}
%</driver>
%
%<*readme>
___________________
The LEADING package
v0.2

Defines the \leading{<length>} command to set the
leading of the document to the length specified. In
contrast with \linespread{<ratio>}, which is less
useful in most cases.

______________
Will Robertson
2007
%</readme>
%
% \fi
%
% \GetFileInfo{\jobname.sty}
% \CheckSum{0}
% \makeatletter
%
% \title{Giving leading a number}
% \author{Will Robertson}
% \date{\filedate \qquad \fileversion}
%
% \maketitle
%
% \noindent
% \LaTeX\ defines two methods of specifying \emph{leading}\footnote{Pronounced to rhyme with `sledding'; the word arises from the spacers of lead used to separate lines of text in traditional metal press typesetting}, or the distance between successive lines of text:
% \codeline {\cmd\linespread\marg{ratio to font size} , and}
% \codeline {\cmd\renewcommand\cmd\baselinestretch\marg{ratio to original value} .}
% (I've got no idea what the difference between the two methods actually is.)
%
% For example, in the \pkg{pracjourn} class, 
% a font size and leading of 12\,pt/15.5\,pt was chosen, which required the preamble declaration
% |\linespread{1.069}|, as $12\times 1.069\approx15.5$. 
%
% But this is not how most people define the typesetting of their paragraphs.
% Instructions don't come from the designer: ``make the leading 1.069 times the font size''. 
% That's just silly. Instead, it's common to see ``give me a leading of 15.5\,pt''. And indeed, that's how
% \LaTeX's \cmd\fontsize\ command works.
%
% This package defines the \cmd\leading\marg{length} command, 
% which sets the leading immediately to the \meta{length} specified. Here's an example:\bigskip
%
% \noindent
% \begin{minipage}[t]{0.49\linewidth}
% \leading{11pt}|\leading{11pt}|\\\small
%Upon observing him more closely, I perceived that he wore a black silk
%apron over his small-clothes; and this was a thing which I thought very
%odd. Before I had time to make any remark, however, upon so singular a
%circumstance, he interrupted me with a second \emph{``ahem!''}
% \end{minipage}\hfill
% \begin{minipage}[t]{0.49\linewidth}
% \leading{13pt}|\leading{5mm}|\\\small
%Upon observing him more closely, I perceived that he wore a black silk
%apron over his small-clothes; and this was a thing which I thought very
%odd. Before I had time to make any remark, however, upon so singular a
%circumstance, he interrupted me with a second \emph{``ahem!''}
% \end{minipage}
% 
% \bigskip\noindent
% Because \cmd\leading\ uses \cmd\linespread\ internally, the results
% of |\leading{15.5pt}| in a 12\,pt document and |\linespread{1.069}|
% are identical. But because \cmd\leading\ uses a fixed length, if the
% font size of the document changes then its value will need to be
% adjusted. This isn't a problem in general, however, because it is common
% for different ratios of linespread to be used for different absolute
% font sizes anyway.
%
% \StopEventually{}
% \clearpage
% \part{The \pkg{\jobname} package}
%\iffalse
%<*package>
%\fi
% This is the package.
%    \begin{macrocode}
\ProvidesPackage{leading}
  [2007/05/06 v0.2 Define leading length]  
%    \end{macrocode}
%
% \PrintChanges
%
%    \begin{macrocode}
\RequirePackage{calc}
%    \end{macrocode}
%
% \begin{macro}{\leading}
% \darg{Leading (or `baselineskip') length}
% This is the whole package. Not much to it, really.
%    \begin{macrocode}
\newcommand\leading[1]{%
  \begingroup
    \normalfont
    \@tempdima=\f@size pt\relax
    \@tempdimb=#1\relax
    \setlength\@tempdimc{1pt*\ratio{\@tempdimb}{\@tempdima}}%
    \global\@tempdimc\@tempdimc
  \endgroup
  \linespread{\strip@pt\@tempdimc}\normalfont}
%    \end{macrocode}
% \end{macro}
%
%\iffalse
%</package>
%\fi
%
% \clearpage
%
% \PrintIndex
%
% \Finale
%
% \iffalse
%
%<*dtx-style>
%    \begin{macrocode}
\ProvidesPackage{dtx-style}

\errorcontextlines=999

\def\@dotsep{1000}
\setcounter{tocdepth}{2}
\setlength\columnseprule{0.4pt}
\renewcommand\tableofcontents{\relax
  \begin{multicols}{2}[\section*{\contentsname}]\relax
    \@starttoc{toc}\relax
  \end{multicols}}

\setcounter{IndexColumns}{2}
\renewenvironment{theglossary}
  {\small\list{}{}
     \item\relax
     \glossary@prologue\GlossaryParms 
     \let\item\@idxitem \ignorespaces 
     \def\pfill{\hspace*{\fill}}}
  {\endlist}

\usepackage[svgnames]{xcolor}
\usepackage{calc,enumitem,fancyvrb,graphicx,\jobname}

\usepackage[osf,sc]{mathpazo}
\linespread{1.069}      % A bit more space between lines
\frenchspacing         % Remove ugly extra space after punctuation
  
\definecolor{niceblue}{rgb}{0.2,0.4,0.8}
\newenvironment{example}[1]
  {\VerbatimEnvironment
   \def\Options{#1}%
   \begin{VerbatimOut}[gobble=4]{\examplefilename}}
  {\end{VerbatimOut}\relax
   \typesetexample}

\def\theCodelineNo{\textcolor{niceblue}{\sffamily\tiny\arabic{CodelineNo}}}

\let\examplesize\normalsize
\let\auxwidth\relax

\newlength\examplewidth\newlength\verbatimwidth
\newlength\exoutdent   \newlength\exverbgap
\setlength\exverbgap{1em}
\setlength\exoutdent{-0.15\textwidth}
\newsavebox\verbatimbox
\edef\examplefilename{\jobname.example}

\newcommand\typesetexample{\relax
   \smallskip
   \noindent
   \begin{minipage}{\linewidth}
   \color{niceblue}
   \hrulefill\par
   \edef\@tempa{[gobble=0,fontsize=\noexpand\scriptsize,\Options]}%
   \begin{lrbox}{\verbatimbox}\relax
     \expandafter\BVerbatimInput\@tempa{\examplefilename}%
   \end{lrbox}
   \begin{list}{}{\setlength\itemindent{0pt}
                  \setlength\leftmargin\exoutdent
                  \setlength\rightmargin{0pt}}\item
   \ifx\auxwidth\relax
     \setlength\verbatimwidth{\wd\verbatimbox}%
   \else
     \setlength\verbatimwidth{\auxwidth}%
   \fi
   \begin{minipage}[c]{\textwidth-\exoutdent-\verbatimwidth-\exverbgap}
     \catcode`\%=14\centering\input\examplefilename\relax
   \end{minipage}\hfill
   \begin{minipage}[c]{\verbatimwidth}
     \usebox\verbatimbox
   \end{minipage}
   \end{list}
   \par\noindent\hrulefill
   \end{minipage}
   \smallskip}

\newcommand*\setverbwidth[1]{\def\auxwidth{#1}}

\newcommand*\name[1]{{#1}}
\newcommand*\pkg[1]{\textsf{#1}}
\newcommand*\feat[1]{\texttt{#1}}
\newcommand*\opt[1]{\texttt{#1}}

\newcommand*\note[1]{\unskip\footnote{#1}}

\let\latin\textit
\def\eg{\latin{e.g.}}
\def\Eg{\latin{E.g.}}
\def\ie{\latin{i.e.}}
\def\etc{\@ifnextchar.{\latin{etc}}{\latin{etc.}\@}}

\def\STIX{\textsc{stix}}
\def\MacOSX{Mac~OS~X}
\def\ascii{\textsc{ascii}}
\def\OMEGA{Omega}

\makeatletter
\newcounter{argument}
\g@addto@macro\endmacro{\setcounter{argument}{0}}
\newcommand*\darg[1]{%
  \stepcounter{argument}%
  {\ttfamily\char`\#\theargument~:~}#1\par\noindent\ignorespaces}
\newcommand*\doarg[1]{%
  \stepcounter{argument}%
  {\ttfamily\makebox[0pt][r]{[}\char`\#\theargument]:~}#1\par\noindent\ignorespaces}
\makeatother
\newcommand\codeline[1]{\par\noindent\hspace{2\parindent}#1\par\noindent\ignorespaces}

\newcommand\unichar[2]{\textsc{\MakeLowercase{u+#1: #2}}}

\setlength\parindent{2em}

%    \end{macrocode}
%</dtx-style>
%\fi
%
% \typeout{*************************************************************}
% \typeout{*}
% \typeout{* To finish the installation you have to move the following}
% \typeout{* file into a directory searched by TeX:}
% \typeout{*}
% \typeout{* \space\space\space leading.sty}
% \typeout{*}
% \typeout{*************************************************************}
%
\endinput
 