summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/changepage
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-10-20 20:52:57 +0000
committerKarl Berry <karl@freefriends.org>2009-10-20 20:52:57 +0000
commit5db5c6d5c488a894b610f7a73a1188230e924a4b (patch)
tree6a447ae08b4413930bafdfe801be8ca3d3f87740 /Master/texmf-dist/tex/latex/changepage
parentbb35bf0864f4020fcb8ed5511762637fe5b94de5 (diff)
changepage (+chngpage) update (20oct09)
git-svn-id: svn://tug.org/texlive/trunk@15851 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/changepage')
-rw-r--r--Master/texmf-dist/tex/latex/changepage/changepage.sty242
-rw-r--r--Master/texmf-dist/tex/latex/changepage/chngpage.sty132
2 files changed, 149 insertions, 225 deletions
diff --git a/Master/texmf-dist/tex/latex/changepage/changepage.sty b/Master/texmf-dist/tex/latex/changepage/changepage.sty
index 3370dd3861d..7693fce352f 100644
--- a/Master/texmf-dist/tex/latex/changepage/changepage.sty
+++ b/Master/texmf-dist/tex/latex/changepage/changepage.sty
@@ -1,65 +1,39 @@
-% changepage.sty
-%
-% Provides commands to change the page layout in the middle of a document,
-% and to robustly check for typesetting on odd or even pages.
-% Instructions for use are at the end of this file.
-%
-% This package is an extraction of code from the memoir class. It is
-% intended to eventually replace the chngpage package.
-%
-% Author: Peter Wilson (Herries Press)
-% Maintainer: Will Robertson (will dot robertson at latex-project dot org)
-% Copyright 2008 Peter R. Wilson
-%
-% If you have any questions you will probably get better and faster
-% answers if you ask them on the comp.text.tex newsgroup as I am away
-% more often than I am here.
-%
-% This work 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: <http://www.latex-project.org/lppl.txt>
-%
-% This work has the LPPL maintenance status "maintained".
-% The Current Maintainer of this work is Will Robertson.
-%
-% This work consists of this file.
-%
-%
-%
+%% LaTeX2e file `changepage.sty'
+%% generated by the `filecontents' environment
+%% from source `changepage' on 2009/10/20.
+%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{changepage}[2009/09/02 v1.0b check page and change page layout]
+\ProvidesPackage{changepage}[2009/10/20 v1.0c check page and change page layout]
-%%% Don't use this with memoir
+% Don't use this with memoir
\newcommand*{\cp@whoopsusingmemoir}{}
\@ifclassloaded{memoir}{\def\cp@whoopsusingmemoir{\endinput}}
\cp@whoopsusingmemoir
-%% new \if for the strict option
+% New \verb|\if| for the strict option
\newif\ifstrictpagecheck
\strictpagecheckfalse
-%% user commands for switching strict page checking on/off
+
+% User commands for switching strict page checking on/off
\newcommand*{\strictpagecheck}{\strictpagechecktrue}
\newcommand*{\easypagecheck}{\strictpagecheckfalse}
-%% Declare and process options
+% Declare and process options
\DeclareOption{strict}{\strictpagechecktrue}
\ProcessOptions\relax
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% new commands for strict checking of odd/even page
-%% Works by writing a label and then checking its pageref
-%%
+%% New commands for strict checking of odd/even page.
+%% Works by writing a label and then checking its pageref.
\newif\ifoddpage
\newcounter{cp@cntr}
-\newcount\cp@tempcnt % instead of \@memcnta
+\newcount\cp@tempcnt % instead of \verb|\@memcnta|
\newcommand{\cplabel}{^_}
-%%%\gdef\thememc@@page{\the\c@page}
\gdef\thepmemc@@page{\the\c@page}
-\long\def\pmemprotected@write#1#2#3{% modified \protected@write
+\long\def\pmemprotected@write#1#2#3{% modified \verb|\protected@write|
\begingroup
\let\thepmemc@@page\relax
#2%
@@ -92,17 +66,17 @@
\ifodd\c@page\oddpagetrue\fi
\fi}
-%% end newcommands for strict checking of odd/even page
+% End newcommands for strict checking of odd/even page.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% copy of some of the code from the ifmtarg package to save requiring ifmtarg
+% Copy of some of the code from the ifmtarg package to save requiring ifmtarg
\begingroup
\catcode`\Q=3
\long\gdef\@ifmtarg#1{\@xifmtarg#1QQ\@secondoftwo\@firstoftwo\@nil}
\long\gdef\@xifmtarg#1#2Q#3#4#5\@nil{#4}
\endgroup
-%% set the page output parameters
+% Set the page output parameters
\DeclareRobustCommand{\ch@ngetext}{%
\setlength{\@colht}{\textheight}\setlength{\@colroom}{\textheight}%
\setlength{\vsize}{\textheight}\setlength{\columnwidth}{\textwidth}%
@@ -166,185 +140,3 @@
\endinput
-% Usage:
-% ------
-%
-% \usepackage[strict]{changepage}
-%
-%%%%%%%%%%%%%%%
-% \checkoddpage
-%%%%%%%%%%%%%%%
-%
-% The \checkoddpage command can be used anywhere in the body of
-% a document to determine if TeX is typesetting on an odd or
-% even numbered page. If on an odd page then \ifoddpage is
-% set TRUE, otherwise (on an even page) \ifoddpage is set
-% FALSE.
-%
-% Strict page checking works by the \checkoddpage command generating
-% a label and then checking the \pageref for the label (actually, a special
-% version of \pageref is required and is used internally by \checkoddpage).
-% This mechanism requires at least two LaTeX passes to ensure that
-% the labels have settled (on the initial pass there will be no labels
-% in the *.aux file to be checked).
-%
-% The label identifier is composed of the command \cplabel
-% and an automatically generated number. \cplabel, initially
-% defined as `^_', can be changed in the preamble if it will cause
-% a clash with any author-defined labels. The default labels will
-% be of the form `^_N' where N is a positive integer.
-%
-% The package option `strict' turns on strict page checking --- the default
-% is not to use strict checking. Strict page checking can be turned on or
-% off at any time by the commands \strictpagecheck or \easypagecheck.
-% The easy page check just tests the page number to see if it is odd or even,
-% which does not always give the correct result because of TeX's asynchronous
-% output mechanism.
-%
-%%%%%%%%%%%%%
-% adjustwidth
-%%%%%%%%%%%%%
-% Within an adjustwidth environment the left and right margins can be
-% adjusted. The environment takes two required length arguments:
-%
-% \begin{adjustwidth}{leftmargin}{rightmargin}
-%
-% A positive length value will increase the relevant margin (shortening
-% the text lines) while a negative length value will decrease the margin
-% (lengthening text lines). An empty length argument means no change
-% to the margin. At the end of the environment the margins revert to
-% their original values.
-%
-% For example, to extend the text into the right margin:
-% \begin{adjustwidth}{}{-8em}
-%
-% The starred version, adjustwidth*, causes the values of the
-% margins to switch between odd and even pages.
-%
-% If the document is being set twosided it might be advantageous
-% to have any wider text extending into the outside margin. This
-% could be done via the optional argument, as:
-% \begin{adjustwidth*}{}{-8em}
-%
-% To have the adjusted text horizontally centered with respect to
-% any surrounding text, the margins should be adjusted equally:
-% \begin{adjustwidth}{-4em}{-4em}
-%
-% For interest, \begin{quotation} is pretty much equivalent
-% to \begin{adjustwidth}{2.5em}{2.5em}
-%
-% The environment may also be used inside a float if the contents are
-% a bit too wide for the text block, but can still fit within the physical
-% page:
-% \begin{figure}
-% \begin{adjustwidth}{-2em}{-2em}
-% \includegraphics{wide}
-% \caption{Wide figure}
-% \end{adjustwidth}
-% \end{figure}
-%
-% Sometimes, because of the asynchronous nature of the TeX output
-% routine, the margin switching may be incorrect (like \marginpar sometimes)
-% near the top of a page. This can be corrected by using the package
-% option `strict' (i.e., \usepackage[strict]{chngpage}), which causes
-% adjustwidth to use the \checkoddpage command (see below).
-%
-% A disadvantage of the strict option is that the package generates
-% a new label for each adjustwidth environment, and TeX may run out
-% of space if there are an excessive number of labels in the document.
-%
-% Whether or not the strict option is used, `strict adjustwidths'
-% can be turned on by putting the command \strictpagecheck before
-% the environment, and turned off by using \easypagecheck.
-%
-% NOTE: In a twocolumn document, the adjustwidth environment
-% treats both columns equally. For example, if the width is meant
-% to be wider at the outer margin, then on odd pages the extra width
-% will be at the right of any column, and on even pages the extra
-% will be at the left of any column. You can get interesting effects
-% by careful hand tuning on two column pages.
-%
-%%%%%%%%%%%%%
-% \changetext
-%%%%%%%%%%%%%
-% The \changetext command is for changing the size and horizontal position
-% of the text block on a page. The command takes 5 arguments, each of which
-% is a length or is empty. i.e.,
-%
-% \changetext{textheight}{textwidth}{evensidemargin}{oddsidemargin}{columnsep}
-%
-% The given lengths are added to the corresponding current lengths and
-% the remainder of the current page is typeset using the changed text block
-% layout. The new layout remains in effect until another \change... command
-% is issued.
-%
-%%%%%%%%%%%%%
-% \changepage
-%%%%%%%%%%%%%
-% The \changepage command is for changing the general layout of
-% a page. The command takes 9 arguments, each of which is a length or is empty.
-% The first 5 arguments are the same as for \changetext and have the same effect.
-% The last four arguments are:
-%
-% \changepage{5 args}{topmargin}{headheight}{headsep}{footskip}
-%
-% These lengths are added to the corresponding current lengths and
-% thus modify the vertical positions of the elements of the page. The
-% remainder of the current page is typeset using the changed text block
-% and page layout. The new layout remains in effect until another
-% \change... command is issued.
-%
-% NOTE 1: Not supplying a value for a length argument is equivalent
-% to giving it a zero length value.
-%
-% NOTE 2: For any given page, everything is constant except for the textwidth
-% and columnsep (for example, what is the meaning of two
-% topmargins on a single column page?).
-% It is therefore best to change anything else at the
-% start of a new page. Further, any changes only apply to whole
-% paragraphs. If you want an odd shaped paragraph use either
-% the hanging package or the TeX \parshape command.
-%
-% For example, to change from single column pages to double column
-% pages where the text block is both shorter and wider, then to revert
-% back to the initial layout:
-% ... single column normal page
-% \newpage % or \clearpage
-% \changetext{-5\baselineskip}{10em}{-5em}{-5em}{}
-% \twocolumn
-% ... two column pages
-% \clearpage
-% \changetext{5\baselineskip}{-10em}{5em}{5em}{}
-% \onecolumn
-% ... normal pages
-%
-% Note the adjustments to the margins which will keep the vertical centerline
-% of the textblock at the same position on the page.
-%
-% As another example, to increase the width of a single paragraph:
-%
-% \changetext{0pt}{5em}{}{}{}%
-% Start of wider paragraph text ...
-% ... end of paragraph.
-%
-% \changetext{0pt}{-5em}{}{}{}
-% Start of a normal paragraph ...
-%
-% Under some circumstances you can include a \change... command as part of
-% the argument to \afterpage (from the afterpage package) and it may work.
-% Similarly it may work in a heading style used for \thispagestyle to change
-% a single page.
-%
-%
-% Changes in version 1.0b (2009/09/02)
-% - New maintainer (Will Robertson, funnily enough)
-%
-% Changes in version 1.0a (2008/08/15)
-% - Fixed typo (a missing `p', courtesy Will Robertson)
-%
-% Changes in version 1.0 (2008/03/22)
-% - First public release
-%
-% Peter W.
-%
-
diff --git a/Master/texmf-dist/tex/latex/changepage/chngpage.sty b/Master/texmf-dist/tex/latex/changepage/chngpage.sty
new file mode 100644
index 00000000000..5f2542fcb1f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/changepage/chngpage.sty
@@ -0,0 +1,132 @@
+%% LaTeX2e file `chngpage.sty'
+%% generated by the `filecontents' environment
+%% from source `changepage' on 2009/10/20.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% PLEASE NOTE:
+% THIS PACKAGE IS DEPRECATED IN FAVOUR OF CHANGEPAGE.STY FOR REASONS
+% OF COMPATIBILITY WITH THE MEMOIR CLASS. The two are equivalent;
+% please do not use this one for new documents or packages.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{chngpage}[2009/10/20 v1.2b change page layout]
+
+%% Note: internal package commands all include the string |cp@|.
+%% New \cs{if} for the strict option.
+\newif\ifcpstrict
+ \cpstrictfalse
+
+%% Declare and process options.
+\DeclareOption{strict}{\cpstricttrue}
+\ProcessOptions\relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% New commands for strict checking of odd/even page.
+% Works by writing a label and then checking its pageref.
+%
+% Rewritten in v1.2 to handle roman, Roman, etc page numbers
+% as well as arabic; also eliminates special code to handle
+% hyperref. Based on the code in the memoir class.
+
+\newif\ifcpoddpage
+\newcounter{cp@cnt}
+\newcounter{cp@tempcnt}
+\newcommand{\cplabelprefix}{^_}
+
+\gdef\thecp@page{\the\c@page}
+\long\def\cp@protected@write#1#2#3{% % modified \cs{protected@write}
+ \begingroup
+ \let\thecp@page\relax
+ #2%
+ \let\protect\@unexpandable@protect
+ \edef\reserved@a{\write#1{#3}}%
+ \reserved@a
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi}
+
+\DeclareRobustCommand{\checkoddpage}{%
+ \cpoddpagefalse
+ \stepcounter{cp@cnt}\cplabel{\cplabelprefix\thecp@cnt}%
+ \c@cp@tempcnt=\cp@labelref{\cplabelprefix\thecp@cnt}\relax
+ \ifodd\c@cp@tempcnt\cpoddpagetrue\fi}
+
+\newcommand{\cplabel}[1]{\@bsphack
+ \cp@protected@write\@auxout{}%
+ {\string\newcplabel{#1}{\thecp@page}}%
+ \@esphack}
+
+\newcommand{\newcplabel}[2]{{\global\@namedef{p@#1}{#2}}}
+
+\newcommand{\cp@labelref}[1]{%
+ \expandafter\ifx\csname p@#1\endcsname\relax
+ 0% % 0 if there is no label yet in aux file
+ \else
+ \csname p@#1\endcsname
+ \fi}
+
+% End newcommands for strict checking of odd/even page.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Copy of some of the code from the ifmtarg package to save requiring ifmtarg.
+\begingroup
+\catcode`\Q=3
+\long\gdef\@ifmtarg#1{\@xifmtarg#1QQ\@secondoftwo\@firstoftwo\@nil}
+\long\gdef\@xifmtarg#1#2Q#3#4#5\@nil{#4}
+\endgroup
+
+% Set the page output parameters.
+\DeclareRobustCommand{\ch@ngetext}{%
+ \setlength{\@colht}{\textheight}\setlength{\@colroom}{\textheight}%
+ \setlength{\vsize}{\textheight}\setlength{\columnwidth}{\textwidth}%
+ \if@twocolumn%
+ \advance\columnwidth-\columnsep \divide\columnwidth\tw@%
+ \@firstcolumntrue%
+ \fi%
+ \setlength{\hsize}{\columnwidth}%
+ \setlength{\linewidth}{\hsize}%
+}
+
+\DeclareRobustCommand{\changetext}[5]{%
+ \@ifmtarg{#1}{}{\addtolength{\textheight}{#1}}%
+ \@ifmtarg{#2}{}{\addtolength{\textwidth}{#2}}%
+ \@ifmtarg{#3}{}{\addtolength{\evensidemargin}{#3}}%
+ \@ifmtarg{#4}{}{\addtolength{\oddsidemargin}{#4}}%
+ \@ifmtarg{#5}{}{\addtolength{\columnsep}{#5}}%
+ \ch@ngetext%
+}
+
+\DeclareRobustCommand{\changepage}[9]{%
+ \@ifmtarg{#1}{}{\addtolength{\textheight}{#1}}%
+ \@ifmtarg{#2}{}{\addtolength{\textwidth}{#2}}%
+ \@ifmtarg{#3}{}{\addtolength{\evensidemargin}{#3}}%
+ \@ifmtarg{#4}{}{\addtolength{\oddsidemargin}{#4}}%
+ \@ifmtarg{#5}{}{\addtolength{\columnsep}{#5}}%
+ \ch@ngetext%
+ \@ifmtarg{#6}{}{\addtolength{\topmargin}{#6}}%
+ \@ifmtarg{#7}{}{\addtolength{\headheight}{#7}}%
+ \@ifmtarg{#8}{}{\addtolength{\headsep}{#8}}%
+ \@ifmtarg{#9}{}{\addtolength{\footskip}{#9}}%
+}
+
+
+\newenvironment{adjustwidth}[3][\@empty]{%
+ \begin{list}{}{%
+ \topsep\z@%
+ \listparindent\parindent%
+ \parsep\parskip%
+ \@ifmtarg{#2}{\setlength{\leftmargin}{\z@}}{\setlength{\leftmargin}{#2}}%
+ \@ifmtarg{#3}{\setlength{\rightmargin}{\z@}}{\setlength{\rightmargin}{#3}}%
+ \ifx\@empty #1\relax \else
+ \cpoddpagefalse
+ \ifcpstrict\checkoddpage\else
+ \ifodd\c@page\cpoddpagetrue\fi
+ \fi
+ \ifcpoddpage\else % even numbered page
+ \@ifmtarg{#3}{\setlength{\leftmargin}{\z@}}{\setlength{\leftmargin}{#3}}%
+ \@ifmtarg{#2}{\setlength{\rightmargin}{\z@}}{\setlength{\rightmargin}{#2}}%
+ \fi
+ \fi}
+ \item[]}{\end{list}}
+
+\endinput