summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/oberdiek/pdfcolparallel.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/oberdiek/pdfcolparallel.dtx')
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/pdfcolparallel.dtx497
1 files changed, 314 insertions, 183 deletions
diff --git a/Master/texmf-dist/source/latex/oberdiek/pdfcolparallel.dtx b/Master/texmf-dist/source/latex/oberdiek/pdfcolparallel.dtx
index 25c6a72da3a..7d5897c6e09 100644
--- a/Master/texmf-dist/source/latex/oberdiek/pdfcolparallel.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/pdfcolparallel.dtx
@@ -68,7 +68,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: pdfcolparallel 2007/09/09 v1.0 Color stacks support for parallel (HO)}
+\Msg{* Package: pdfcolparallel 2007/12/12 v1.1 Fixed parallel with color stacks support (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -137,7 +137,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{pdfcolparallel.drv}%
- [2007/09/09 v1.0 Color stacks support for parallel (HO)]%
+ [2007/12/12 v1.1 Fixed parallel with color stacks support (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2007/11/11]
\begin{document}
@@ -146,7 +146,7 @@ and the derived files
%</driver>
% \fi
%
-% \CheckSum{582}
+% \CheckSum{714}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -167,15 +167,15 @@ and the derived files
% \GetFileInfo{pdfcolparallel.drv}
%
% \title{The \xpackage{pdfcolparallel} package}
-% \date{2007/09/09 v1.0}
+% \date{2007/12/12 v1.1}
% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
%
% \maketitle
%
% \begin{abstract}
-% Since version 1.40 \pdfTeX\ supports several color stacks.
-% This package uses them to fix color problems in
-% package \xpackage{parallel}.
+% This packages fixes bugs in \xpackage{parallel} and
+% improves color support by using several color stacks
+% that are provided by \pdfTeX\ since version 1.40.
% \end{abstract}
%
% \tableofcontents
@@ -186,9 +186,10 @@ and the derived files
% |\usepackage{pdfcolparallel}|
% \end{quote}
% The package \xpackage{pdfcolparallel} loads package \xpackage{parallel}
-% \cite{parallel}. If color stacks are available then the
-% macros of \xpackage{parallel} are patched to add support
-% for color stacks.
+% \cite{parallel} and redefines some macros to fix bugs.
+%
+% If color stacks are available then package \xpackage{parallel}
+% is further patched to support them.
%
% \subsection{Future}
%
@@ -207,12 +208,10 @@ and the derived files
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pdfcolparallel}%
- [2007/09/09 v1.0 Color stacks support for parallel (HO)]%
+ [2007/12/12 v1.1 Fixed parallel with color stacks support (HO)]%
% \end{macrocode}
%
-% \subsection{Load packages}
-%
-% \subsubsection{Package \xpackage{parallel}}
+% \subsection{Load and fix package \xpackage{parallel}}
%
% Package \xpackage{parallel} is loaded. Before options of package
% \xpackage{pdfcolparallel} are passed to package \xpackage{parallel}.
@@ -224,52 +223,52 @@ and the derived files
\RequirePackage{parallel}[2003/04/13]
% \end{macrocode}
%
-% \subsubsection{Package \xpackage{pdfcol}}
-%
-% \begin{macrocode}
-\RequirePackage{pdfcol}[2007/09/09]
-\ifpdfcolAvailable
-\else
- \PackageInfo{pdfcolparallel}{%
- Loading aborted, because color stacks are not available%
- }%
- \expandafter\endinput
-\fi
-% \end{macrocode}
-%
-% \subsubsection{Package \xpackage{infwarerr}}
-%
% \begin{macrocode}
\RequirePackage{infwarerr}[2007/09/09]
% \end{macrocode}
%
-% \subsection{Color stack macros}
-%
+% \begin{macro}{\pcp@ColorPatch}
% \begin{macrocode}
-\pdfcolInitStack{pcp@Left}
-\pdfcolInitStack{pcp@Right}
-% \end{macrocode}
-% \begin{macro}{\pcp@SwitchStack}
-% \begin{macrocode}
-\def\pcp@SwitchStack#1{%
- \pdfcolSwitchStack{pcp@#1}%
-}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname currentgrouplevel\endcsname\relax
+ \def\pcp@ColorPatch{}%
+\else
+ \def\pcp@ColorPatch{%
+ \@ifundefined{set@color}{%
+ \gdef\pcp@ColorPatch{}%
+ }{%
+ \gdef\pcp@ColorPatch{%
+ \gdef\pcp@ColorResets{}%
+ \bgroup
+ \aftergroup\pcp@ColorResets
+ \aftergroup\egroup
+ \let\pcp@OrgSetColor\set@color
+ \let\set@color\pcp@SetColor
+ \edef\pcp@GroupLevel{\the\currentgrouplevel}%
+ }%
+ }%
+ \pcp@ColorPatch
+ }%
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\pcp@SetCurrent}
+% \begin{macro}{\pcp@SetColor}
% \begin{macrocode}
-\def\pcp@SetCurrent#1{%
- \ifx\\#1\\%
- \pdfcolSetCurrent{}%
- \else
- \pdfcolSetCurrent{pcp@#1}%
- \fi
-}
+ \def\pcp@SetColor{%
+ \ifnum\pcp@GroupLevel=\currentgrouplevel
+ \let\pcp@OrgAfterGroup\aftergroup
+ \def\aftergroup{%
+ \g@addto@macro\pcp@ColorResets
+ }%
+ \pcp@OrgSetColor
+ \let\aftergroup\pcp@OrgAfterGroup
+ \else
+ \pcp@OrgSetColor
+ \fi
+ }%
+\fi
% \end{macrocode}
% \end{macro}
%
-% \subsection{Redefinitions}
-%
% \begin{macro}{\pcp@CmdCheckRedef}
% \begin{macrocode}
\def\pcp@CmdCheckRedef#1{%
@@ -296,6 +295,13 @@ and the derived files
% \end{macrocode}
% \end{macro}
%
+% \begin{macrocode}
+\def\pcp@SwitchStack#1#2{}
+% \end{macrocode}
+% \begin{macrocode}
+\def\pcp@SetCurrent#1{}
+% \end{macrocode}
+%
% \begin{macro}{\ParallelLText}
% \begin{macrocode}
\pcp@CmdCheckRedef\ParallelLText{%
@@ -314,14 +320,17 @@ and the derived files
}{%
\everypar{}%
\@restorepar
+ \@nobreakfalse
\begingroup
\hbadness=3000 %
\let\footnote=\ParallelLFootnote
\ParallelWhichBox=0 %
\global\setbox\ParallelLBox=\vbox\bgroup
\hsize=\ParallelLWidth
- \pcp@SwitchStack{Left}%
+ \linewidth=\ParallelLWidth
+ \pcp@SwitchStack{Left}\ParallelLBox
\aftergroup\ParallelAfterText
+ \pcp@ColorPatch
\begingroup
\afterassignment\ParallelCheckOpenBrace
\let\x=%
@@ -351,6 +360,7 @@ and the derived files
}{%
\everypar{}%
\@restorepar
+ \@nobreakfalse
\begingroup
\hbadness=3000 %
\ifnum\ParallelFNMode=\@ne
@@ -361,8 +371,10 @@ and the derived files
\ParallelWhichBox=\@ne
\global\setbox\ParallelRBox=\vbox\bgroup
\hsize=\ParallelRWidth
- \pcp@SwitchStack{Right}%
+ \linewidth=\ParallelRWidth
+ \pcp@SwitchStack{Right}\ParallelRBox
\aftergroup\ParallelAfterText
+ \pcp@ColorPatch
\begingroup
\afterassignment\ParallelCheckOpenBrace
\let\x=%
@@ -370,6 +382,204 @@ and the derived files
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\ParallelParTwoPages}
+% \begin{macrocode}
+\pcp@CmdCheckRedef\ParallelParTwoPages{%
+ \ifnum\ParallelBoolVar=\@ne
+ \par
+ \begingroup
+ \global\ParallelWhichBox=\@ne
+ \newpage
+ \vbadness=10000 %
+ \vfuzz=3ex %
+ \splittopskip=\z@skip
+ \loop%
+ \ifnum\ParallelBoolVar=\@ne%
+ \ifnum\ParallelWhichBox=\@ne
+ \ifvoid\ParallelLBox
+ \mbox{} %
+ \newpage
+ \else
+ \global\ParallelWhichBox=\z@
+ \fi
+ \else
+ \ifvoid\ParallelRBox
+ \mbox{} %
+ \newpage
+ \else
+ \global\ParallelWhichBox=\@ne
+ \fi
+ \fi
+ \ifnum\ParallelWhichBox=\z@
+ \ifodd\thepage
+ \mbox{} %
+ \newpage
+ \fi
+ \hbox to\textwidth{%
+ \vbox{\vsplit\ParallelLBox to.98\textheight}%
+ }%
+ \else
+ \ifodd\thepage\relax
+ \else
+ \mbox{} %
+ \newpage
+ \fi
+ \hbox to\textwidth{%
+ \vbox{\vsplit\ParallelRBox to.98\textheight}%
+ }%
+ \fi
+ \vspace*{\fill}%
+ \newpage
+ \fi
+ \ifvoid\ParallelLBox
+ \ifvoid\ParallelRBox
+ \global\ParallelBoolVar=\z@
+ \fi
+ \fi
+ \ifnum\ParallelBoolVar=\@ne
+ \repeat
+ \par
+ \endgroup
+ \fi
+}{%
+% \end{macrocode}
+% Additional fixes:
+% \begin{itemize}
+% \item Unnecessary white space removed.
+% \item |\ifodd\thepage| changed to |\ifodd\value{page}|.
+% \end{itemize}
+% \begin{macrocode}
+ \ifnum\ParallelBoolVar=\@ne
+ \par
+ \begingroup
+ \global\ParallelWhichBox=\@ne
+ \newpage
+ \vbadness=10000 %
+ \vfuzz=3ex %
+ \splittopskip=\z@skip
+ \loop%
+ \ifnum\ParallelBoolVar=\@ne%
+ \ifnum\ParallelWhichBox=\@ne
+ \ifvoid\ParallelLBox
+ \mbox{}%
+ \newpage
+ \else
+ \global\ParallelWhichBox=\z@
+ \fi
+ \else
+ \ifvoid\ParallelRBox
+ \null
+ \newpage
+ \else
+ \global\ParallelWhichBox=\@ne
+ \fi
+ \fi
+ \ifnum\ParallelWhichBox=\z@
+ \ifodd\value{page}%
+ \null
+ \newpage
+ \fi
+ \hbox to\textwidth{%
+ \pcp@SetCurrent{Left}%
+ \setbox\z@=\vsplit\ParallelLBox to.98\textheight
+ \vbox to.98\textheight{%
+ \@texttop
+ \unvbox\z@
+ \@textbottom
+ }%
+ }%
+ \else
+ \ifodd\value{page}%
+ \else
+ \mbox{}%
+ \newpage
+ \fi
+ \hbox to\textwidth{%
+ \pcp@SetCurrent{Right}%
+ \setbox\z@=\vsplit\ParallelRBox to.98\textheight
+ \vbox to.98\textheight{%
+ \@texttop
+ \unvbox\z@
+ \@textbottom
+ }%
+ }%
+ \fi
+ \vspace*{\fill}%
+ \newpage
+ \fi
+ \ifvoid\ParallelLBox
+ \ifvoid\ParallelRBox
+ \global\ParallelBoolVar=\z@
+ \fi
+ \fi
+ \ifnum\ParallelBoolVar=\@ne
+ \repeat
+ \par
+ \endgroup
+ \pcp@SetCurrent{}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Color stack support}
+%
+% \begin{macrocode}
+\RequirePackage{pdfcol}[2007/12/12]
+\ifpdfcolAvailable
+\else
+ \PackageInfo{pdfcolparallel}{%
+ Loading aborted, because color stacks are not available%
+ }%
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\pdfcolInitStack{pcp@Left}
+\pdfcolInitStack{pcp@Right}
+% \end{macrocode}
+% \begin{macro}{\pcp@Box}
+% \begin{macrocode}
+\newbox\pcp@Box
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\pcp@SwitchStack}
+% \begin{macrocode}
+\def\pcp@SwitchStack#1#2{%
+ \pdfcolSwitchStack{pcp@#1}%
+ \global\setbox\pcp@Box=\vbox to 0pt{%
+ \pdfcolSetCurrentColor
+ }%
+ \aftergroup\pcp@FixBox
+ \aftergroup#2%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\pcp@FixBox}
+% \begin{macrocode}
+\def\pcp@FixBox#1{%
+ \global\setbox#1=\vbox{%
+ \unvbox\pcp@Box
+ \unvbox#1%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\pcp@SetCurrent}
+% \begin{macrocode}
+\def\pcp@SetCurrent#1{%
+ \ifx\\#1\\%
+ \pdfcolSetCurrent{}%
+ \else
+ \pdfcolSetCurrent{pcp@#1}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Redefinitions}
+%
% \begin{macro}{\ParallelParOnePage}
% \begin{macrocode}
\pcp@CmdCheckRedef\ParallelParOnePage{%
@@ -497,136 +707,6 @@ and the derived files
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\ParallelParTwoPages}
-% \begin{macrocode}
-\pcp@CmdCheckRedef\ParallelParTwoPages{%
- \ifnum\ParallelBoolVar=\@ne
- \par
- \begingroup
- \global\ParallelWhichBox=\@ne
- \newpage
- \vbadness=10000 %
- \vfuzz=3ex %
- \splittopskip=\z@skip
- \loop%
- \ifnum\ParallelBoolVar=\@ne%
- \ifnum\ParallelWhichBox=\@ne
- \ifvoid\ParallelLBox
- \mbox{} %
- \newpage
- \else
- \global\ParallelWhichBox=\z@
- \fi
- \else
- \ifvoid\ParallelRBox
- \mbox{} %
- \newpage
- \else
- \global\ParallelWhichBox=\@ne
- \fi
- \fi
- \ifnum\ParallelWhichBox=\z@
- \ifodd\thepage
- \mbox{} %
- \newpage
- \fi
- \hbox to\textwidth{%
- \vbox{\vsplit\ParallelLBox to.98\textheight}%
- }%
- \else
- \ifodd\thepage\relax
- \else
- \mbox{} %
- \newpage
- \fi
- \hbox to\textwidth{%
- \vbox{\vsplit\ParallelRBox to.98\textheight}%
- }%
- \fi
- \vspace*{\fill}%
- \newpage
- \fi
- \ifvoid\ParallelLBox
- \ifvoid\ParallelRBox
- \global\ParallelBoolVar=\z@
- \fi
- \fi
- \ifnum\ParallelBoolVar=\@ne
- \repeat
- \par
- \endgroup
- \fi
-}{%
-% \end{macrocode}
-% Additional fixes:
-% \begin{itemize}
-% \item Unnecessary white space removed.
-% \item |\ifodd\thepage| changed to |\ifodd\value{page}|.
-% \end{itemize}
-% \begin{macrocode}
- \ifnum\ParallelBoolVar=\@ne
- \par
- \begingroup
- \global\ParallelWhichBox=\@ne
- \newpage
- \vbadness=10000 %
- \vfuzz=3ex %
- \splittopskip=\z@skip
- \loop%
- \ifnum\ParallelBoolVar=\@ne%
- \ifnum\ParallelWhichBox=\@ne
- \ifvoid\ParallelLBox
- \mbox{}%
- \newpage
- \else
- \global\ParallelWhichBox=\z@
- \fi
- \else
- \ifvoid\ParallelRBox
- \mbox{}%
- \newpage
- \else
- \global\ParallelWhichBox=\@ne
- \fi
- \fi
- \ifnum\ParallelWhichBox=\z@
- \ifodd\value{page}%
- \mbox{}%
- \newpage
- \fi
- \hbox to\textwidth{%
- \pcp@SetCurrent{Left}%
- \vbox{\vsplit\ParallelLBox to.98\textheight}%
- }%
- \else
- \ifodd\value{page}%
- \else
- \mbox{}%
- \newpage
- \fi
- \hbox to\textwidth{%
- \pcp@SetCurrent{Right}%
- \vbox{\vsplit\ParallelRBox to.98\textheight}%
- }%
- \fi
- \vspace*{\fill}%
- \newpage
- \fi
- \ifvoid\ParallelLBox
- \ifvoid\ParallelRBox
- \global\ParallelBoolVar=\z@
- \fi
- \fi
- \ifnum\ParallelBoolVar=\@ne
- \repeat
- \par
- \endgroup
- \pcp@SetCurrent{}%
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macrocode}
%</package>
% \end{macrocode}
@@ -646,7 +726,7 @@ and the derived files
}
\documentclass{article}
\usepackage{xcolor}
-\usepackage{pdfcolparallel}[2007/09/09]
+\usepackage{pdfcolparallel}[2007/12/12]
\begin{document}
\color{green}%
@@ -664,8 +744,37 @@ and the derived files
Ein Absatz, der sich ueber zwei Zeilen erstrecken soll.%
}%
}%
+ \ParallelPar
+ \ParallelLText{%
+ Default %
+ \color{red}%
+ Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. %
+ Ein Absatz, der sich ueber zwei Zeilen erstrecken soll.%
+ }%
+ \ParallelRText{%
+ Default %
+ \color{blue}%
+ Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. %
+ Ein Absatz, der sich ueber zwei Zeilen erstrecken soll.%
+ }%
+ \ParallelPar
+ \ParallelLText{%
+ \begin{enumerate}%
+ \item left text, left text, left text, left text, %
+ left text, left text, left text, left text,%
+ \item left text, left text, left text, left text, %
+ left text, left text, left text, left text.%
+ \end{enumerate}%
+ }%
+ \ParallelRText{%
+ \begin{enumerate}%
+ \item right text, right text, right text, right text, %
+ right text, right text, right text, right text.%
+ \item right text, right text, right text, right text, %
+ right text, right text, right text, right text.%
+ \end{enumerate}%
+ }%
\end{Parallel}%
- Green%
\begin{Parallel}[p]{\textwidth}{\textwidth}%
\ParallelLText{%
\textcolor{red}{%
@@ -673,6 +782,8 @@ and the derived files
Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. %
Foo bar bla bla bla.%
}%
+ \par
+ Und noch ein Absatz.%
}%
\ParallelRText{%
\textcolor{blue}{%
@@ -682,6 +793,14 @@ and the derived files
}%
}%
\end{Parallel}%
+ \begin{Parallel}[p]{\textwidth}{\textwidth}%
+ \ParallelLText{%
+ \rule{1pt}{.98\textheight}\Huge g%
+ }%
+ \ParallelRText{%
+ \rule{1pt}{.98\textheight}y%
+ }%
+ \end{Parallel}%
Green%
\end{document}
%</test1>
@@ -888,6 +1007,18 @@ and the derived files
% \item
% First version.
% \end{Version}
+% \begin{Version}{2007/12/12 v1.1}
+% \item
+% Adds patch for setting \cs{linewidth} to fix bug
+% in package \xpackage{parallel}.
+% \item
+% Package \xpackage{parallel} is also fixed if color
+% stacks are not available.
+% \item
+% Bug fix, switched stacks now initialized with current color.
+% \item
+% Fix for package \xpackage{parallel}: \cs{raggedbottom} is respected.
+% \end{Version}
% \end{History}
%
% \PrintIndex