From 68ae4f7bfb0b890c21bd8c5d10752b008f641cd0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 4 Jun 2010 14:50:05 +0000 Subject: savetrees 1.3 (3jun10) git-svn-id: svn://tug.org/texlive/trunk@18724 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/savetrees/savetrees.dtx | 126 ++++++++++++++------- .../source/latex/savetrees/savetrees.ins | 61 +++++----- 2 files changed, 118 insertions(+), 69 deletions(-) (limited to 'Master/texmf-dist/source') diff --git a/Master/texmf-dist/source/latex/savetrees/savetrees.dtx b/Master/texmf-dist/source/latex/savetrees/savetrees.dtx index b74ebebcab3..303529b830f 100644 --- a/Master/texmf-dist/source/latex/savetrees/savetrees.dtx +++ b/Master/texmf-dist/source/latex/savetrees/savetrees.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2007 by Scott Pakin +% Copyright (C) 2010 by Scott Pakin % ------------------------------------------------------ % % This file may be distributed and/or modified under the @@ -22,7 +22,7 @@ %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{savetrees} %<*package> - [2007/12/23 v1.2a Pack as much text as possible onto each page] + [2010/06/03 v1.3 Pack as much text as possible onto each page] % % %<*driver> @@ -30,17 +30,20 @@ \usepackage{array} \usepackage{dcolumn} \usepackage{tabularx} +\usepackage{hyperref} \EnableCrossrefs \CodelineIndex \setcounter{IndexColumns}{2} \RecordChanges \begin{document} \DocInput{savetrees.dtx} + \PrintChanges + \PrintIndex \end{document} % % \fi % -% \CheckSum{294} +% \CheckSum{302} % % \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 @@ -127,36 +130,39 @@ % Implementation \\ % \hline % -% Typeset section titles smaller and with less surrounding whitespace & -% Use the \pkgname{titlesec} package \\ +% Typeset section titles smaller and with less surrounding whitespace. & +% Use the \pkgname{titlesec} package. \\ % -% Reduce page margins & -% Use the \pkgname{geometry} package \\ +% Reduce page margins. & +% Use the \pkgname{geometry} package. \\ % % Reduce indentation and remove inter-item spacing from the various -% list environments & -% Redefine list environments \\ +% list environments. & +% Redefine list environments. \\ % % Relax float placement (more floats per page, increased ability to -% share pages with text, etc.) & -% Reassign \LaTeXe{} variables \\ +% share pages with text, etc.). & +% Reassign \LaTeXe{} variables. \\ % -% Decrease paragraph indentation & -% Reassign \texttt{\string\parindent} \\ +% Decrease paragraph indentation. & +% Reassign \texttt{\string\parindent}. \\ % % Typeset document title with smaller fonts and with less surrounding -% whitespace & -% Redefine \texttt{\string\maketitle} \\ +% whitespace. & +% Redefine \texttt{\string\maketitle}. \\ % -% Reduce interline spacing & -% Reassign \texttt{\string\baselinestretch} \\ +% Reduce interline spacing. & +% Reassign \texttt{\string\baselinestretch}. \\ % % Discourage \TeX\ from allowing the last line of a paragraph to -% contain only a single word & -% Reassign \texttt{\string\looseness} \\ +% contain only a single word. & +% Reassign \texttt{\string\looseness}. \\ % -% Typeset bibliographies smaller and with no inter-item spacing & -% Redefine \texttt{thebibliography} \\ +% Allow characters to be typeset slightly narrower than normal. & +% Use the \pkgname{microtype} package. \\ +% +% Typeset bibliographies smaller and with no inter-item spacing. & +% Redefine \texttt{thebibliography}. \\ % \hline % \end{tabularx} % \caption{\pkgname{savetrees}'s space-saving techniques} @@ -238,6 +244,8 @@ % % \item[\pkgoption{normallooseness}] Don't modify paragraph looseness. % +% \item[\pkgoption{normalcharwidths}] Don't modify character widths. +% % \item[\pkgoption{normalbib}] Don't modify bibliography formatting. % % \item[\pkgoption{normalbibnotes}] Don't omit |NOTE| fields from the @@ -432,7 +440,7 @@ % We can do better than merely \emph{selecting} a narrow font, though. % We can \emph{generate} a narrower version of an existing font. The % idea is to present \TeX{} with font metrics that indicate thinner -% characters and to tell Dvips to use the PostScript +% characters and to tell Dvips or pdf\TeX\ to use the PostScript % ``\texttt{ExtendFont}'' operator to compress all of the glyphs. The % \pkgname{savetrees} package comes with a Perl\index{Perl|usage} script, % \progname{makethin}, which automates the task of generating narrow @@ -460,13 +468,11 @@ % \progname{dvitype}. \progname{kpsewhich} searches the \TeX{} % installation directory for a given file or file type. While % \progname{kpsewhich} is a standard part of Kpathsea-based \TeX{} -% distributions, such as te\kern-.1em\TeX{}, it does not normally function on -% non-Kpathsea based distributions, such as MiK\TeX{}.\footnote{I have -% no current plans to port \progname{makethin} to non-Kpathsea based -% \TeX{} distributions, but volunteers to do the work are certainly welcome.} -% \progname{dvitype} outputs a DVI file in a textual format that's easy -% for \progname{makethin} to process. \progname{makethin} extracts font -% names from lines like the following: +% distributions, such as \TeX\ Live, it does not normally function on +% non-Kpathsea based distributions. \progname{dvitype} outputs a DVI +% file in a textual format that's easy for \progname{makethin} to +% process. \progname{makethin} extracts font names from lines like the +% following: % % \begin{verbatim} % Font 44: cmtt10---loaded at size 655360 DVI units @@ -474,6 +480,21 @@ % Font 33: cmss10---loaded at size 655360 DVI units % \end{verbatim} % +% Even with \progname{makethin}, creating narrow fonts is somewhat +% awkward as it requires the installation of various font files and font +% maps. Fortunately, with newer versions of \pkgname{savetrees}, there +% is far less need to bother with \progname{makethin}. +% \pkgname{savetrees}~v1.3 and later use the \pkgname{microtype} package +% to exploit pdf\TeX's font-expansion features to implicitly generate +% narrower versions of fonts. The advantage is that this approach is +% fully automatic; there's no need to install additional font files or +% font maps. The disadvantages are that (1)~it works only with +% pdf\TeX\ and (2)~it doesn't compress fonts uniformly but rather allows +% some variation from line to line based on how overfull or underfull +% the line would otherwise be. In short, \progname{makethin} should be +% seen as a last resort, when a significant amount of extra space must +% be elided from the document. +% % The \progname{makethin} script contains documentation in POD\index{POD % (Plain Old Documentation)|usage} (Plain Old Documentation) format. % This can be extracted using \progname{makethin}'s |--man| or @@ -875,7 +896,7 @@ % \setlength{\parskip}{\origparskip} % \setlength{\parindent}{\origparindent} % -% \StopEventually{\PrintChanges\PrintIndex} +% \StopEventually{} % % ^^A Define macros for labeling lines of code. % \makeatletter @@ -896,6 +917,7 @@ % } % \makeatother % +% % \section{Implementation of \texttt{savetrees.sty}} % % This section lists the complete, commented source code for the @@ -907,9 +929,6 @@ % narrow, then seeing how \pkgname{savetrees} alters margins may be % instructive for learning how to select your own page margins. % -% \bigskip -% We start by telling \pkgname{DocStrip} that this is where |savetrees.sty| -% begins: % \begin{macrocode} %<*package> % \end{macrocode} @@ -1052,6 +1071,20 @@ % \end{macro} % \end{macro} % +% \begin{macro}{\if@st@normal@char@widths} +% \begin{macro}{\@st@normal@char@widthstrue} +% \begin{macro}{\@st@normal@char@widthsfalse} +% These are used to conditionally disable \pkgname{savetrees}'s +% modifications to font width. +% \begin{macrocode} +\newif\if@st@normal@char@widths +\DeclareOption{normalcharwidths}{\@st@normal@char@widthstrue} +% \end{macrocode} +% \pkgoptiondecl{normalcharwidths} +% \end{macro} +% \end{macro} +% \end{macro} +% % \begin{macro}{\if@st@normal@bib} % \begin{macro}{\@st@normal@bibtrue} % \begin{macro}{\@st@normal@bibfalse} @@ -1287,8 +1320,6 @@ % |\@maketitle| to typeset the title |\large| and everything else in the % body font. In addition, we remove the extra whitespace above the % title and lessen the whitespace below the title. -% -% We proceed only with the author's permission. % \begin{macrocode} \if@st@normal@title \else @@ -1362,8 +1393,8 @@ \if@st@normal@looseness \else \let\markeverypar\everypar - \newtoks\everypar - \everypar\markeverypar + \newtoks\everypar + \everypar\markeverypar \markeverypar{\the\everypar\looseness=-1\relax} \fi % \end{macrocode} @@ -1375,6 +1406,25 @@ % the \pkgoption{normallooseness} option to \pkgname{savetrees}. % % +% \subsection{Font width} +% \changes{v1.3}{2010/06/03}{Added support for narrowing font widths} +% +% The \pkgname{microtype} package provides \LaTeX\ support for pdf\TeX's +% font-expansion feature. Font expansion is intended to improve text +% ``color''---the even balance between ink and absence of ink on a +% page---by subtly expanding or narrowing character widths instead of by +% adding or removing whitespace. \pkgname{savetrees} hijacks this +% feature as a space-saving mechanisms by specifying a maximum expansion +% of~0\% of a character's natural width but a maximum narrowing of~5\%. +% +% \begin{macrocode} +\if@st@normal@char@widths +\else + \RequirePackage[stretch=0,shrink=50]{microtype} +\fi +% \end{macrocode} +% +% % \subsection{Bibliography formatting} % % There are two ways we save space when typesetting bibliographies. @@ -1486,8 +1536,6 @@ % \labelprevcodeline{code:stbn-end} % \end{macro} % -% \bigskip\noindent -% This is the conclusion of |savetrees.sty|. % \begin{macrocode} % % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/savetrees/savetrees.ins b/Master/texmf-dist/source/latex/savetrees/savetrees.ins index 9b9abce91a4..65203ff148f 100644 --- a/Master/texmf-dist/source/latex/savetrees/savetrees.ins +++ b/Master/texmf-dist/source/latex/savetrees/savetrees.ins @@ -1,13 +1,13 @@ %% -%% Copyright (C) 2007 by Scott Pakin +%% Copyright (C) 2010 by Scott Pakin %% %% This file may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX version %% 2006/05/20 or later. %% @@ -25,7 +25,7 @@ This is a generated file. -Copyright (C) 2007 by Scott Pakin +Copyright (C) 2010 by Scott Pakin This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license @@ -78,31 +78,32 @@ End of customized bst file %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\Msg{****************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* \space\space savetrees.sty} -\Msg{*} -\Msg{* and the following file into a directory searched by BibTeX:} -\Msg{*} -\Msg{* \space\space savetrees.bst} -\Msg{*} -\Msg{* and the following file into a directory in your executable} -\Msg{* search path:} -\Msg{*} -\Msg{* \space\space makethin.pl} -\Msg{*} -\Msg{* If you're on a Unix system, you may want to rename} -\Msg{* makethin.pl to simply makethin.\space\space You will need to make} -\Msg{* the script executable with "chmod +x makethin".\space\space Also, a Unix} -\Msg{* man page can be generated with "makethin --man=makethin.1".} -\Msg{*} -\Msg{* To produce the documentation, run the file savetrees.dtx} -\Msg{* through LaTeX (twice, to get the references correct).} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{****************************************************************} +\obeyspaces +\Msg{******************************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the following *} +\Msg{* file into a directory searched by TeX: *} +\Msg{* *} +\Msg{* \space\space savetrees.sty *} +\Msg{* *} +\Msg{* and the following file into a directory searched by BibTeX: *} +\Msg{* *} +\Msg{* \space\space savetrees.bst *} +\Msg{* *} +\Msg{* and the following file into a directory in your executable *} +\Msg{* search path: *} +\Msg{* *} +\Msg{* \space\space makethin.pl *} +\Msg{* *} +\Msg{* If you're on a Unix system, you may want to rename *} +\Msg{* makethin.pl to simply makethin.\space\space You will need to make *} +\Msg{* the script executable with "chmod +x makethin".\space\space Also, a Unix *} +\Msg{* man page can be generated with "makethin --man=makethin.1". *} +\Msg{* *} +\Msg{* To produce the documentation, run the file savetrees.dtx *} +\Msg{* through LaTeX (twice, to get the references correct). *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{******************************************************************} \endbatchfile -- cgit v1.2.3