summaryrefslogtreecommitdiff
path: root/macros/latex209/contrib/konstruk/piccorr.sty
blob: af943d12fc53443978f875f4019ce18490162941 (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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                 %
% Correction to PiCTeX 1.1 9/21/87                %
% by Andreas Schrell, Wuppertal, FRG, 9/30/91     %
%                                                 %
% The bug forces wrong height and position of the %
% vertical \betweenarrows - structure if the      %
% coordinate difference is negative.              %
% You can search for ERROR in this file.          %
%                                                 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

{\catcode`!=11

\global
\def\betweenarrows #1#2 from #3 #4 to #5 #6 {%
  \!xloc=\!M{#3}\!xunit  \!xxloc=\!M{#5}\!xunit%
  \!yloc=\!M{#4}\!yunit  \!yyloc=\!M{#6}\!yunit%
  \!dxpos=\!xxloc  \advance\!dxpos by -\!xloc
  \!dypos=\!yyloc  \advance\!dypos by -\!yloc
  \advance\!xloc .5\!dxpos
  \advance\!yloc .5\!dypos
%
  \let\!MBA=\!M%           ** save current coord\dimen mode
  \!setdimenmode%          ** express locations in dimens
  \ifdim\!dypos=\!zpt
    \ifdim\!dxpos<\!zpt \!dxpos=-\!dxpos \fi
    \put {\!lrarrows{\!dxpos}{#1}}#2{} at {\!xloc} {\!yloc}
  \else
    \ifdim\!dxpos=\!zpt
%     \ifdim\!dypos<\!zpt \!dypos=-\!zpt \fi
%                                  ^^^^^ ERROR!
      \ifdim\!dypos<\!zpt \!dypos=-\!dypos \fi
%                                  ^^^^^^^ CORRECTION!
      \put {\!udarrows{\!dypos}{#1}}#2{} at {\!xloc} {\!yloc}
    \fi
  \fi
  \let\!M=\!MBA%           ** restore previous c/d mode
  \ignorespaces}
}

\endinput