summaryrefslogtreecommitdiff
path: root/info/ltx3pub/l3d002d.tex
blob: 0360e82ae95c4db232816b84f046c617238ff42a (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
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
%%% ====================================================================
%%%  @LaTeX3-article{ LaTeX3-LTX3-002d,
%%%  filename        = "l3d002d.tex",
%%%  archived        = "ctan:/tex-archive/info/ltx3pub/",
%%%  related-files   = "part of l3d002.tex",
%%%  author          = "David Rhead",
%%%  doc-group       = "Project core team",
%%%  title           = "Some ideas for improving {\LaTeX}\\ General",
%%%  version         = "1.1",
%%%  date            = "18-Mar-1993",
%%%  time            = "20:19:36 GMT",
%%%  status          = "public, official",
%%%  abstract        = "Ideas and suggestions from David Rhead for
%%%                     improving various areas in LaTeX",
%%%  note            = "prepared for the workshop at Dedham 91",
%%%  keywords        = "",
%%%  project-address = "LaTeX3 Project            \\
%%%                     c/o Dr. Chris Rowley      \\
%%%                     The Open University       \\
%%%                     Parsifal College          \\
%%%                     Finchley Road             \\
%%%                     London NW3 7BG, England, UK",
%%%  project-tel     = "+44 171 794 0575",
%%%  project-FAX     = "+44 171 433 6196",
%%%  project-email   = "LTX3-Mgr@SHSU.edu",
%%%  copyright       = "Copyright (C) 1993 LaTeX3 Project
%%%                     All rights reserved.
%%%
%%%                     Permission is granted to make and distribute
%%%                     verbatim copies of this publication or of
%%%                     coherent parts from this publication provided
%%%                     this copyright notice and this permission
%%%                     notice are preserved on all copies.
%%%
%%%                     Permission is granted to copy and distribute
%%%                     translations of this publication or of
%%%                     individual items from this publication into
%%%                     another language provided that the translation
%%%                     is approved by the original copyright holders.
%%%
%%%                     No other permissions to copy or distribute this
%%%                     publication in any form are granted and in
%%%                     particular no permission to copy parts of it
%%%                     in such a way as to materially change its
%%%                     meaning.",
%%%  generalinfo     = "To subscribe to the LaTeX3 discussion list:
%%%
%%%                      Send mail to listserv@vm.urz.uni-heidelberg.de
%%%                      with the following line as the body of the
%%%                      message (substituting your own name):
%%%
%%%                        subscribe LaTeX-L First-name Surname
%%%
%%%                     To find out about volunteer work:
%%%
%%%                      look at the document vol-task.tex which can
%%%                      be obtained electronically, see below.
%%%
%%%                     To retrieve project publications electronically:
%%%
%%%                      Project publications are available for
%%%                      retrieval by anonymous ftp from ctan hosts:
%%%                          ftp.tex.ac.uk
%%%                          ftp.dante.de
%%%                          ftp.shsu.edu
%%%                      in the directory /tex-archive/info/ltx3pub.
%%%
%%%                      The file ltx3pub.bib in that directory gives
%%%                      full bibliographical information including
%%%                      abstracts in BibTeX format.  A brief history
%%%                      of the project and a description of its aims
%%%                      is contained in l3d001.tex.
%%%
%%%                     If you only have access to email, and not ftp
%%%                      You may use the ftpmail service.
%%%                      Send a message just containg the word
%%%                          help
%%%                      to ftpmail@ftp.shsu.edu
%%%                      for more information about this service.
%%%
%%%                     For offers of financial contributions or
%%%                      contributions of computing equipment or
%%%                      software, contact the project at the above
%%%                      address, or the TeX Users Group.
%%%
%%%                     For offers of technical assistance, contact the
%%%                      project at the above address.
%%%
%%%                     For technical enquiries and suggestions, send
%%%                      e-mail to the latex-l list or contact the
%%%                      project at the above address.",
%%%  checksum        = "53711 471 3078 21211",
%%%  docstring       = "The checksum field above contains a CRC-16
%%%                     checksum as the first value, followed by the
%%%                     equivalent of the standard UNIX wc (word
%%%                     count) utility output of lines, words, and
%%%                     characters.  This is produced by Robert
%%%                     Solovay's checksum utility.",
%%%  }
%%% ====================================================================

\chapter{Some e-mail comments about treatment of wide objects}
\label{wide-things}

\begin{footnotesize}\begin{verbatim}
From:     "Nelson H.F. Beebe" <beebe@EDU.UTAH.MATH>
Date:     Tue, 18 Dec 90 17:17:39 MST

In the current LaTeX, input of the form

\begin{center}
...something...
\end{center}

does not center the ...something... if its box is wider than
textwidth; instead, it is flush against the left margin, and
extends into the right margin.

I feel this is counterintuitive, and the situation happens
often enough with wide tables, that I sought, and found, a
solution:

% This environment allows wide centered objects to spill into the
% margins, evenly on both sides
\newenvironment{widecenter}{
    \bgroup
    \makeatletter
    \@flushglue = 0pt plus 1fil minus \textwidth
    \makeatother
    \begin{center}
}{
    \end{center}
    \egroup
}

This solves my own problems, but the question for the LaTeX
redesign is:

        Should centering into the margins be the default
        behavior of the center environment?

Obviously, the default definition of the center environment could
be easily modified to work this way.

I personally would vote for such a change, unless someone exhibits
good reasons to the contrary.
\end{verbatim}\end{footnotesize}
\begin{center} --- \end{center}
\begin{footnotesize}\begin{verbatim}
From:     bbeeton <BNB@COM.AMS.MATH>
Date:     Thu, 20 Dec 90 16:32:56 CET

nelson asks whether over-large centered items should be allowed
to exceed the margins automatically.

while i agree that centering of items that are slightly wider
than the text area is usually preferable to having it shifted
to the right, in cases such as centered titles an even better
solution is to divide the centered text into more shorter lines.

it's my feeling that many people tend to ignore overfull boxes in
any event, and full automatic centering might tend to camouflage
situations where reasonable action would yield a better result.
so i'd be in favor of keeping a widecenter environment, for
intentional use in situations where there isn't any choice.
\end{verbatim}\end{footnotesize}
\begin{center} --- \end{center}
\begin{footnotesize}\begin{verbatim}
From:     MITTELBACH FRANK <PZF5HZ@EARN.RUIPC1E>
Date:     Thu, 20 Dec 90 17:46:11 CET
>
> while i agree that centering of items that are slightly wider
> than the text area is usually preferable to having it shifted
> to the right, in cases such as centered titles an even better
> solution is to divide the centered text into more shorter lines.
>
> it's my feeling that many people tend to ignore overfull boxes in
> any event, and full automatic centering might tend to camouflage
> situations where reasonable action would yield a better result.
> so i'd be in favor of keeping a widecenter environment, for
> intentional use in situations where there isn't any choice.

What Barbara is implicitly pointing out is that there are two
or perhaps three distinct concepts connected with centering of
items.

  1) Centering of text and objects similar to text in a
     `reasonable' way. If things do not fit into a
     given frame (\hsize) then the user gets a waring
     and an overfull box.  This is more or less
     realized in the currrent LaTeX environment.

  2) Centering of items on the current page regardless of their
     size, or at least within some given extra size. This is
     useful for tables figures etc. and only possible in the
     current LaTeX by using \makebox to hide the actual size.

  3) Centering of text within a given frame so that lines are
     neither too long nor too short. This can be done automatically
     only making direct use of \leftskip and \rightskip.

I suppose the correct way to handle this is to either provide
different environment or (which I favor) to add attributes to the
center environment to address the special cases. I think that the
default setting could be left as it is.

A similar problem arises with flushleft and flushright environments.
In case of flushleft we miss a raggedright environment for text
typesetting which is able to hyphenate in a given range.
\end{verbatim}\end{footnotesize}
\begin{center} --- \end{center}
\begin{footnotesize}\begin{verbatim}
Subject:  Re: Wide things
From:     Don Hosek <DHOSEK@EDU.CLAREMONT.HMCVAX>

>My first reservation is that, in publishing practice, it seems normal
>[1, p. 336; 2, p. 158] to set tables in a smaller typeface than the body of
>the text.  [1] says "tables may be set in small type or footnote size, or the
>size may vary from one table to another ... ".  [2] seems to imply that it
>is normal to set tables in an 8-point typeface, presumably when the
>body of a document is in 10-point (and suggests going down to 7- or 6-point
>if a table won't fit in 8-point).  In fact [1] and [2] recognise that
>"getting tables to fit" is often difficult, and devote several paragraphs
>to tactics for dealing with the difficulties.  So I think that:
>*  the user should still get a warning if a centred thing is allowed to
>   spill into the margin.  The user should then e.g. go and read [1] and [2]
>   to decide whether to accept the "spillage" or to e.g. see whether
>   column-headings could be made more concise and/or decide whether to change
>   font-size
>*  there is a case for making the font-size in the "successor to tabular"
>   a feature of the design.  Typically if a design has main text in 10-point,
>   the design might give 8-point as the default in the "successor to tabular".
>   Then (a) LaTeX would conform to what appears to me to be publishing
>   practice (b) the proportion of tables whose width causes problems would
>   be reduced (and less users would bother people like me about them).

Below is an excerpt from my LaTeX class notes which explains how
I teach users to deal with the situation here and now. Although the
text deals simply with centering and the like, the approach can be
applied to other items of table formatting as well (many of my LaTeX
styles provide a somewhat fancier aroundtbl environment built-in).

The tabular environment is normally treated as just a big letter.
For example, it's possible to get LaTeX to typeset something that
            4  1    ii
looks like 123 345 fgh in the middle of a paragraph. This is
            7  12    q
seldom actually desired, but useful to know. Where this becomes
particularly noticable is that a tabular environment in its own
paragraph is typeset with paragraph indentation, viz:

    4  1    ii
   123 345 fgh
    7  12    q

rather than flush left as you might prefer. The best way to deal
with this problem is to define an aroundtbl environment which
will tell LaTeX how to postion the tabular. The reason for
defining an environment in this fashion is that it makes it
easier to change how the tabulars will be placed: if one simply
told LaTeX to center each tabular and then decided to typeset all
tabulars flushleft, every instance of tabular would need to be
changed. Defining the aroundtbl environment would reduce the work
to simply changing a single definition.

Using the aroundtbl environment, one would simply type something
along the lines of the following for each tabular:

\begin{aroundtbl}
\begin{tabular}{cc}
These columns & are \\
lined up      & and centered
\end{tabular}
\end{aroundtbl}


The following definitions are three possibilities for definining
the aroundtbl environment:

\newenvironment{aroundtbl}{\begin{center}}{\end{center}}

will center each tabular.

\newenvironment{aroundtbl}{\begin{flushright}}{\end{flushright}}

will place each tabular flush against the right margin.

\newenvironment{aroundtbl}{\begin{flushleft}}{\end{flushleft}}

will place each tabular flush against the left margin.

n.b. You should never use the center, flushright, or flushleft
environments outside of the definition of a new command or
environment.
\end{verbatim}\end{footnotesize}
\begin{center} --- \end{center}
\begin{footnotesize}\begin{verbatim}
From:     Leslie Lamport <lamport@COM.DEC.SRC>
Date:     Wed, 2 Jan 91 20:12:58 CET

Once again, the discussion on LaTeX-L is sailing off into the wild blue
yonder.  The document style should not try to figure out that because
this is the left-hand page of an article for a physics journal edited
by a woman, overlong equations should extend to the right.  This kind
of nonsense will produce 126-megabyte document styles that will exhibit
three new bugs per month for ten years.

Problems such as things that don't fit on a line require user
intervention.  They are solved, as the final step in producing a
document, by inserting "visual-formating" commands.

Instead of all this pie-in-the-sky discussion about how to do
everything automagically, how about giving some thought to how the user
can EASILY specify where this particular equation or table should be
placed on this page of this version of this document.  Or, more
generally, on how visual-formating commands, which may have to be
changed each time a new version is created, should be integrated
with the idealogically correct logical-formating commands.
\end{verbatim}\end{footnotesize}
\begin{center} --- \end{center}
\begin{footnotesize}\begin{verbatim}
From:     David Rhead ...
Subject:  Tables (which may be wide)
Date:     9 Jan 91 15:25:49
To:       latex-l%dhdurz1@uk.ac.earn-relay
Msg ID:   < 9 Jan 91 15:25:49 GMT A101BA@UK.AC.NOTT.VME>

Would there be a consensus in favour of the following?

1.  Have a standard name for "an environment into which people normally
    put non-floated tables".  Names currently on offer include Don
    Hosek's "aroundtbl" and my "displaytable".  I'll use the name "N"
    below (where N denotes an unknown).

2.  In the manual, mention N (as the environment into which the user
    normally puts a table) before mentioning center, etc. (to which the user
    might have to resort if user intervention is required for a particularly
    awkwardly sized table).

3.  In the standard styles, have a fairly simple definition of N, but
    one which conforms to a common publishing convention. E.g., in the
    successors to report, article and book, something like
       \newenvironment{N}{\begin{center}\begin{footnotesize}}%
       {\end{footnotesize}\end{center}}
    would do (although a definition involving Nelson's widecenter
    or Frank's "center with attributes" could be used). Thus the user
    would go
      \begin{N}
      \begin{tabular}{...}  %  or tabbing, or their successors
      ...
      \end{tabular}
      \end{N}
    I'd justify the footnotesize as a "common publishing convention" by
    reference to Butcher's book and the Chicago Manual of Style (see my last
    mail) which both talk in terms of tables usually being set in a smaller
    typeface than the main text (but people who work for publishers would
    be better placed than me to advise).  Such definitions should be
    sufficiently simple that they don't generate "3 bugs/month for 10 years".
    Yet the existence of N would make it clear "what one should do with a
    table" and having a reduction in size as standard (if adopted) would
    save a bit of "support" time by allowing more information in before
    problems of size arise.

4.  If someone is writing a style-file for a particular application, and has
    to implement a particular design, it will be up to them how ambitious
    they are in their re-definition of N.

    People attenting Don Hosek's classes might simply replace center by
    flushright or flushleft.

    If a "a woman editor of a physics journal" has to enforce a house-style
    that doesn't lend itself to a simple re-definition of N, it would be up
    to her whether she goes for:
    (a) a complicated re-definition of N, in the hope that, although she can
        expect to spend time finding bugs in her definition, the time she spends
        on coding and bug-fixes may be less than the time she would have spent
        in "visual formatting",
    (b) visual formatting, by replacing N by lower-level commands in the
        few cases when the simple definition leaves things sticking into
        a margin (or margins).
     If she goes for (a), and is sufficiently confident of the code to put it
     "in the public domain", people will look to her for maintenance of the
     code, not to the people who produced the simple code in the standard
     styles.

     Similarly, it would be open for someone writing their own style file
     to try making N intelligent enough to "fit" awkwardly sized tables
     automatically, but maintenance would be a matter for them.  E.g. if
     someone produces a style-file that lays a document out in the style
     of the PostScript manuals, it would be up to them whether they try
     to make N intelligent enough to use the "heading margin" when "necessary",
     and if so whether they risk putting the style-file in the public domain.
     Nothing they did would imply any additional maintenance for the
     simple definitions used in the "standard styles".


There would then be the following open questions:

*  the name to be used for N

*  the relationship with the "floating environments".

   Should it be possible to have a common numbering sequence for the captions
   for both fixed and floating tables?  If so, it would presumably be necessary
   to define N so that, as far as floats were concerned, it was as if a
   \begin{table}[h] had been possible.  Otherwise, numbering could get out of
   sequence if a floated-table floated past a fixed-table.

   Should a float automatically do an N?  If it's an environment that's
   specifically designed to float tables, I'd say "yes" for the standard
   styles, although obviously anyone writing anything else could do what
   they liked.
\end{verbatim}\end{footnotesize}
\begin{center} --- \end{center}
\begin{footnotesize}\begin{verbatim}
From:     MITTELBACH FRANK <PZF5HZ@EARN.RUIPC1E>
Date:     Thu, 10 Jan 91 14:11:27 CET
>
> Once again, the discussion on LaTeX-L is sailing off into the wild blue
> yonder.  The document style should not try to figure out that because
> this is the left-hand page of an article for a physics journal edited
> by a woman, overlong equations should extend to the right.  This kind
> of nonsense will produce 126-megabyte document styles that will exhibit
> three new bugs per month for ten years.

Of course, the document style should be able to figure
out that this is a left hand page and place an example
(as in the LaTeX book) into the correct margin. The
same might be true for other objects in special
application. This is not a question of standard styles,
but one of my goals for the LaTeX reimplementation is
to provide the necessary tools for the designer to
produce such styles if desired.

...
In this special case, the concept of a
`displaysomething' environment looks like a good idea
to me, at least much better then telling the user to
use center, etc. for things like this. ...

>
> Problems such as things that don't fit on a line require user
> intervention.  They are solved, as the final step in producing a
> document, by inserting "visual-formating" commands.
>
That there are a lot of cases which can not be solved
automatically is clear (for this reason I like to have
e.g. user/editor invention via attribute). But is not a
bad idea to free a standard document from  visual
formatting by adding standard logical concepts which
are missing so far (do not let you guide solely by
trying to keep the LaTeX book rewrite to a minimum).
This can and should be discussed, that just the reason
for this list.

> placed on this page of this version of this document.  Or, more
> generally, on how visual-formating commands, which may have to be
> changed each time a new version is created, should be integrated
> with the idealogically correct logical-formating commands.
>

This is an interesting side remark, should there be
some way to make visual formatting like \newpage
visible? I remember a case where somebody said
\samepage without any grouping and it took me a long
time to find out why his document was formatted in a
funny way.

\end{verbatim}\end{footnotesize}