summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/changelayout
diff options
context:
space:
mode:
authorDr. Clea F. Rees <cfrees@imapmail.org>2009-08-07 00:47:53 +0000
committerDr. Clea F. Rees <cfrees@imapmail.org>2009-08-07 00:47:53 +0000
commit921eeb0b738259b75265be9a429795031c68dca5 (patch)
tree48fd7db71f77acad3fba6a099d4f6d6147cae7c1 /Master/texmf-dist/tex/latex/changelayout
parentca8bee56f70fcad8271efe91a6a2381ce841c115 (diff)
changelayout new version
git-svn-id: svn://tug.org/texlive/trunk@14562 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/changelayout')
-rw-r--r--Master/texmf-dist/tex/latex/changelayout/changelayout.sty241
1 files changed, 127 insertions, 114 deletions
diff --git a/Master/texmf-dist/tex/latex/changelayout/changelayout.sty b/Master/texmf-dist/tex/latex/changelayout/changelayout.sty
index eaad7ce5e2a..5eaf199fbfa 100644
--- a/Master/texmf-dist/tex/latex/changelayout/changelayout.sty
+++ b/Master/texmf-dist/tex/latex/changelayout/changelayout.sty
@@ -19,13 +19,13 @@
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
\ProvidesPackage{changelayout}[2009/06/25 v0.1 Change page layout on the fly]
\NeedsTeXFormat{LaTeX2e}
-\RequirePackage{etoolbox}
+\RequirePackage{etextools}
\RequirePackage{xkeyval}
+\RequirePackage{ltxnew}
\newrobustcmd\cpl@warn[1]{\PackageWarningNoLine{changelayout}{#1}}
\newrobustcmd\cpl@info[1]{\PackageInfo{changelayout}{#1\@gobble}}
\newrobustcmd\cpl@err[1]{\PackageError{changelayout}{#1}{\@ehc}}
-\let\cpl@xp\expandafter
-\def\cpl@glet#1#2{\@ifdefinable#1{\global\let#1#2}}
+\new\let\cpl@xp\expandafter
\@ifclassloaded{memoir}{%
\cpl@err{This package can't be used with\MessageBreak
memoir class. I've therefore exited}
@@ -51,19 +51,26 @@
}{}
}
\newrobustcmd*\cpl@numdef[2]{%
- \ifstrempty{#2}{\cpl@err{You can't assign empty argument\MessageBreak
+ \ifstrempty{#2}{\cpl@err{You can't assign empty argument\MessageBreak
to number}}{}
- \ifundef{#1}{\newcount#1\relax #1=\z@\relax}{}%
+ \ifundef{#1}{\new\count#1\relax #1=\z@\relax}{}%
#1=\numexpr#2\relax
}
\newrobustcmd*\cpl@csnumdef[1]{\cpl@xp\cpl@numdef\csname#1\endcsname}
\newrobustcmd*\cpl@dimdef[2]{%
- \ifstrempty{#2}{\cpl@err{You can't assign empty argument\MessageBreak
+ \ifstrempty{#2}{\cpl@err{You can't assign empty argument\MessageBreak
to dimension}}{}
- \ifundef{#1}{\newdimen#1\relax #1=\z@\relax}{}%
+ \ifundef{#1}{\new\dimen#1\relax #1=\z@\relax}{}%
#1=\dimexpr#2\relax
}
\newrobustcmd*\cpl@csdimdef[1]{\cpl@xp\cpl@dimdef\csname#1\endcsname}
+\newrobustcmd*\cpl@dimadd[2]{%
+ \ifstrempty{#2}{\cpl@err{Why do you want to add empty\MessageBreak
+ argument to dimension?}}{}
+ \ifundef{#1}{\cpl@err{You can't add to undefined dimension}}{}
+ #1=\dimexpr#1+#2\relax
+}
+\newrobustcmd*\cpl@csdimadd[1]{\cpl@xp\cpl@dimadd\csname#1\endcsname}
\newrobustcmd\cpl@changelayout{%
\@colht=\textheight%
\@colroom=\textheight%
@@ -103,7 +110,7 @@
}
\@onlypreamble\cpl@getdefaults\relax
\AtEndPreamble{\cpl@getdefaults}%
-\long\def\cpl@print@defaultparams{%
+\newcommand\cpl@print@defaultparams{%
^^J*******************************************************^^J%
Original page layout dimensions and booleans^^J%
(changelayout package)^^J%
@@ -133,7 +140,7 @@
*******************************************************^^J%
}%
\@onlypreamble\cpl@print@defaultparams\relax
-\long\def\cpl@print@finalparams{%
+\newcommand\cpl@print@finalparams{%
^^J+++++++++++++++++++++++++++++++++++++++++++++++++++++++^^J%
Final page layout dimensions and booleans^^J%
(changelayout package)^^J%
@@ -188,38 +195,38 @@
\noexpand\cpl@info{Layout parameters reset to defaults}%
}\@tempa%
}
-\def\cpl@content{No content}
-\def\cpl@paperheight{\paperheight}
-\def\cpl@paperwidth{\paperwidth}
-\def\cpl@textheight{\textheight}
-\def\cpl@textwidth{\textwidth}
-\def\cpl@evensidemargin{\evensidemargin}
-\def\cpl@oddsidemargin{\oddsidemargin}
-\def\cpl@topmargin{\topmargin}
-\def\cpl@headheight{\headheight}
-\def\cpl@headsep{\headsep}
-\def\cpl@footskip{\footskip}
-\def\cpl@footins{\skip\footins}
-\def\cpl@topsep{\topsep}
-\def\cpl@listparindent{\listparindent}
-\def\cpl@parindent{\parindent}
-\def\cpl@parsep{\parsep}
-\def\cpl@parskip{\parskip}
-\def\cpl@leftmargin{\leftmargin}
-\def\cpl@rightmargin{\rightmargin}
-\def\cpl@columnwidth{\columnwidth}
-\def\cpl@columnsep{\columnsep}
-\def\cpl@columnseprule{\columnseprule}
-\def\cpl@marginparwidth{\marginparwidth}
-\def\cpl@marginparsep{\marginparsep}
-\def\cpl@marginparsep{\marginparpush}
-\def\cpl@hoffset{\hoffset}
-\def\cpl@voffset{\voffset}
-\def\cpl@textcolor{black}
+\new\def\cpl@content{No content}
+\new\def\cpl@paperheight{\paperheight}
+\new\def\cpl@paperwidth{\paperwidth}
+\new\def\cpl@textheight{\textheight}
+\new\def\cpl@textwidth{\textwidth}
+\new\def\cpl@evensidemargin{\evensidemargin}
+\new\def\cpl@oddsidemargin{\oddsidemargin}
+\new\def\cpl@topmargin{\topmargin}
+\new\def\cpl@headheight{\headheight}
+\new\def\cpl@headsep{\headsep}
+\new\def\cpl@footskip{\footskip}
+\new\def\cpl@footins{\skip\footins}
+\new\def\cpl@topsep{\topsep}
+\new\def\cpl@listparindent{\listparindent}
+\new\def\cpl@parindent{\parindent}
+\new\def\cpl@parsep{\parsep}
+\new\def\cpl@parskip{\parskip}
+\new\def\cpl@leftmargin{\leftmargin}
+\new\def\cpl@rightmargin{\rightmargin}
+\new\def\cpl@columnwidth{\columnwidth}
+\new\def\cpl@columnsep{\columnsep}
+\new\def\cpl@columnseprule{\columnseprule}
+\new\def\cpl@marginparwidth{\marginparwidth}
+\new\def\cpl@marginparsep{\marginparsep}
+\new\def\cpl@marginparpush{\marginparpush}
+\new\def\cpl@hoffset{\hoffset}
+\new\def\cpl@voffset{\voffset}
+\new\def\cpl@textcolor{black}
\define@boolkey+[KV]{changelay}[cpl@]{reset}[true]{%
- \cpl@backtodefaults}{\cpl@warn{Erroneous value for 'reset' ignored}}
+ \cpl@backtodefaults}{\cpl@err{Erroneous value for 'reset'}}
\define@boolkeys[KV]{changelay}[cpl@]{switchadjust,logdefault,%
- logfinal,strictcheck,oddpage}[true]{}
+ logfinal,strictcheck,oddpage}[true]
\define@cmdkey[KV]{changelay}[cpl@]{content}[]{}
\define@cmdkey[KV]{changelay}[cpl@]{textcolor}[black]{}
\define@cmdkey[KV]{changelay}[cpl@]{paperheight}[\paperheight]{}
@@ -248,28 +255,35 @@
\define@cmdkey[KV]{changelay}[cpl@]{marginparpush}[\marginparpush]{}
\define@cmdkey[KV]{changelay}[cpl@]{hoffset}[\hoffset]{}
\define@cmdkey[KV]{changelay}[cpl@]{voffset}[\voffset]{}
-\def\do#1{\csdef{cpl@x@#1}{\z@}}
-\docsvlist{paperheight,paperwidth,textheight,textwidth,evensidemargin,%
+\DeclareCmdListParser\cpl@csvloop{,}
+\new\def\cpl@cmddo#1{\csdef{cpl@x@#1}{\z@}}
+\new\def\cpl@list@a{%
+ paperheight,paperwidth,textheight,textwidth,evensidemargin,%
oddsidemargin,topmargin,headheight,headsep,footskip,footins,topsep,%
listparindent,parindent,parsep,parskip,leftmargin,rightmargin,%
columnwidth,columnsep,columnseprule,marginparwidth,marginparsep,%
marginparpush,hoffset,voffset%
}
+\new\def\cpl@definecmds{\begingroup%
+ \edef\@tempa{\endgroup\cpl@csvloop[\cpl@cmddo]\cpl@list@a}%
+ \@tempa%
+}
+\cpl@definecmds\undef{\cpl@list@a}\undef{\cpl@definecmds}%
\define@cmdkeys[KV@X]{changelay}[cpl@x@]{%
paperheight,paperwidth,textheight,textwidth,evensidemargin,%
oddsidemargin,topmargin,headheight,headsep,footskip,footins,%
- topsep,listparindent,parindent,parsep,parskip,leftmargin,rightmargin,%
- columnwidth,columnsep,columnseprule,marginparwidth,marginparsep,%
- marginparpush,hoffset,voffset%
+ topsep,listparindent,parindent,parsep,parskip,leftmargin,%
+ rightmargin,columnwidth,columnsep,columnseprule,marginparwidth,%
+ marginparsep,marginparpush,hoffset,voffset%
}[\z@]
\DeclareOptionX*{\cpl@warn{Unknown option '\CurrentOption' ignored}}
\ExecuteOptionsX<changelay>{}
\ProcessOptionsX*<changelay>\relax
\cpl@csnumdef{cpl@cnt@a}{\z@}
\cpl@csnumdef{cpl@mem@c@page}{\z@}
-\def\cpl@xlabel{_x_}
-\gdef\thecpl@mem@c@page{\the\c@page}
-\long\def\cpl@afterelsefi#1\else#2\fi{\fi#1}
+\new\def\cpl@xlabel{_x_}
+\new\gdef\thecpl@mem@c@page{\the\c@page}
+\new\long\def\cpl@afterelsefi#1\else#2\fi{\fi#1}
\newrobustcmd\cpl@protected@write[3]{%
\begingroup
\let\thecpl@mem@c@page\relax
@@ -280,7 +294,7 @@
\if@nobreak\ifvmode\nobreak\fi\fi
}
\ifcpl@strictcheck\if@filesw\cpl@afterelsefi
- \def\cpl@mem@label#1{%
+ \new\def\cpl@mem@label#1{%
\@bsphack
\cpl@protected@write\@auxout{}%
{\cpl@new@mem@label{#1}{\thecpl@mem@c@page}}%
@@ -289,107 +303,106 @@
\else
\cpl@err{nofiles: I need to write in the .aux file}
\fi\fi
-\def\cpl@new@mem@label#1#2{\csgdef{m@#1}{#2}}
-\def\cpl@mem@labelref#1{0\csuse{m@#1}}
-\newrobustcmd\checkifoddpage{%
+\new\def\cpl@new@mem@label#1#2{\csgdef{m@#1}{#2}}
+\new\def\cpl@mem@labelref#1{0\csuse{m@#1}}
+\newrobustcmd\cpl@checkifoddpage{%
\cpl@oddpagefalse%
- \ifcpl@strictcheck
- \global\advance\cpl@cnt@a\@ne
+ \ifbool{cpl@strictcheck}{%
+ \global\advance\cpl@cnt@a\@ne\relax
\cpl@mem@label{\cpl@xlabel\the\cpl@cnt@a}%
\cpl@mem@c@page=\cpl@mem@labelref{\cpl@xlabel\the\cpl@cnt@a}\relax
\ifodd\cpl@mem@c@page\cpl@oddpagetrue\fi
- \else
+ }{%
\ifodd\c@page\cpl@oddpagetrue\fi
- \fi
+ }%
}
-\ifcpl@logdefault
- \AtBeginDocument{\cpl@protected@write{16}{}{\cpl@print@defaultparams}}
-\fi
-\ifcpl@logfinal
- \AtEndDocument{\immediate\write16{\cpl@print@finalparams}}
-\fi
+\ifbool{cpl@logdefault}{%
+ \AtBeginDocument{\immediate\write-1{\cpl@print@defaultparams}}
+}{}
+\ifbool{cpl@logfinal}{%
+ \AtEndDocument{\immediate\write-1{\cpl@print@finalparams}}
+}{}
\newrobustcmd\changepagelayout[1]{%
\setkeys[KV]{changelay}{#1}%
- \setlength\paperheight{\cpl@paperheight}%
- \setlength\paperwidth{\cpl@paperwidth}%
- \setlength\textheight{\cpl@textheight}%
- \setlength\textwidth{\cpl@textwidth}%
- \setlength\evensidemargin{\cpl@evensidemargin}%
- \setlength\oddsidemargin{\cpl@oddsidemargin}%
- \setlength\columnsep{\cpl@columnsep}%
- \setlength\columnseprule{\cpl@columnseprule}%
- \setlength\topmargin{\cpl@topmargin}%
- \setlength\headheight{\cpl@headheight}%
- \setlength\headsep{\cpl@headsep}%
- \setlength\footskip{\cpl@footskip}%
- \setlength{\skip\footins}{\cpl@footins}
- \setlength\marginparwidth{\cpl@marginparwidth}%
- \setlength\marginparsep{\cpl@marginparsep}%
- \setlength\marginparpush{\cpl@x@marginparpush}%
+ \cpl@dimdef{\paperheight}{\cpl@paperheight}%
+ \cpl@dimdef{\paperwidth}{\cpl@paperwidth}%
+ \cpl@dimdef{\textheight}{\cpl@textheight}%
+ \cpl@dimdef{\textwidth}{\cpl@textwidth}%
+ \cpl@dimdef{\evensidemargin}{\cpl@evensidemargin}%
+ \cpl@dimdef{\oddsidemargin}{\cpl@oddsidemargin}%
+ \cpl@dimdef{\columnsep}{\cpl@columnsep}%
+ \cpl@dimdef{\columnseprule}{\cpl@columnseprule}%
+ \cpl@dimdef{\topmargin}{\cpl@topmargin}%
+ \cpl@dimdef{\headheight}{\cpl@headheight}%
+ \cpl@dimdef{\headsep}{\cpl@headsep}%
+ \cpl@dimdef{\footskip}{\cpl@footskip}%
+ \cpl@dimdef{\skip\footins}{\cpl@footins}%
+ \cpl@dimdef{\marginparwidth}{\cpl@marginparwidth}%
+ \cpl@dimdef{\marginparsep}{\cpl@marginparsep}%
+ \cpl@dimdef{\marginparpush}{\cpl@x@marginparpush}%
\cpl@changelayout%
}
-\cpl@glet\changetextlayout\changepagelayout
+\new\global\let\changetextlayout\changepagelayout
\newrobustcmd\adjustpagelayout[1]{%
\setkeys[KV@X]{changelay}{#1}%
- \addtolength\paperheight{\cpl@x@paperheight}%
- \addtolength\paperwidth{\cpl@x@paperwidth}%
- \addtolength\textheight{\cpl@x@textheight}%
- \addtolength\textwidth{\cpl@x@textwidth}%
- \addtolength\evensidemargin{\cpl@x@evensidemargin}%
- \addtolength\oddsidemargin{\cpl@x@oddsidemargin}%
- \addtolength\columnsep{\cpl@x@columnsep}%
- \setlength\columnseprule{\cpl@x@columnseprule}%
- \addtolength\topmargin{\cpl@x@topmargin}%
- \addtolength\headheight{\cpl@x@headheight}%
- \addtolength\headsep{\cpl@x@headsep}%
- \addtolength\footskip{\cpl@x@footskip}%
- \setlength{\skip\footins}{\cpl@x@footins}%
- \addtolength\marginparwidth{\cpl@x@marginparwidth}%
- \addtolength\marginparsep{\cpl@x@marginparsep}%
- \addtolength\marginparpush{\cpl@x@marginparpush}%
+ \cpl@dimadd{\paperheight}{\cpl@x@paperheight}%
+ \cpl@dimadd{\paperwidth}{\cpl@x@paperwidth}%
+ \cpl@dimadd{\textheight}{\cpl@x@textheight}%
+ \cpl@dimadd{\textwidth}{\cpl@x@textwidth}%
+ \cpl@dimadd{\evensidemargin}{\cpl@x@evensidemargin}%
+ \cpl@dimadd{\oddsidemargin}{\cpl@x@oddsidemargin}%
+ \cpl@dimadd{\columnsep}{\cpl@x@columnsep}%
+ \cpl@dimadd{\columnseprule}{\cpl@x@columnseprule}%
+ \cpl@dimadd{\topmargin}{\cpl@x@topmargin}%
+ \cpl@dimadd{\headheight}{\cpl@x@headheight}%
+ \cpl@dimadd{\headsep}{\cpl@x@headsep}%
+ \cpl@dimadd{\footskip}{\cpl@x@footskip}%
+ \cpl@dimadd{\skip\footins}{\cpl@x@footins}%
+ \cpl@dimadd{\marginparwidth}{\cpl@x@marginparwidth}%
+ \cpl@dimadd{\marginparsep}{\cpl@x@marginparsep}%
+ \cpl@dimadd{\marginparpush}{\cpl@x@marginparpush}%
\cpl@changelayout%
}
-\cpl@glet\adjusttextlayout\adjustpagelayout
+\new\global\let\adjusttextlayout\adjustpagelayout
+\new\def\cpl@listparams{%
+ \topsep=\z@%
+ \partopsep=\z@%
+ \listparindent=\parindent%
+ \parsep=\parskip%
+ \itemsep=\z@%
+}
\newenvironment{cpl@adjustwidth}[2]{%
\begin{list}{}{%
- \topsep=\z@%
- \partopsep=\z@%
- \listparindent=\parindent%
- \parsep=\parskip%
- \itemsep=\z@%
+ \cpl@listparams%
\setlength\leftmargin{#1}%
\setlength\rightmargin{#2}%
}%
\item[]\ignorespaces}%
-{\end{list}\ignorespacesafterend}
+{\end{list}\@ignoretrue}
\newenvironment{cpl@adjustwidth*}[2]{%
\begin{list}{}{%
- \topsep=\z@%
- \partopsep=\z@%
- \listparindent=\parindent%
- \parsep=\parskip%
- \itemsep=\z@%
- \checkifoddpage%
- \ifcpl@oddpage
+ \cpl@listparams%
+ \cpl@checkifoddpage%
+ \ifbool{cpl@oddpage}{%
\setlength\leftmargin{#1}%
\setlength\rightmargin{#2}%
- \else
+ }{%
\setlength\leftmargin{#2}%
\setlength\rightmargin{#1}%
- \fi
+ }%
}\item[]\ignorespaces}%
-{\end{list}\ignorespacesafterend}
+{\end{list}\@ignoretrue}
\newrobustcmd\adjusttextwidth[1]{%
\setkeys[KV]{changelay}{#1}%
- \ifcpl@switchadjust
+ \ifbool{cpl@switchadjust}{%
\begin{cpl@adjustwidth*}{\cpl@leftmargin}{\cpl@rightmargin}%
\textcolor{\cpl@textcolor}{\cpl@content}%
\end{cpl@adjustwidth*}\relax
- \else
+ }{%
\begin{cpl@adjustwidth}{\cpl@leftmargin}{\cpl@rightmargin}%
\textcolor{\cpl@textcolor}{\cpl@content}%
\end{cpl@adjustwidth}\relax
- \fi
+ }
}
\newrobustcmd*\resetdefault{\setkeys[KV]{changelay}{reset=true}}