% sidefig.sty \RequirePackage{ifthen} \RequirePackage{calc} \newsavebox{\figbox} \newlength{\leftnegwidth} \setlength{\leftnegwidth} {\marginparwidth+\marginparsep} \newcommand{\@lab}{} \newcommand{\@cap}{} \newcommand{\@captp}{} % \begin{sidefig}[type]{caption}{label} %
or % \end{sidefig} \newenvironment{sidefig}[3][figure] { \renewcommand{\@lab}{\pageref{#3}} \renewcommand{\@captp}{#1} \renewcommand{\@makecaption}[2] {\raggedright\textbf{##1}\\##2} \renewcommand{\@cap}{\caption{#2\label{#3}}} \begin{lrbox}{\figbox} \begin{minipage}{\textwidth}\centering } % schliessender Teil { \end{minipage}\end{lrbox} \@float{\@captp} % Label schon im Hilfsfile? \ifthenelse{\equal{\@lab}{}} % nein, dann einfach Bild drucken {\usebox{\figbox}} % ja, dann gerade-ungerade-Test durchfuehren {\ifthenelse{\isodd{\@lab}} % ungerade Seite: Legende rechts {\parbox{\textwidth+\leftnegwidth} {\usebox{\figbox} \hfil \begin{minipage}[c]{\marginparwidth} \@cap \end{minipage} } } % gerade Seite: Legende links {\hspace*{-\leftnegwidth}% \parbox{\textwidth+\leftnegwidth} {\begin{minipage}[c]{\marginparwidth} \@cap \end{minipage} \hfil \usebox{\figbox} } } } \end@float}