%%
%% This is file `commedit.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% commedit.dtx  (with options: `style')
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from commedit.sty.
%% 
%% For distribution of the original source see the terms
%% for copying and modification in the file commedit.dtx.
%% 
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% Copyright 2018-2019, Boris Veytsman <borisv@lk.net>
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3 of this license or (at your option) any
%% later version.
%% The latest version of the license is in
%%    http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2003/06/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Boris Veytsman
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{commedit}
[2019/01/21 v1.02 Commented editions with LaTeX]
\newif\ifCommentedEdition
\CommentedEditionfalse
\newwrite\@commeditout
\AtEndDocument{\ifCommentedEdition\else
  \cleardoublepage
  \immediate\write\@commeditout{\string\end{commentsBox}}%
  \immediate\write\@commeditout{\string\end{document}}%
  \closeout\@commeditout
\fi}
\begingroup%
\@tempcnta=1
\loop
  \catcode\@tempcnta=12  %
  \advance\@tempcnta\@ne %
\ifnum\@tempcnta<32      %
\repeat                  %
\catcode`\*=11 %
\catcode`\^^M\active%
\catcode`\^^L\active\let^^L\relax%
\catcode`\^^I\active%
\gdef\@write@comments{%
  \let\do\@makeother\dospecials%
  \count@ 128\relax%
  \loop%
    \catcode\count@ 11\relax%
    \advance\count@ \@ne%
    \ifnum\count@<\@cclvi%
  \repeat%
  \edef\E{\@backslashchar end\string{\@currenvir\string}}%
  \edef\reserved@b{%
    \def\noexpand\reserved@b%
         ####1\E####2\E####3\relax}%
  \reserved@b{%
    \ifx\relax##3\relax%
      \write\@commeditout{##1}%
    \else%
      \edef^^M{\noexpand\end{\@currenvir}}%
      \ifx\relax##1\relax%
      \else%
          \@latex@warning{Writing text `##1' before %
             \string\end{\@currenvir}\MessageBreak as last line of \@currenvir}%
        \write\@commeditout{##1}%
      \fi%
      \ifx\relax##2\relax%
      \else%
         \@latex@warning{%
           Ignoring text `##2' after \string\end{\@currenvir}}%
      \fi%
    \fi%
    ^^M}%
  \catcode`\^^L\active%
  \let\L\@undefined%
  \def^^L{\@ifundefined L^^J^^J^^J}%
  \catcode`\^^I\active%
  \let\I\@undefined%
  \def^^I{\@ifundefined I\space\space}%
  \catcode`\^^M\active%
  \edef^^M##1^^M{%
    \noexpand\reserved@b##1\E\E\relax}}%
\endgroup%
\begingroup%
\@tempcnta=1
\loop
  \catcode\@tempcnta=12  %
  \advance\@tempcnta\@ne %
\ifnum\@tempcnta<32      %
\repeat                  %
\catcode`\*=11 %
\catcode`\^^M\active%
\catcode`\^^L\active\let^^L\relax%
\catcode`\^^I\active%
\gdef\immediate@write@comments{%
  \let\do\@makeother\dospecials%
  \count@ 128\relax%
  \loop%
    \catcode\count@ 11\relax%
    \advance\count@ \@ne%
    \ifnum\count@<\@cclvi%
  \repeat%
  \edef\E{\@backslashchar end\string{\@currenvir\string}}%
  \edef\reserved@b{%
    \def\noexpand\reserved@b%
         ####1\E####2\E####3\relax}%
  \reserved@b{%
    \ifx\relax##3\relax%
      \immediate\write\@commeditout{##1}%
    \else%
      \edef^^M{\noexpand\end{\@currenvir}}%
      \ifx\relax##1\relax%
      \else%
          \@latex@warning{Writing text `##1' before %
             \string\end{\@currenvir}\MessageBreak as last line of \@currenvir}%
        \immediate\write\@commeditout{##1}%
      \fi%
      \ifx\relax##2\relax%
      \else%
         \@latex@warning{%
           Ignoring text `##2' after \string\end{\@currenvir}}%
      \fi%
    \fi%
    ^^M}%
  \catcode`\^^L\active%
  \let\L\@undefined%
  \def^^L{\@ifundefined L^^J^^J^^J}%
  \catcode`\^^I\active%
  \let\I\@undefined%
  \def^^I{\@ifundefined I\space\space}%
  \catcode`\^^M\active%
  \edef^^M##1^^M{%
    \noexpand\reserved@b##1\E\E\relax}}%
\endgroup%
\def\commeditPreamble#1{\immediate\closeout\@commeditout
  \immediate\openout\@commeditout=#1
  \immediate@write@comments}
\def\endcommeditPreamble{%
  \immediate\write\@commeditout{\string\usepackage{commedit}}%
  \immediate\write\@commeditout{\string\CommentedEditiontrue}%
  \immediate\write\@commeditout{\string\def\string\BaseEditionName{\jobname}}%
  \immediate\write\@commeditout{\string\usepackage{graphicx}}%
  \immediate\write\@commeditout{\string\usepackage[strict]{changepage}}%
  \immediate\write\@commeditout{\string\begin{document}}%
  \immediate\write\@commeditout{\string\begin{commentsBox}}}
\def\commeditComments{\@write@comments}
\def\endcommeditComments{%
  \write\@commeditout{\string\par}}
\def\commeditText{\clearpage
  \immediate\write\@commeditout{\string\end{commentsBox}}%
\immediate@write@comments}
\def\endcommeditText{%
  \immediate\write\@commeditout{\string\par}%
   \immediate\write\@commeditout{\string\begin{commentsBox}}}
\newcount\@commedit@base@pageno
\@commedit@base@pageno=1\relax
\RequirePackage{everyshi}
\newcommand\@EveryShipoutEnd@Hook{\ifCommentedEdition\else
  \immediate\write\@commeditout{\string\end{commentsBox}}%
  \immediate\write\@commeditout{\string\typesetComments{\the\@commedit@base@pageno}}%
  \immediate\write\@commeditout{\string\begin{commentsBox}}%
    \global\advance\@commedit@base@pageno by 1\relax
\fi}
\renewcommand{\@EveryShipout@Output}{%
   \@EveryShipout@Hook%
   \@EveryShipout@AtNextHook%
      \gdef\@EveryShipout@AtNextHook{}%
   \@EveryShipout@Org@Shipout\box\@cclv\relax
   \@EveryShipoutEnd@Hook%
   }
\RequirePackage{etoolbox}
\AtEndPreamble{\ifCommentedEdition
    \begingroup\@floatplacement\@dblfloatplacement
    \makeatletter\let\@writefile\@gobbletwo
    \global \let \@multiplelabels \relax
    \@input{\BaseEditionName.aux}\endgroup
    \fi}
\newlength\commentscolskip
\setlength\commentscolskip{6mm}
\newlength\commentscolwidth
\setlength\commentscolwidth{55.5mm}
\newlength\commentscolTheight
\setlength\commentscolTheight{256mm}
\newlength\commentscolSheight
\setlength\commentscolSheight{58mm}
\newlength\basepageboxwidth
\setlength\basepageboxwidth{153mm}
\def\basepageargs#1{\gdef\@basepageargs{#1}}
\basepageargs{}
\def\commentsOddPageSetup#1#2#3{%
  \gdef\@commeditOddLeftCols{#1}%
  \gdef\@commeditOddMiddleCols{#2}%
  \gdef\@commeditOddRightCols{#3}}
\commentsOddPageSetup{0}{2}{1}
\def\commentsEvenPageSetup#1#2#3{%
  \gdef\@commeditEvenLeftCols{#1}%
  \gdef\@commeditEvenMiddleCols{#2}%
  \gdef\@commeditEvenRightCols{#3}}
\commentsEvenPageSetup{1}{2}{0}
\def\commentsContinuationPageSetup#1{%
  \gdef\@commeditContinuationCols{#1}}
\commentsContinuationPageSetup{3}
\let\@commentstexttop\relax
\let\@commentstextbottom\relax
\def\commentsraggedbottom{%
  \def\@commentstextbottom{\vskip \z@ \@plus.0001fil}%
  \let\@commentstexttop\relax}
\commentsraggedbottom
\def\commentsflushbottom{%
  \let\@commentstextbottom\relax
  \let\@commentstexttop\relax}
\newbox\@tempboxb
\def\commentsHook#1{\gdef\@commentsHook{#1}}
\commentsHook{}
\newbox\@commedit@box
\newbox\@commentsfootins
\long\def\@commentsfootnotetext#1{%
  \global\setbox\@commentsfootins\vbox{%
    \unvbox\@commentsfootins
    \reset@font\footnotesize
    \hsize\commentscolwidth
    \@parboxrestore
    \protected@edef\@currentlabel{%
      \csname p@footnote\endcsname\@thefnmark
    }%
    \color@begingroup
    \@makefntext{%
      \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
    \color@endgroup}}
\def\comments@xfloat#1[#2]{%
  \@nodocument
  \def \@captype {#1}%
  \setbox\@tempboxb
    \color@vbox
      \normalcolor
      \vbox \bgroup
        \hsize\columnwidth
        \@parboxrestore
        \@floatboxreset}
\def\comments@end@float{%
  \@endfloatbox
  \vskip \intextsep
  \box\@tempboxb
  \penalty\interlinepenalty
  \vskip\intextsep}
\def\commentsBox{\hsize=\commentscolwidth\global\setbox\@commedit@box=\vbox\bgroup
  \let\@footnotetext=\@commentsfootnotetext
  \let\@dblfloat\@float
  \let\@xfloat=\comments@xfloat
  \let\end@float\comments@end@float
  \let\end@dblfloat\comments@end@float
  \let\columnwidth=\commentscolwidth
  \normalsize\normalfont
  \@commentsHook
  \unvbox\@commedit@box}
\def\endcommentsBox{\egroup}
\newbox\@commedit@pagebox
\def\typesetComments#1{\clearpage\bgroup
  \let\columnwidth=\commentscolwidth
  \setbox\@commedit@pagebox=\hbox{}\splittopskip=\z@\topskip=\z@
  \ifvoid\@commentsfootins\else
  \setbox\@commedit@box=\vbox{\unvbox\@commedit@box
    \vskip \skip\footins
    \color@begingroup
    \normalcolor
    \footnoterule
    \unvbox \@commentsfootins
    \color@endgroup}%
  \fi
  \setbox\@commedit@box=\vbox{\unvbox\@commedit@box\vfill}%
  \checkoddpage\ifoddpage
    \global\def\@commeditLeftCols{\@commeditOddLeftCols}%
    \global\def\@commeditMiddleCols{\@commeditOddMiddleCols}%
    \global\def\@commeditRightCols{\@commeditOddRightCols}%
  \else
    \global\def\@commeditLeftCols{\@commeditEvenLeftCols}%
    \global\def\@commeditMiddleCols{\@commeditEvenMiddleCols}%
    \global\def\@commeditRightCols{\@commeditEvenRightCols}%
  \fi
  \ifnum\@commeditLeftCols>0\relax
      \@tempcnta=\@commeditLeftCols\relax
      \loop
        \setbox\@tempboxb=\vsplit\@commedit@box to
        \commentscolTheight\relax
        \setbox\@tempboxb=\vbox to \commentscolTheight{%
          \@commentstexttop
          \unvbox\@tempboxb
          \@commentstextbottom}%
        \setbox\@commedit@pagebox=\hbox{\noindent\box\@commedit@pagebox
          \box\@tempboxb
          \hskip\commentscolskip\relax}%
        \global\setbox\@commedit@box=\box\@commedit@box
       \advance\@tempcnta by -1\relax
       \ifnum\@tempcnta>0\repeat
  \fi
  \setbox\@tempboxa=\hbox{}%
  \ifnum\@commeditMiddleCols>0\relax
      \@tempcnta=\@commeditMiddleCols\relax
      \loop
        \setbox\@tempboxb=\vsplit\@commedit@box to
        \commentscolSheight\relax
        \setbox\@tempboxb=\vbox to \commentscolSheight{%
          \@commentstexttop
          \unvbox\@tempboxb
          \@commentstextbottom}%
        \setbox\@tempboxa=\hbox{\noindent\box\@tempboxa
          \box\@tempboxb}%
       \global\setbox\@commedit@box=\box\@commedit@box
       \advance\@tempcnta by -1\relax
       \ifnum\@tempcnta>0\relax
          \setbox\@tempboxa=\hbox{\noindent\box\@tempboxa
            \hskip\commentscolskip\relax}%
      \repeat
  \fi
  \ifx\@basepageargs\@empty\relax
    \def\@commedit@args{page=#1}%
  \else
      \edef\@commedit@args{page=#1,\@basepageargs}%
  \fi
  \hsize=\basepageboxwidth
  \setbox\@tempboxa=\vbox to \commentscolTheight \bgroup
     \hbox{\fbox{\noindent\expandafter\includegraphics\expandafter[\@commedit@args]{\BaseEditionName.pdf}}}%
     \vfill\box\@tempboxa\egroup
  \setbox\@commedit@pagebox=\hbox{\box\@commedit@pagebox
    \box\@tempboxa}%
  \ifnum\@commeditRightCols>0\relax
      \@tempcnta=\@commeditRightCols\relax
      \loop
        \setbox\@tempboxb=\vsplit\@commedit@box to
        \commentscolTheight\relax
        \setbox\@tempboxb=\vbox to \commentscolTheight{%
          \@commentstexttop
          \unvbox\@tempboxb
          \@commentstextbottom}%
        \setbox\@commedit@pagebox=\hbox{\noindent\box\@commedit@pagebox
          \hskip\commentscolskip\relax
          \box\@tempboxb}%
        \global\setbox\@commedit@box=\box\@commedit@box
       \advance\@tempcnta by -1\relax
       \ifnum\@tempcnta>0\repeat
  \fi
  \noindent\box\@commedit@pagebox\par
  \global\setbox\@commedit@box=\box\@commedit@box
  \egroup\vfill\clearpage
  \ifdim\ht\@commedit@box>\baselineskip
  \typesetContinuation\fi}
\def\typesetContinuation{\clearpage\bgroup
  \setbox\@commedit@pagebox=\hbox{}\splittopskip=\z@\relax
  \@tempcnta=\@commeditContinuationCols\relax
  \loop
    \setbox\@tempboxb=\vsplit\@commedit@box to
    \commentscolTheight\relax
    \setbox\@tempboxb=\vbox to \commentscolTheight{%
      \@commentstexttop
      \unvbox\@tempboxb
      \@commentstextbottom}%
    \setbox\@commedit@pagebox=\hbox{\noindent\box\@commedit@pagebox
      \box\@tempboxb}%
     \global\setbox\@commedit@box=\box\@commedit@box
     \advance\@tempcnta by -1\relax
     \ifnum\@tempcnta>0\relax
        \setbox\@commedit@pagebox=\hbox{\noindent\box\@commedit@pagebox
          \hskip\commentscolskip\relax}%
   \repeat
  \noindent\box\@commedit@pagebox\par
  \global\setbox\@commedit@box=\box\@commedit@box
  \egroup\vfill\clearpage
  \ifdim\ht\@commedit@box>\baselineskip
  \typesetContinuation\fi}
\endinput
%%
%% End of file `commedit.sty'.
