summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:06:51 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:06:51 +0000
commitcb337e08b47c579a5a770dfaf9835017f9e8c2c3 (patch)
tree2522ea200c733c331560bcd82bbdacf32e6eb38f
parentd0c6ac97b617833f87a1261c409460aa5963a91b (diff)
sidecap
git-svn-id: svn://tug.org/texlive/trunk@1320 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/tex/latex/sidecap/sidecap.sty337
1 files changed, 337 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/sidecap/sidecap.sty b/Master/texmf-dist/tex/latex/sidecap/sidecap.sty
new file mode 100644
index 00000000000..880c1aab5e1
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/sidecap/sidecap.sty
@@ -0,0 +1,337 @@
+%%
+%% This is file `sidecap.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sidecap.dtx (with options: `package')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from sidecap.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file sidecap.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.)
+%% File: sidecap.dtx
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{sidecap}
+ [2003/06/06 v1.6f SideCap Package (RN/HjG)]
+
+
+\RequirePackage{ifthen}
+
+\@ifdefinable{\SC@BOXWD}{\newdimen\SC@BOXWD}
+\@ifdefinable{\SC@CAPWD}{\newdimen\SC@CAPWD}
+\@ifdefinable{\SC@tempdima}{\newdimen\SC@tempdima}
+\@ifdefinable{\SC@tempdimb}{\newdimen\SC@tempdimb}
+\newcounter{SC@C} \newsavebox{\SC@BOX} \newcommand*{\SC@FLOAT}{}
+\newcommand*{\SC@IDENT}{SC@\number\value{SC@C}}
+\newcommand*\SC@label[1]{\gdef\SC@LABtext{#1}\ignorespaces}
+\newcommand*\SC@orig@caption{} \newcommand*\SC@orig@label{}
+\newcommand*\sidecaptionsep{} \newcommand*\SC@pageref{}
+\edef\sidecaptionsep{\the\marginparsep}
+\newcommand*\sidecaptionrelwidth{1.0}
+\newcommand*\sidecaptionvpos[2]{% 2002/08/31
+ \@namedef{SC@#1@vpos}{#2}%
+}
+
+\newboolean{SC@wide}
+\def\SC@widefalse{\global\let\ifSC@wide\iffalse}
+\def\SC@widetrue {\global\let\ifSC@wide\iftrue}
+
+ % Kann man auf dieses Laengenregister verzichten? Nein! (RN) <****>
+
+\newcommand*\SC@calcwidths[1]{%
+ \SC@tempdima#1\relax
+ \SC@BOXWD\wd\SC@BOX
+ \SC@CAPWD\SC@fraction\SC@BOXWD
+ \@tempdima\SC@BOXWD
+ \advance\@tempdima\SC@CAPWD
+ \advance\@tempdima\sidecaptionsep
+ \ifdim\@tempdima>\SC@tempdima
+ \advance\SC@CAPWD-\@tempdima
+ \advance\SC@CAPWD\SC@tempdima
+ \fi
+ \SC@tempdimb\@tempdima
+}
+
+\newcommand*{\isSC@WIDEi}[2]{\ifSC@wide#1\else#2\fi} %default: false
+\newcommand*{\isSC@WIDEii}[2]{\ifSC@wide#1\else#2\fi} %default: false
+
+
+\newcommand*\SC@justify{}
+\newcommand*\SC@justify@caption{}
+\newcommand*\SC@justify@body{}
+
+\newboolean{SC@origRagged} \setboolean{SC@origRagged}{false} %% ???
+\newcommand*{\SC@SaveCommands}{%
+ \let\SC@orig@caption=\caption \let\SC@orig@label=\label%
+}
+\SC@SaveCommands % necessary? or even wrong?
+\if@twoside
+ \newcommand*{\isSC@ODD}[2]{%
+ \ifthenelse{\isodd{\SC@pageref{\SC@IDENT}}}{#1}{#2}}
+\else
+ \newcommand*{\isSC@ODD}[2]{#1}%
+\fi
+\DeclareOption{innercaption}{%
+ \renewcommand*{\SC@FLOAT}[2]{%
+ \isSC@ODD{{#1}\hspace{\sidecaptionsep}{#2}} {{#2}\hspace{\sidecaptionsep}{#1}}}
+ \renewcommand*\SC@justify@caption{%
+ \isSC@ODD{\RaggedLeft}{\RaggedRight}}
+}
+
+\DeclareOption{outercaption}{%
+ \renewcommand*{\SC@FLOAT}[2]{%
+ \isSC@ODD{{#2}\hspace{\sidecaptionsep}{#1}} {{#1}\hspace{\sidecaptionsep}{#2}}}
+ \renewcommand*\SC@justify@caption{%
+ \isSC@ODD{\RaggedRight}{\RaggedLeft}}
+}
+
+\DeclareOption{rightcaption}{%
+ \renewcommand*{\SC@FLOAT}[2]{{#2}\hspace{\sidecaptionsep}{#1}}
+ \def\SC@justify@caption{\RaggedRight}%
+}
+
+\DeclareOption{leftcaption}{%
+ \renewcommand*{\SC@FLOAT}[2]{{#1}\hspace{\sidecaptionsep}{#2}}
+ \def\SC@justify@caption{\RaggedLeft}%
+}
+\DeclareOption{wide}{%
+ \renewcommand*{\isSC@WIDEi}[2]{\if@twocolumn #2\else #1\fi}% ???
+ \renewcommand*{\isSC@WIDEii}[2]{#1}}
+\DeclareOption{raggedright}{%
+ \def\SC@justify{\RaggedRight}}
+\DeclareOption{raggedleft}{%
+ \def\SC@justify{\RaggedLeft}}
+\DeclareOption{ragged}{%
+ \def\SC@justify{\SC@justify@caption}% \let ?
+}
+\DeclareOption{origragged}{\setboolean{SC@origRagged}{true}}
+\DeclareOption{margincaption}{%
+ \ds@outercaption\ds@outerbody\ds@wide
+ \let\ds@innercaption\@empty
+ \let\ds@leftcaption\@empty
+ \let\ds@rightcaption\@empty
+ \def\SC@calcwidths#1{%
+ \SC@tempdimb#1\relax
+ \SC@BOXWD\SC@tempdimb % *-form !!! ???
+ \advance\SC@BOXWD-\marginparwidth
+ \advance\SC@BOXWD-\marginparsep
+ \SC@CAPWD\marginparwidth
+ }%
+}
+\DeclareOption{innerbody}{%
+ \def\SC@justify@body{%
+ \isSC@ODD{\RaggedRight}{\RaggedLeft}}
+}
+
+\DeclareOption{outerbody}{%
+ \def\SC@justify@body{%
+ \isSC@ODD{\RaggedLeft}{\RaggedRight}}
+}
+
+\DeclareOption{centerbody}{%
+ \def\SC@justify@body{\Centering}
+}
+
+\DeclareOption{rightbody}{%
+ \def\SC@justify@body{\RaggedLeft}%
+}
+
+\DeclareOption{leftbody}{%
+ \def\SC@justify@body{\RaggedRight}%
+}
+\ExecuteOptions{outercaption}
+%%\InputIfFileExists{sidecap.cfg}{}{} % hier ? % 2002/06/14
+\ProcessOptions\relax
+\AtBeginDocument{%
+ \ifSC@origRagged\else
+ \@ifpackageloaded{ragged2e}{}%
+ {%
+ \IfFileExists{ragged2e.sty}{%
+ \RequirePackage[NewParameters]{ragged2e}}%
+ {%
+ \PackageWarningNoLine{sidecap}{%
+ Package `ragged2e' not found -- expect bad formatting}%
+ }%
+ }
+ \fi
+ \@ifundefined{RaggedRight}%
+ {%
+ \let\RaggedLeft\raggedleft
+ \let\RaggedRight\raggedright
+ \let\Centering\centering
+ }{}
+ \@ifpackageloaded{hyperref}%
+ {\let\SC@pageref=\hypergetpageref}%
+ {%
+ \@ifpackageloaded{babel}%
+ {\let\SC@pageref=\org@pageref}%
+ {\let\SC@pageref=\pageref}%
+ }
+}
+
+\@ifdefinable\SC@figure@vpos{\def\SC@figure@vpos{b}}
+\newenvironment{SCfigure}{\SC@float[\SC@figure@vpos]{figure}}{\endSC@float}
+\newenvironment{SCfigure*}{\SC@dblfloat[\SC@figure@vpos]{figure}}{\endSC@dblfloat}
+
+
+\@ifdefinable\SC@table@vpos{\def\SC@table@vpos{t}}
+\newenvironment{SCtable}{\SC@float[\SC@table@vpos]{table}}{\endSC@float}
+\newenvironment{SCtable*}{\SC@dblfloat[\SC@table@vpos]{table}}{\endSC@dblfloat}
+
+\newenvironment{wide}%
+{%
+ \@parboxrestore% 2002/06/14 -- SW-Arch.: wozu? 2002/08/24
+ \advance\linewidth\marginparwidth
+ \advance\linewidth\marginparsep
+ \ifx\label\SC@label
+ \SC@widetrue
+ \else
+ \begin{lrbox}\SC@BOX % \begin necessary: --> \@noitemerr
+ \minipage\linewidth
+ \fi
+}%
+{%
+ \ifx\label\SC@label
+\typeout{WIDE: inside SCfloat}%
+ %\renewcommand*{\isSC@WIDEi}[2]{\if@twocolumn ##2\else ##1\fi}%
+ %\renewcommand*{\isSC@WIDEii}[2]{##1}%
+ %\let\isSC@WIDE\isSC@WIDEi
+ \else
+\typeout{WIDE: outside SCfloat}%
+ \endminipage
+ \end{lrbox}% \end necessary: --> \@noitemerr
+ \global\advance\c@SC@C\@ne
+ \SC@orig@label{\SC@IDENT}% nicht \ref... !!!
+ \trivlist \item\relax
+ \isSC@ODD{\def\SC@hpos{l}}{\def\SC@hpos{r}}%
+\typeout{WIDE: \string\linewidth=\the\linewidth}%
+ \noindent\makebox[\textwidth][\SC@hpos]{\copy\SC@BOX}% \usebox{\SC@BOX}
+ \endtrivlist
+ \fi
+}
+
+\def\SC@float{\SC@SaveCommands\@ifnextchar[\SC@xfloat{\SC@xfloat[c]}}
+\def\SC@xfloat[#1]#2{\@ifnextchar[%
+ {\SC@yfloat{#1}{#2}}%
+ {\SC@zfloat{#1}{#2}{\sidecaptionrelwidth}[\@nameuse{fps@#2}]}}
+\def\SC@yfloat#1#2[#3]{\@ifnextchar[%
+ {\SC@zfloat{#1}{#2}{#3}}%
+ {\SC@zfloat{#1}{#2}{#3}[\@nameuse{fps@#2}]}}
+\def\SC@zfloat#1#2#3[#4]{%
+ \def\SC@vpos{#1}%
+ \expandafter\edef\csname fps@#2\endcsname{#4}%
+ \def\SC@captype{#2}%
+ \ifx#3\@empty\def\SC@fraction{1}\else\def\SC@fraction{#3}\fi%
+ \let\SC@CAPtext\@empty \let\SC@OPTCAPtext\@empty \let\SC@LABtext\@empty%
+ \renewcommand\caption[2][]{\gdef\SC@OPTCAPtext{##1}%
+ \gdef\SC@CAPtext{##2}\ignorespaces}% \SC@justify
+ \let\label=\SC@label
+ \@namedef{fnum@#2}{\mbox{\@nameuse{#2name}~\@nameuse{the#2}}}% caption2 ?
+ \SC@widefalse
+ \begin{lrbox}\SC@BOX % \begin necessary: --> \@noitemerr
+ %%% \strut
+}%
+
+\def\SC@dblfloat{%
+ \SC@SaveCommands%
+ \if@twocolumn\let\reserved@a\SC@dbflt\else\let\reserved@a\SC@float\fi
+ \reserved@a}
+\def\SC@dbflt{\SC@float}
+\def\endSC@float{%
+ %%% \strut
+ \end{lrbox}% \end necessary: --> \@noitemerr
+ \let\isSC@WIDE\isSC@WIDEi%
+ \def\@FLOAT{\@float}\def\end@FLOAT{\end@float}%
+ \isSC@WIDE%
+ {\@tempdima\textwidth % \columnwidth ???
+ \advance\@tempdima\marginparwidth
+ \advance\@tempdima\marginparsep}%
+ {\@tempdima\columnwidth}%
+ \endSC@FLOAT\@tempdima}%
+\def\endSC@dblfloat{%
+ \end{lrbox}% \end necessary: --> \@noitemerr
+ \let\isSC@WIDE\isSC@WIDEii%
+ \def\@FLOAT{\@dblfloat}\def\end@FLOAT{\end@dblfloat}%
+ \isSC@WIDE%
+ {\@tempdima\textwidth%
+ \advance\@tempdima\marginparwidth
+ \advance\@tempdima\marginparsep}%
+ {\@tempdima\textwidth}%
+\typeout{endSC@dblfloat: \string\@tempdima=\the\@tempdima}%
+ \endSC@FLOAT\@tempdima}%
+\def\endSC@FLOAT#1{%
+ \SC@calcwidths{#1}%
+ \@FLOAT{\SC@captype}%
+ \abovecaptionskip\z@skip
+ \belowcaptionskip\z@skip
+ \global\advance\c@SC@C\@ne
+ \SC@orig@label{\SC@IDENT}% nicht \ref... !!!
+ \isSC@WIDE%
+ {\ifdim\SC@tempdimb>\textwidth % ???
+ \isSC@ODD{\def\SC@hpos{l}}{\def\SC@hpos{r}}%
+ \else%
+ \def\SC@hpos{c}%
+ \fi
+ \@tempdimc\textwidth}% ???
+ {\@tempdimc\SC@tempdima\def\SC@hpos{c}}%
+ \makebox[\@tempdimc][\SC@hpos]{%
+ \SC@FLOAT%
+ {\minipage[\SC@vpos]{\SC@CAPWD}%
+ %% \nointerlineskip %\offinterlineskip%
+ %% \kern0pt\relax
+ \hrule \@height\z@\@depth\z@ %%% Testen, Doku. (Implementierung) !!!
+ %\show\SC@justify@caption
+%%% \tracingall\tracingonline=0
+ \SC@justify
+ \let\@arrayparboxrestore\relax % sonst Blocksatz! (\@parboxrestore)
+ \let\usecaptionmargin\relax % sonst Pseudo-Blocksatz, nicht-alternierend!
+%%% A B C
+\iffalse
+ \endgraf
+ \@makecaption{\csname fnum@\SC@captype\endcsname}%
+ {\ignorespaces \SC@CAPtext}%
+ \endgraf
+\else
+ % \ifthenelse{\equal{\SC@OPTCAPtext}{\@empty}}%
+ \ifx\SC@OPTCAPtext\@empty% Noetig?
+ \SC@orig@caption[\SC@CAPtext]%
+ {\strut\ignorespaces\SC@CAPtext\unskip\strut}% \expandafter\protect
+ \else
+ \SC@orig@caption[\SC@OPTCAPtext]% \expandafter\protect
+ {\strut\ignorespaces\SC@CAPtext\unskip\strut}% \expandafter\protect
+ \fi
+ \unskip% ??? Dok. !!!
+ \ifx\SC@LABtext\@empty\else
+ \SC@orig@label{\SC@LABtext}\fi% \expandafter\protect
+\fi
+%%% X Y Z
+ \hrule \@height\z@\@depth\z@
+ \endminipage}%
+ {\minipage[\SC@vpos]{\SC@BOXWD}%
+ %% \nointerlineskip %\offinterlineskip%
+ %% \kern0pt\relax
+ \hrule \@height\z@\@depth\z@
+ \SC@justify@body
+ \unhbox\SC@BOX % \strut \unhbox/\usebox{\SC@BOX}% TESTEN!
+ % \kern0pt\relax
+ \hrule \@height\z@\@depth\z@
+ \endminipage}%
+ }%
+ \end@FLOAT%
+}
+\InputIfFileExists{sidecap.cfg}{}{} % hier ? % 2002/06/14
+\endinput
+%%
+%% End of file `sidecap.sty'.