summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/changebar/changebar.bug
blob: 2d239c93e63da2489be23e939292f45762f8cd59 (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
%    Supported drivers sofar:
%         dvitops           (James Clark)
%         dvips             (Tom Rokicki)
%         dvitoln03         (Brian {Hamilton Kelly})
%         emTeX (dvidrv)    (Eberhard Mattes)
%         VTeX              (Michael Vulis)
%	  PDFTeX	    (Piet van Oostrum)
%	  XeTeX		    (Apostolos Syropoulos)
%
% change history
%
%       Revisions:
%               Support for twosided.sty added. January, 1987.
%
%               Warning message added to indicate that another pass is
%               required. May, 1987.
%
%               Converted to work with dvitops.  March 1990.
%               Neil Winton (nwinton@axion.bt.co.uk)
%
%               Usage by several drivers SPQR spqr@uk.ac.soton.ecs
%
% v2.0 22-11-90 JLB  merged the original file with  Niel Winton's mods
%        now supports both DVI2LN3 and DVItoPS specials. This introduces 
%        one extra user-command, \device{<device>}. If he says \device{PS} 
%        the PostScript \specials (DVItoPS by James Clark) will be used, 
%        anything else gives the original LN03 \specials.
%
% v2.1 06-04-91 SPQR changed the \ifPS statements to be case
%        statements which check the value of a counter called \driver@setup, 
%        and issue specials accordingly. dvitops, dvips and LN03 are only
%        drivers supported.
% v2.2 07-03-91 JLB  Located all \specials in one place by defining
%        the use of three new macros. Supplied a user command to select 
%        the driver and added code to \document for initializing the 
%        \special-macros.
% v2.2a 08-03-91 JLB \ps@scale needs a different value for DVItoPS and DVIPS
%        so moved initialization of it inside \setup@specials
% v2.2b 08-03-91 JLB The definitions of the \connect macro needed extra
%        \space commands, because its arguments can be control sequences.
% v2.2c 08-04-91 JLB Removed use of \cb@beginSaves and \cb@saveBeginPoint
%        because - it didn't work as specified
%                - seemed unnecessary
%                - broke PostScript support because of use of \xdef
%        \cb@processActive now calls \cb@setBeginPoint instead of 
%        \cb@saveBeginPoint. Left the code and comment in for now 
%        until I'm sure this change doesn't break anything else...
% v2.2d 30-4-91  EN  changed resolution dependent parameters in dvips 
%        specials so it will work on any device using the device's resolution.
%        Additionally added \newif\ifouterbars. \outerbarstrue will put 
%        the bars to the outside of the pages.
%        Without the twoside option this will give right hand side bars.
%        The positioning of right edge changebars was off by \changebarsep, 
%        this has been corrected also.
%        I do not know if there are changes needed in other than Tom Rokicki's 
%        drivers since this is the only one I can test.
% v2.2e 13-6-91  JB  The documentation stated that the greylevel of the 
%        changebar could be modified with the command 
%        \setcounter{\changebargrey}{percentage}.
%        This was a mistake, \changebargrey was allocated using \newcount 
%        (always). Now modified to use \newcount for plain TeX and 
%        \newcounter for LaTeX.
% v2.2f 15-10-91 JB  Added support for the emTeX drivers, based on
%        information from Eberhard Mattes about version 1.4j of the dvidrv
%        program. Also started updating the documentation towards doc.sty
%        standards.
% v2.3  15-10-91 JB  Started merging this version of changebar.sty with
%        version, dated 1988, distributed with DVItoLN03. This will eventually
%        result in version 3.0, hopefully documented using doc.sty.
%        Removed vain attempt to make file compatile with plain.
% v2.4  16-10-91 JB Reduced the number of points defined to two per
%        bar, removed the need for \cb@tempcnt while removing the problem
%        with incorrect changebars across pageboundaries in PostScript
%        mode. Also \ps@scale has been removed.
% v3.0  14-nov-91 JB Completed converting the documentation to doc.sty
%        format. Also solved the problem with bars appearing on the wrong
%        side.
% 
% v3.1  02-07-93 JB Finally got round to include Erich Neuwirth's comments
%       and made a new distribution. Erich corrected the placement of the
%       bars and the conversion of the coordinates when DVIps (Rokicki)
%       is used. Also included Hal Peterson's comments about spaces
%       creeping into the output.
% 
% v3.1b 11-10-93 Spurious white space crept into footnotes because of
%       a missing %-sign. Found by Norm Walsh <walsh@cs.umass.edu>.
%       Fixed.
%
% v3.2b 30-06-95 Finally got the LaTeX2e version working; see \changes
%       entries in the .dtx file to see what changed.
%       Changebar now uses the LaTeX option mechanism; so \driver 
%       disappeared.
%       New options are leftbars and rightbars, tracon and traceoff.
%
% v3.2c 26-03-96 Reintroduced the \driver command in compatibility
%       mode. Fixed the checksum.
%       Juergen Vollmer <vollmer@ipd.info.uni-karlsruhe.de> enhanced
%       the shell script which automatically adds changebar commands
%       to your document.
%
% v3.3a 26-09-97 Finally fixed the diagonal bars by (re-)introducing
%       four points for each bar (instead of two). Made it work with
%       LaTeX's twocolumn option. Fixed positioning problems.
%
% v3.3b 30-09-97 It turns out that the emTeX driver and dvips have
%       different ideas about their origin. Had to subtract 1 inch
%       from horizontal positions for emTeX drivers.
%
% v3.3d 28-10-97 It now turns out that Xdvi shows the changebars with
%       an offset of 1 inch; removed inappropriate pieces of code.
%
% v3.3e Added support for Textures (1.7.7), provided by James Ashton
%       <James.Ashton@keating.anu.edu.au>
%       Added chbar.1 to the distribution. The file was provided by
%       John A. Murdie <john@minster.cs.york.ac.uk>
%
% v3.3i Changebar didn't pay enough attention to the setting of
%       twoside. In onesided documents the value of \evensidemargin
%       should be ignored.
%       \cb@startSpanBars no longer pushes points on the current stack
%       as this confused the algorithm and was wrong anyway.
%       Introduced a tracing facility for the stack mechanisms
%       Now use the history stack to determine the final page on which
%       the beginning and ending of the changebars appear. This fixes
%       most problems with floating objects and diagonal bars at page
%       boundaries.
%       Redefined \cbstart and \cbend in terms of the LaTeX
%       environment. This catches wrong use of \cbstart ...\cbend with
%       respect to TeX's grouping levels. 
%
% v3.3j The rightbars option was broken; 
%       found by Richard Stanton" <stanton@haas.berkeley.edu>
%       In the oneside mode \cb@even@right received no value instead
%       \cb@even@left was set equal to \cb@odd@left and reset
%       afterwards.
%
% v3.4a Michael Vulis submitted the code for VTeX support
%
% v3.4b Changebar and the color package clash;
%       found by Erwin Achermann <acherman@inf.ethz.ch>
%       Because of the extra group and box level for floating objects. 
%       The redefinition in this package of \@endfloat didn't take
%       that into account.
%       repaired a few typos in the documentation.
%       Introduced support for coloured changebars with the dvips
%       driver.
%
% v3.4c small typo repaired
%
% v3.4d Autodetect VTeX and provide the right default driver;
%       added possibility of having changebar.cfg to specify a default
%       driver. 
%       Issue an error when \cbcolor is used when the color option
%       isn't specified.
%
% v3.4e Double column floats didn't carry a change bar because the
%       LaTeX macro \end@dblfloat wasn't adapted for changebar
%       Changebars in the first column appeared twice because of
%       an error in the conditional which decides where to put the 
%       bar.
%       The color error is now a warning.
%       Fixed a few typos.
%       Reverted the change in the definition of \cbstart and \cbend
%       as it prevented changebars starting inside an environment and
%       ending outside of it.
%
% v3.4f Fixed a problem with \changebarwidth; it seemed to become 
%       hardwired due to a bug in the stack handling. \cb@checkpage
%       effectively changed the value of \cb@curbarwd.
%
% v3.4g When the preamble of the document changes the value of the
%       page counter the code gets confused when the new page number
%       is even. Now initialize \cb@pagecount to \c@page - 1.
%       The mechanism with \cb@pagecount and \cb@page may need a
%       redesign to make it robust.
%
% v3.4h Herbert Voss (Herbert dot Voss at alumni dot TU-Berlin dot DE>
%       suggested to support the xcolor package as well as the color 
%       package.
%
% v3.5a Piet van Oostrum: Resolved bugs in twocolumn mode, mid-document
%       changes to page number, covering parts with large depth (like
%       formulas and parboxes), added pdflatex support.
%
% v3.5b JLB: added an extra check (after the call to \ProcessOptions
%       to ensure that pdftex.def is used when in pdf producing mode,
%       even when the document still contains the option "dvips"
%
% v3.5c JLB: Add a small change in the TeXtures specific code that 
%       was submitted by Blue Sky Systems; made it work with both the
%       color and xcolor packages.
%
% v3.6a Apostolos Syropoulus submitted support for XeTeX
%
% v3.6a JLB: a small change in the XeTeX macros
%
% v3.6b JLB: set changebarsep to 0.5\marginparsewp instead of 30pt 
%       in order to prevent the changebar crossing a marginal paragraph.
%
% v3.6c JLB: changed the definition of \cb@checkPDF in order to prevent 
%       an extra page at the end of the document, filled with "spsp"

% Known problems
%        - changebars for mmarginal paragraphs collide with changebars
%          for the main body of text
%        - With PostScript a dictstack overflow seems to occur with
%          many changebars. cb@maxpoint=20 seems to help
%        - I have received the file chgbar.sty, which was written by
%          David B. Johnson (dbj@titan.rice.edu) back in 1990. It uses
%          LaTeX marginpar mechanism to implement change bars. I Haven't
%          yet dared to see if I can merge these two packages into one
%	 - When using \cbstart with an optional parameter that is different
%	   from \changebarwidth the distance between the text margin and
%	   the changebar will not be \changebarsep. Instead, the center of
%	   the changebar will be aligned with the other changebars. The
%	   solution to this would be to give an additional parameter to the
%	   \cb@connect macro to indicate if the bar is on the left or on the
%	   right. \cb@connect can then do the proper positioning. In that
%	   case it is easier not to include the 0.5\changebarwidth
%	   correction in the calculations in \cb@positions.
%	 - The syntax \cbcolor[rgb]{1,0,0} doesn't work with the xcolor option.