summaryrefslogtreecommitdiff
path: root/info/examples/ltt/sidefig.sty
blob: 2b78814dc3e4c7c5c57006d0b5c2169d81ef8d7c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
% 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}
% <figure> or <table> 
% \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}