summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/changepage/chngpage.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/changepage/chngpage.sty')
-rw-r--r--Master/texmf-dist/tex/latex/changepage/chngpage.sty132
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