%PDF- %PDF-
| Direktori : /proc/self/root/data/old/usr/share/texlive/texmf-dist/tex/latex/changepage/ |
| Current File : //proc/self/root/data/old/usr/share/texlive/texmf-dist/tex/latex/changepage/chngpage.sty |
%% 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