diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/changepage/chngpage.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/changepage/chngpage.sty | 132 |
1 files changed, 132 insertions, 0 deletions
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 |