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
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
|
=====//===== \\ // ____
// \\ // |\ /| //
// //====== \V/ ||\ //| \\
// // // \\ || \// | /\ \\ ===\
// //==== // \\ || | // \ \\ |
// // // \\ || | //===\ \\___/
//======= // \
Volume 4 Number 4
A Mostly Unofficial Publication for
Users of the TeX Typesetting System
Contents
Departments
\footnote{}........................................................2
Letters to the Editor..............................................3
ToolBox............................................................4
Special Feature
S-Tables...........................................................5
TeXMaG Volume 4 Number 4 page 2
_______________________________________________________________________________
| |
| \footnote{Notes on This and Coming Issues} |
|_____________________________________________________________________________|
This month's issue is a special feature --- S-Tables. It is by far the
most complete tables package I have seen to date. It runs quickly, is
relatively short (250 lines), allows for multi-row and multi-column
spanning, and does paragraph insertion, as well.
I must apologize but there is not an ounce of LaTeX stuff in this
issue. To be honest, most everyone around here uses plain TeX, so
finding LaTeX stuff has become somewhat of a chore. If you have style
files or LaTeX tips you think might be helpful, send them in! We
usually don't have a problem finding space for them somewhere in
TeXMaG. I am planning to have an article for writing LaTeX style files
in a forthcoming issue. Is there some daring soul who might want to
try writing an S-Tables style file??
Next month promises to have a mailer macro for generating form
letters: it merges a file of addresses with a TeX file. More on this
next month.
Have fun with S-Tables. I hope you enjoy it.
-ed.
TeXMaG Volume 4, Issue 4 page 3
_______________________________________________________________________________
| |
| Letters to the Editor |
|_____________________________________________________________________________|
------------------------------------------------------------------------------
Letters Concerning TeXMaG V4N3: "Frequently Asked Questions"
------------------------------------------------------------------------------
You wrote:
> X Windows. It is available via anonymous ftp from expo.lcs.mit.edu
> (18.30.0.22) in ./contrib/xfig-2.0.*.Z.
Are you sure about that address? I get "18.30.0.212" from UVic's
nameserver!
> available soon via anonymous ftp from ss01.pppl.gov (192.55.106.110).
Come again? Our nameserver gives "192.55.106.129"!
> and from rusmv1.rus.uni-stuttgart.de (129.69.1.12) (user:ftp,
Our nameserver gives "129.69.1.31", though 129.69.1.12 also seems to work.
Melvin Klassen
(KLASSEN@UVVM.UVic.CA)
[sorry for the errors. I copied it straight from the net and didn't
have a chance to check all the addresses - ed.]
Thank you! The Frequently Asked Questions article is going to be
very, very useful to me. I'm a student at Case Western Reserve
University, also working on CWRUnet, our campus-wide net. I'm still
floundering around with TeX, but I've been presented with the job of
pulling together TeX support for every major platform on CWRUnet.
The frequently-asked questions posting will be invaluable as I gather
together the tools. I've known about SBTeX and emTeX, but that's where
my knowledge ends. Your posting will help me find the resources for
the other micro users on the net, as well as helping me tremendously
with setting up a central Unix-based "TeX server" for use on big jobs.
(And surprise! There's a TeX for VMS! Certain departments on campus
feel rather strongly about their VAXen... Giving them TeX sources will
certainly help get them using the new standard.)
Anyway, your message has been absolutely invaluable. I'd like to thank
both of you for preparing it and for publishing it in TeXMaG.
Stephen Trier
(sct%seldon.clv.oh.us@relay.cs.net)
-------------------------------------------------------------------------------
PC Users - Take Notice!
-------------------------------------------------------------------------------
I have acquired a copy of Personal TeX's "fontware interface package,"
advertised to allow use of Bitstream condensed outline fonts on my MSDOS
implementation of TeX. My output driver is Arbortext's and I output to
an HP laserjet II. Unfortunately, I find that I cannot make Personal TeX's
interface do a very good job of generating fonts in large point sizes.
In particular, generating a 40pt (or larger) font produces something that
prints with noticable "jaggies" in the characters. Thinking that the
problem might be in my device driver (Personal TeX staff suggested this),
I turned to Arbortext for help. Unfortunately, Arbortext has concluded that
the problem is real and due to a deficiency in Personal TeX's interface
software.
I'd like to hear from anyone who has experience in using Bitstream
condensed outline fonts with an MSDOS implementation of TeX. Is there
a solution? Can others verify the problem?
Tim Stephen
Associate Professor
Rensselaer Polytechnic Institute
STEPHEN@RPIECS
TeXMaG Volume 4, Issue 4 page 4
_______________________________________________________________________________
| |
| The ToolBox |
|_____________________________________________________________________________|
If you have had one day of experience with TeX or LaTeX you can
already see the difficulty of including files with large numbers of
special (or should I say, reserved) characters in them. This is
partiularly annoying if I want to include a sample of a .TEX file
to show someone a TeX tip.
The following is a plain TeX macro. I would point LaTeX people in the
direction of the CLARKSON archive (SUN.SOE.CLARKSON.EDU) for LaTeX
verbatim style files.
This macro I have named S_VERBATIM.TEX because it is used in the
S-Tables documentation further on in this issue. It's usage is simple.
Type a " to activate the verbatim macro. Now you may select any
character to use as the delimeter of the verbatim text. Example
this activates "[verbatim text[. Regular text follows...
Note that I selected the '[' (not '[' and ']') as the delimiter. You
can use any character you choose, except for the ". You can now
typeset ANY character in your TeX document.
Another "2 "dumb example" using a number2 as the delimeter.
One thing to note, passing the verbatim text as a parameter of another
macro can produce unreliable results when the verbatim text includes
active characters.
Macro follows:
%
% S_Verbatim.TeX Macro
%
% macros for verbatim scanning
\chardef\other=12
\newskip\ttglue
\ttglue=.5em plus.25em minus.15em
\def\ttverbatim{\begingroup
\catcode`\\=\other
\catcode`\{=\other
\catcode`\}=\other
\catcode`\$=\other
\catcode`\&=\other
\catcode`\#=\other
\catcode`\%=\other
\catcode`\_=\other
\catcode`\~=\other
\catcode`\"=\other % this line is new stuff
\catcode`\|=\other
\catcode`\%=\other
\obeyspaces \obeylines \tt}
\catcode`\"=\active
\def"#1{\ttverbatim \spaceskip\ttglue% \let~~M=\
\def\readit##1#1{##1\endgroup}\expandafter\readit}
%
% end of macro
Next month we will continue our discussion of verbatim inclusion and
will have a couple of macros that include complete files.
TeXMaG Volume 4, Issue 4 page 5
_______________________________________________________________________________
| |
| The S-Tables Macros |
|_____________________________________________________________________________|
There are two files that need to be extracted for S-Tables.
STABLES.TEX is the first file and STABLES_DOC.TEX is the second. Note
you also need the S_VERBATIM.TEX file in the toolbox in order to TeX
the manual.
%
%
% S-Tables Macro
%
\message{S-Tables Macro v1.0, ACS, TAMU (RANHELP@VENUS.TAMU.EDU)}
%
% Help Text
%
\newhelp\stablestylehelp{You must choose a style between 0 and 3.}%
\newhelp\stablelinehelp{You should not use special hrules when stretching
a table.}%
\newhelp\stablesmultiplehelp{You have tried to place an S-Table inside another
S-Table. I would recommend not going on.}%
%
% Line Thicknesses (Values)
%
\newdimen\stablesthinline
\stablesthinline=0.4pt
\newdimen\stablesthickline
\stablesthickline=1pt
%
% Border and Internal Line Thicknesses
%
\newif\ifstablesborderthin
\stablesborderthinfalse
\newif\ifstablesinternalthin
\stablesinternalthintrue
\newif\ifstablesomit
\newif\ifstablemode
\newif\ifstablesright
\stablesrightfalse
%
% Save Registers
%
\newdimen\stablesbaselineskip
\newdimen\stableslineskip
\newdimen\stableslineskiplimit
%
% Counters
%
\newcount\stablesmode
\newcount\stableslines
\newcount\stablestemp
\stablestemp=3
\newcount\stablescount
\stablescount=0
\newcount\stableslinet
\stableslinet=0
%
% Table Style Selection
%
% 0 - Centered
% 1 - Left Justified
% 2 - Right Justified
% 3 - Not Justified
%
\newcount\stablestyle
\stablestyle=0
%
% Element Buffering Definitions
%
\def\stablesleft{\quad\hfil}%
\def\stablesright{\hfil\quad}%
%
% Vertical Bar Activation
%
\catcode`\|=\active%
%
% Strut Control
%
\newcount\stablestrutsize
\newbox\stablestrutbox
\setbox\stablestrutbox=\hbox{\vrule height10pt depth5pt width0pt}
\def\stablestrut{\relax\ifmmode%
\copy\stablestrutbox%
\else%
\unhcopy\stablestrutbox%
\fi}%
%
% Misc. Internal Stuff
%
\newdimen\stablesborderwidth
\newdimen\stablesinternalwidth
\newdimen\stablesdummy
\newcount\stablesdummyc
\newif\ifstablesin
\stablesinfalse
%
% Table Macros
%
\def\begintable{\stablestart%
\stablemodetrue%
\stablesadj%
\halign%
\stablesdef}%
\def\begintableto#1{\stablestart%
\stablemodefalse%
\stablesadj%
\halign to #1%
\stablesdef}%
\def\begintablesp#1{\stablestart%
\stablemodefalse%
\stablesadj%
\halign spread #1%
\stablesdef}%
\def\stablesadj{%
\ifcase\stablestyle%
\hbox to \hsize\bgroup\hss\vbox\bgroup%
\or%
\hbox to \hsize\bgroup\vbox\bgroup%
\or%
\hbox to \hsize\bgroup\hss\vbox\bgroup%
\or%
\hbox\bgroup\vbox\bgroup%
\else%
\errhelp=\stablestylehelp%
\errmessage{Invalid style selected, using default}%
\hbox to \hsize\bgroup\hss\vbox\bgroup%
\fi}%
\def\stablesend{\egroup%
\ifcase\stablestyle%
\hss\egroup%
\or%
\hss\egroup%
\or%
\egroup%
\or%
\egroup%
\else%
\hss\egroup%
\fi}%
\def\stablestart{%
\ifstablesin%
\errhelp=\stablesmultiplehelp%
\errmessage{An S-Table cannot be placed within an S-Table!}%
\fi
\global\stablesintrue%
\global\advance\stablescount by 1%
\message{<S-Tables Generating Table \number\stablescount}%
\begingroup%
\stablestrutsize=\ht\stablestrutbox%
\advance\stablestrutsize by \dp\stablestrutbox%
\ifstablesborderthin%
\stablesborderwidth=\stablesthinline%
\else%
\stablesborderwidth=\stablesthickline%
\fi%
\ifstablesinternalthin%
\stablesinternalwidth=\stablesthinline%
\else%
\stablesinternalwidth=\stablesthickline%
\fi%
\tabskip=0pt%
\stablesbaselineskip=\baselineskip%
\stableslineskip=\lineskip%
\stableslineskiplimit=\lineskiplimit%
\offinterlineskip%
\def\borderrule{\vrule width \stablesborderwidth}%
\def\internalrule{\vrule width \stablesinternalwidth}%
%
\def\thinline{\noalign{\hrule height \stablesthinline}}%
\def\thickline{\noalign{\hrule height \stablesthickline}}%
\def\trule{\omit\leaders\hrule height \stablesthinline\hfill}%
\def\ttrule{\omit\leaders\hrule height \stablesthickline\hfill}%
\def\tttrule##1{\omit\leaders\hrule height ##1\hfill}%
\def\stablesel{&\omit\global\stablesmode=0%
\global\advance\stableslines by 1\borderrule\hfil\cr}%
\def\el{\stablesel&}%
\def\elt{\stablesel\thinline&}%
\def\eltt{\stablesel\thickline&}%
\def\elttt##1{\stablesel\noalign{\hrule height ##1}&}%
\def\elspec{&\omit\hfil\borderrule\cr\omit\borderrule&%
\ifstablemode%
\else%
\errhelp=\stablelinehelp%
\errmessage{Special ruling will not display properly}%
\fi}%
%
\def\stmultispan##1{\mscount=##1 \loop\ifnum\mscount>3 \stspan\repeat}%
\def\stspan{\span\omit \advance\mscount by -1}%
%
\def\multicolumn##1{\omit\multiply\stablestemp by ##1%
\stmultispan{\stablestemp}%
\advance\stablesmode by ##1%
\advance\stablesmode by -1%
\stablestemp=3}%
\def\multirow##1{\stablesdummyc=##1\parindent=0pt\setbox0\hbox\bgroup%
\aftergroup\emultirow\let\temp=}
\def\emultirow{\setbox1\vbox to\stablesdummyc\stablestrutsize%
{\hsize\wd0\vfil\box0\vfil}%
\ht1=\ht\stablestrutbox%
\dp1=\dp\stablestrutbox%
\box1}%
%
% \def\stvcen##1{\vtop{\vfill\hbox{##1}\vfill}}% Currently does not work!
\def\stpar##1{\vtop\bgroup\hsize ##1%
\baselineskip=\stablesbaselineskip%
\lineskip=\stableslineskip%
\lineskiplimit=\stableslineskiplimit\bgroup\aftergroup\estpar\let\temp=}%
\def\estpar{\vskip 6pt\egroup}%
\def\stparrow##1##2{\stablesdummy=##2%
\setbox0=\vtop to ##1\stablestrutsize\bgroup%
\hsize\stablesdummy%
\baselineskip=\stablesbaselineskip%
\lineskip=\stableslineskip%
\lineskiplimit=\stableslineskiplimit%
\bgroup\vfil\aftergroup\estparrow%
\let\temp=}%
\def\estparrow{\vfil\egroup%
\ht0=\ht\stablestrutbox%
\dp0=\dp\stablestrutbox%
\wd0=\stablesdummy%
\box0}%
%
\def|{\global\advance\stablesmode by 1&&&}%
\def\|{\global\advance\stablesmode by 1&\omit\vrule width 0pt%
\hfil&&}%
\def\vt{\global\advance\stablesmode by 1&\omit\vrule width \stablesthinline%
\hfil&&}%
\def\vtt{\global\advance\stablesmode by 1&\omit\vrule width \stablesthickline%
\hfil&&}%
\def\vttt##1{\global\advance\stablesmode by 1&\omit\vrule width ##1%
\hfil&&}%
\def\vtr{\global\advance\stablesmode by 1&\omit\hfil\vrule width%
\stablesthinline&&}%
\def\vttr{\global\advance\stablesmode by 1&\omit\hfil\vrule width%
\stablesthickline&&}%
\def\vtttr##1{\global\advance\stablesmode by 1&\omit\hfil\vrule width ##1&&}%
\stableslines=0%
\stablesomitfalse}
%
\def\stablesdef{\bgroup\stablestrut\borderrule##\tabskip=0pt plus 1fil%
&\stablesleft##\stablesright%
&##\ifstablesright\hfill\fi\internalrule\ifstablesright\else\hfill\fi%
\tabskip 0pt&&##\hfil\tabskip=0pt plus 1fil%
&\stablesleft##\stablesright%
&##\ifstablesright\hfill\fi\internalrule\ifstablesright\else\hfill\fi%
\tabskip=0pt\cr%
\ifstablesborderthin%
\thinline%
\else%
\thickline%
\fi&%
}%
\def\endtable{\advance\stableslines by 1\advance\stablesmode by 1%
\message{- Rows: \number\stableslines, Columns: \number\stablesmode>}%
\stablesel%
\ifstablesborderthin%
\thinline%
\else%
\thickline%
\fi%
\egroup\stablesend%
\endgroup%
\global\stablesinfalse}
%
% end of STABLES.TEX
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
% S-Tables Quick Command Summary
%
\input s_verbatim
\input stables
\tolerance=10000
\centerline{\bf S-Tables v1.0}
\vfil
\centerline{Robert Nilsson}
\centerline{Academic Computing Service}
\centerline{Texas A\&M University}
\centerline{"1RANHELP@VENUS.TAMU.EDU1}
\centerline{"1RANHELP@TAMVENUS1}
\vfil
\begintable
\multicolumn2\bf\hfil Types of Commands\hfil\eltt
Start/End|\stpar{2.5in}{\noindent These are the commands for starting and ending
the table}\elt
Columns Separators|\stpar{2.5in}{\noindent These are used to separate the column
s
in the tables}\elt
Row Separators|\stpar{2.5in}{\noindent These are used to separate the rows}\elt
Configuration|\stpar{2.5in}{\noindent These are used to set up the functioning
of the tables such as the width of a thick rule, whether the internal rules are
thin or thick, etc.}\elt
Specials|\stpar{2.5in}{\noindent These include any commands that do not fit into
the above categories}\endtable
\vfil
\begintable
\multicolumn3\bf\hfil Start/End\hfil\eltt
Command|Arguments|Description\eltt
"1\begintable1\hfill|none|Start a table\hfill\el
"1\begintableto1\hfill|width|\stpar{2.5in}{\noindent Start a table with the
specified width. The table will be stretched until it is `width' wide}\el
"1\begintablesp1\hfill|stretch amount|\stpar{2.5in}{\noindent Start a table and
stretch
it `stretch amount' wider than it would normally be}\elt
"1\endtable1\hfill|none|End the table\hfill\endtable
\vfil
\begintable
\multicolumn3\bf\hfil Column Separators\hfil\eltt
Command|Arguments|Description\eltt
"1|1\hfill|none|\stpar{2.5in}{\noindent End a column and place a vertical rule
of the default width between the columns (do not use this at the end of a
line)}\el
"1\|1\hfill|none|\stpar{2.5in}{\noindent Same as above but the vertical rule
will be suppressed}\el
"1\vt1\hfill|none|\stpar{2.5in}{\noindent Same as above but the vertical rule
will be thin}\el
"1\vtt1\hfill|none|\stpar{2.5in}{\noindent Same as above but the vertical rule
will be thick}\el
"1\vttt1\hfill|thickness|\stpar{2.5in}{\noindent Same as above but the vertical
rule will be `thickness' wide}\endtable
\eject
\begintable
\multicolumn3\bf\hfil Row Separators\hfil\eltt
Command|Arguments|Description\eltt
"1\el1\hfill|none|\stpar{2.5in}{\noindent End a line and don't put a rule under
it. (Do
not use this after the last line of the table, use "1\endtable1)}\el
"1\elt1\hfill|none|\stpar{2.5in}{\noindent Same as above except put a thin rule
under
the line}\el
"1\eltt1\hfill|none|\stpar{2.5in}{\noindent Same as above except put a thick rul
e under
the line}\el
"1\elttt1\hfill|thickness|\stpar{2.5in}{\noindent Same as above except put a rul
e of
width `thickness' under the line}\el
"1\elspec1\hfill|none|\stpar{2.5in}{\noindent This command is used to set up
rules under rows that DO NOT span the entire row. It in effect indicates that
the next row will specify the rule to be used under the current row. This is
especially useful when using with the row spanning commands. This introduces
a subclass, the horizontal rule commands}\elt
\multicolumn3\hfil Horizonal Rule Command Subset\hfil\elt
"1\trule1\hfill|none|\stpar{2.5in}{\noindent Places a thin horizontal rule
under a column. This command is only for use in conjunction with the "1\elspec1
command (To leave a column blank, i.e. no rule, just leave it blank)}\el
"1\ttrule1\hfill|none|\stpar{2.5in}{\noindent Same as above but the rule will be
thick}\el
"1\tttrule1\hfill|thickness|\stpar{2.5in}{\noindent Same as above but the rule
will be `thickness' thick}\endtable
\vfil
You may be wondering what the difference between the "1\elt1 and the "1\trule1
command is. The "1\elt1 will end the line and draw a thin rule under it. The
"1\trule1 works in conjunction with the "1\elspec1 to generate a special rule.
The special rule line is entered the same way a regular row will be entered.
For example, a normal row would look like:
\vfil
"1This|is|a|Test\elt1
\vfil
\noindent This will produce a row with a thin rule under it. To produce the
same effect without a rule under the column `is' the following would be used:
\vfil
"1This|is|a|Test\elspec
\trule||\trule|\trule\el1
\vfil
\noindent Notice that the vertical bars are used. The macro is starting a new
row and the vertical bars need to be included if you want them to continue
through the line. (There is no need to only use the "1|1, any other column
separator is also valid).
\eject
\begintable
\multicolumn3\bf\hfill Configuration\hfill\eltt
Variable|Value|Description\eltt
\multicolumn3\hfill Dimensions\hfill\elt
"1\stablesthinline1\hfill|dimension|\stpar{2.5in}{\noindent This variable
contains the width of a thin rule in the table. The default value is
0.4pt and it may be changed with the command:
"1\stablesthinline=<dimen>1
\noindent where "1<dimen>1 is the new width.}\el
"1\stablesthickline1\hfill|dimension|\stpar{2.5in}{\noindent This
variable contains the width of a thick rule in the table. The default
value is 1pt and it may be changed as above.}\elt
\multicolumn3\hfill Counters\hfill\elt
"1\stablestyle1\hfill|0|\stpar{2.5in}{\noindent Center the table using
the current "1\hsize1. This is the default setting and it may be
changed by the following command:
"1\stablestyle=1$n$
\noindent where $n$ is the new value (0, 1, 2, or 3)}\el
|1|Left justify the table\hfill\el
|2|Right justify the table\hfill\el
|3|No justification\hfill\elt
\multicolumn3\hfill If Statements\hfill\elt
"1\ifstablesinternalthin1\hfill|true|\stpar{2.5in}{\noindent Make the
internal rules of the table thin. This sets the vertical rule
generated by the "1|1. To set the value of this variable the following
command must be used:
"1\stablesinternalthintrue1
\noindent Please note the word `if' is removed and the word `true' has
been appended to the end. The value after this command will be true.
To set it to false append the word `false' instead of `true'.}\el
|false|\stpar{2.5in}{\noindent Use thick internal rules (where the "1|1
is used)}\elspec
|\trule|\trule\el
"1\ifstablesborderthin1\hfill|true|\stpar{2.5in}{\noindent Use thin rules
for the border of the table}\el
|false|\stpar{2.5in}{\noindent Use thick rules for the border of the
table. This is the default.}\endtable
\vfil
All settings in the configuration section should be used {\bf OUTSIDE}
the table. The results of changing a setting inside the table will be
unpredictable, and undesirable.
There are two more settings that need to be discussed. First is the
element buffering. There are two definitions that are used for this:
"1\stablesleft1 and "1\stablesright1. The default settings are as
follows:
\vfil
"1\def\stablesleft{\quad\hfil}
\def\stablesright{\hfil\quad}1
\vfil
\noindent To change these, simply redefine them.
The other setting is the strut. If you are interested in resetting
this, the \TeX book should provide sufficient information (The strut
is used to hold up the box).
\eject
\centerline{\bf Specials}
{\baselineskip=14pt
\vskip .25in
This section will be broken into three parts: the spanning commands, the
paragraph commands, and miscellaneous information.
First of all we have two (actually three, but I'll discuss the third later)
spanning commands. They are "1\multicolumn1 and "1\multirow1. To use
"1\multicolumn1 to span several columns the command will be:
"1\multicolumn1$n$ and your data here.
\noindent The $n$ specifies the number of columns to span across. For
example, if a table has 3 columns and you want a title across the top,
$n$ would be 3. Omit each column separator that is spanned across (in
this case none would be used). When this command is used the buffering is
suspended on the spanning column, so it is necessary to put "1\hfil1's around
the data in the spanning column to center it.
"1\multirow1 works slightly differently. The number of rows to span is
specified in the same way as the number of columns in the "1\multicolumn1 macro,
but the text to be spanned must be placed in curly braces directly after:
"1\multirow1$n$"1{<horizontal material>}1
\noindent The "1<horizontal material>1 will be vertically centered in the number
of spanned rows. The horizontal rules are not automatically omitted under the
columns of the rows being spanned. The "1\elspec1 command must be used to omit
these rules. There will be an example at the end of the documentation of this.
The paragraph commands are "1\stpar1 and "1\stparrow1. The format for "1\stpar1
is:
"1\stpar{<dimen>}{<vertical material>}1
\noindent The "1<dimen>1 is the width of the paragraph (the "1\hsize1) and the
"1<vertical material>1 is the paragraph.
"1\stparrow1 will do the same thing as "1\stpar1 but it will also perform the
function of "1\multirow1. It is a composite command and the only way to span a
paragraph across multiple rows. The format is:
"1\stparrow1$n$"1{<dimen>}{<vertical material>}1
\noindent In this command the $n$ is the number of rows to be spanned and the
other material is the same as in the "1\stpar1 macro. Please note that the
rules for spanning multiple rows apply to this macro also (the use of the
"1\elspec1 command.
To use both multiple rows and multiple columns, specify the "1\multicolumn1
command first, then the "1\multirow1 or "1\stparrow1.
The last point I would like to make concerns the use of varying width vertical
rules. If a thin vertical rule runs into a thick vertical rule there will
be an offset. The default for this offset is to the left. There are two ways
to change the setting. The first is by using an `r' after any of the "1\vt1
commands. For example "1\vttr1 will produce a thick vertical rule right
justified on any wider rules. The other method is by using the
"1\ifstablesright1 setting. A true setting will line up all vertical rules
generated by the "1|1 on the right. A false setting will make the vertical
rules generated by the "1|1 left justified (the default).
In all of the specials using a $n$ parameter, if the number to be used is
greater than 9, it must be placed in curly braces ("1{}1).
}
\vfill\eject
\centerline{\bf Examples}
\vskip .25in
This section will give some example tables and the code to generate them
organized from simple to complex.
\vskip .25in
\leftline{\bf Example 1}
\vskip .125in
"*\begintable
Ck\#\vt Date\vt Memo\vt Debit\vt Credit\vt Balance\eltt
245|8--2|Rent|\$ \hfill 250.00||\$ \hfill 436.29\el
246|8--2|Danson Electric|\$ \hfill 49.28||\$ \hfill 387.01\el
247|8--5|Jeff's Grocery|\$ \hfill 35.88||\$ \hfill 351.13\el
248||Void|||\el
249|8--10|Danson Times|\$ \hfill 19.00||\$ \hfill 332.13\el
250|8--14|Pizza Palace|\$ \hfill 9.95||\$ \hfill 322.18\el
251|8--15|Jones Hardware|\$ \hfill 45.20||\$ \hfill 276.98\el
252|8--15|Deposit||\$ \hfill 255.81|\$ \hfill 532.79\el
253|8--21|Account Fee|\$ \hfill .85||\$ \hfill 531.94\el
254|8--29|Telephone Co.|\$ \hfill 21.19||\$ \hfill 510.75\endtable*
\vskip .125in
\begintable
Ck\#\vt Date\vt Memo\vt Debit\vt Credit\vt Balance\eltt
245|8--2|Rent|\$ \hfill 250.00||\$ \hfill 436.29\el
246|8--2|Danson Electric|\$ \hfill 49.28||\$ \hfill 387.01\el
247|8--5|Jeff's Grocery|\$ \hfill 35.88||\$ \hfill 351.13\el
248||Void|||\el
249|8--10|Danson Times|\$ \hfill 19.00||\$ \hfill 332.13\el
250|8--14|Pizza Palace|\$ \hfill 9.95||\$ \hfill 322.18\el
251|8--15|Jones Hardware|\$ \hfill 45.20||\$ \hfill 276.98\el
252|8--15|Deposit||\$ \hfill 255.81|\$ \hfill 532.79\el
253|8--21|Account Fee|\$ \hfill .85||\$ \hfill 531.94\el
254|8--29|Telephone Co.|\$ \hfill 21.19||\$ \hfill 510.75\endtable
\vfill\eject
\leftline{\bf Example 2}
\vskip .125in
"*\begintableto{6.5truein}
\multicolumn6 \hfill Account Activity for August\hfill\eltt
Ck\#\vt Date\vt Memo\vtt Debit\vt Credit\vtt Balance\eltt
245|8--2|Rent\vtt\$ \hfill 250.00|\vtt\$ \hfill 436.29\el
246|8--2|Danson Electric\vtt\$ \hfill 49.28|\vtt\$ \hfill 387.01\el
247|8--5|Jeff's Grocery\vtt\$ \hfill 35.88|\vtt\$ \hfill 351.13\el
248||Void\vtt|\vtt\el
249|8--10|Danson Times\vtt\$ \hfill 19.00|\vtt\$ \hfill 332.13\el
250|8--14|Pizza Palace\vtt\$ \hfill 9.95|\vtt\$ \hfill 322.18\el
251|8--15|Jones Hardware\vtt\$ \hfill 45.20|\vtt\$ \hfill 276.98\el
252|8--15|Deposit\vtt|\$ \hfill 255.81\vtt\$ \hfill 532.79\el
253|8--21|Account Fee\vtt\$ \hfill .85|\vtt\$ \hfill 531.94\el
254|8--29|Telephone Co.\vtt\$ \hfill 21.19|\vtt\$ \hfill 510.75\endtable*
\vskip .125in
\begintableto{6.5truein}
\multicolumn6 \hfill Account Activity for August\hfill\eltt
Ck\#\vt Date\vt Memo\vtt Debit\vt Credit\vtt Balance\eltt
245|8--2|Rent\vtt\$ \hfill 250.00|\vtt\$ \hfill 436.29\el
246|8--2|Danson Electric\vtt\$ \hfill 49.28|\vtt\$ \hfill 387.01\el
247|8--5|Jeff's Grocery\vtt\$ \hfill 35.88|\vtt\$ \hfill 351.13\el
248||Void\vtt|\vtt\el
249|8--10|Danson Times\vtt\$ \hfill 19.00|\vtt\$ \hfill 332.13\el
250|8--14|Pizza Palace\vtt\$ \hfill 9.95|\vtt\$ \hfill 322.18\el
251|8--15|Jones Hardware\vtt\$ \hfill 45.20|\vtt\$ \hfill 276.98\el
252|8--15|Deposit\vtt|\$ \hfill 255.81\vtt\$ \hfill 532.79\el
253|8--21|Account Fee\vtt\$ \hfill .85|\vtt\$ \hfill 531.94\el
254|8--29|Telephone Co.\vtt\$ \hfill 21.19|\vtt\$ \hfill 510.75\endtable
\vfill\eject
\leftline{\bf Example 3}
\vskip .125in
"*\begintable
\multirow2{\#}\vt\multirow2{Date}\vt\multirow2{Memo}\vt Debit/Credit\elspec
|||\trule\el
|||Balance\eltt
\multirow2{245}|\multirow2{8--2}|\multirow2{Rent}|\$ \hfill 250.00\elspec
|||\trule\el
|||\$ \hfill 436.29\elttt{.7pt}
\multirow2{246}|\multirow2{8--2}|\multirow2{Danson Electric}|\$ \hfill 49.28\els
pec
|||\trule\el
|||\$ \hfill 387.01\elttt{.7pt}
\multirow2{247}|\multirow2{8--5}|\multirow2{Jeff's Grocery}|\$ \hfill 35.88\elsp
ec
|||\trule\el
|||\$ \hfill 351.13\elttt{.7pt}
\multirow2{248}||\multirow2{Void}|\elspec
|||\el
|||\elttt{.7pt}
\multirow2{249}|\multirow2{8--10}|\multirow2{Danson Times}|\$ \hfill 19.00\elspe
c
|||\trule\el
|||\$ \hfill 332.13\endtable*
\vskip .125in
\begintable
\multirow2{\#}\vt\multirow2{Date}\vt\multirow2{Memo}\vt Debit/Credit\elspec
|||\trule\el
|||Balance\eltt
\multirow2{245}|\multirow2{8--2}|\multirow2{Rent}|\$ \hfill 250.00\elspec
|||\trule\el
|||\$ \hfill 436.29\elttt{.7pt}
\multirow2{246}|\multirow2{8--2}|\multirow2{Danson Electric}|\$ \hfill 49.28\els
pec
|||\trule\el
|||\$ \hfill 387.01\elttt{.7pt}
\multirow2{247}|\multirow2{8--5}|\multirow2{Jeff's Grocery}|\$ \hfill 35.88\elsp
ec
|||\trule\el
|||\$ \hfill 351.13\elttt{.7pt}
\multirow2{248}||\multirow2{Void}|\elspec
|||\el
|||\elttt{.7pt}
\multirow2{249}|\multirow2{8--10}|\multirow2{Danson Times}|\$ \hfill 19.00\elspe
c
|||\trule\el
|||\$ \hfill 332.13\endtable
\vfill\eject
\leftline{\bf Example 4}
\vskip .125in
"*\begintable
Account|Ck\#|Debit|Credit|Balance\eltt
\stparrow3{3in}{\noindent The Lyons Investment Memorial Student Fund following
specifications 11.2.3 of the U.S. Governmental Code CCA1}
|123|\$\hfill 1,000.00||\$\hfill 20,000\elspec
|\trule|\trule|\trule|\trule\el
|124|\$\hfill 200.00||\$\hfill 19,800\elspec
|\trule|\trule|\trule|\trule\el
|||\$\hfill 4,000.00|\$\hfill 23,800\elttt{.7pt}
\multicolumn4\hfil\stpar{5.25in}{At the end of the physical year 1990 the
balance in the account for Lyons Investment Memorial Student Fund will be
tallied and the results will be published as per Governmental Code 3.4.2 of the
last payable week in the session. The value presented here is a projection of
the actual that will be available.}\hfil|\$\hfill 25,000\endtable*
\vskip .125in
\begintable
Account|Ck\#|Debit|Credit|Balance\eltt
\stparrow3{3in}{\noindent The Lyons Investment Memorial Student Fund following
specifications 11.2.3 of the U.S. Governmental Code CCA1}
|123|\$\hfill 1,000.00||\$\hfill 20,000\elspec
|\trule|\trule|\trule|\trule\el
|124|\$\hfill 200.00||\$\hfill 19,800\elspec
|\trule|\trule|\trule|\trule\el
|||\$\hfill 4,000.00|\$\hfill 23,800\elttt{.7pt}
\multicolumn4\hfil\stpar{5.25in}{At the end of the physical year 1990 the
balance in the account for Lyons Investment Memorial Student Fund will be
tallied and the results will be published as per Governmental Code 3.4.2 of the
last payable week in the session. The value presented here is a projection of
the actual that will be available.}\hfil|\$\hfill 25,000\endtable
\bye
%
% end of documentation
______________________________________________________________________
TeXMaG is an electronic magazine available free of charge to all
interested parties reachable by electronic mail. It is published
monthly. Letters to the editor may be sent to NABTEXM@TAMVENUS
(BITNet) or NABTEXM@VENUS.TAMU.EDU (Internet) and may be published in
a future issue.
Publisher: Academic Computing Services of
Texas A&M University
Managing Editor: Neil Burleson
TeX Consultant: Robert Nilsson
Copy Editor: Diana Armstrong
Chief Consultant: John McClain, Ph.D
(big cheez)
SUBSCRIPTIONS:
CDNnet: Send a note to <list-request@relay.cdnnet.ca> asking to receive
TeXMaG.
JANET: Send a note to Peter Abbott, <Abbottp@Uk.Ac.Aston> asking to
receive TeXMaG.
All others: Send the following command as an interactive message
(Bitnet) or as a single-line mail message to LISTSERV@UICVM
or LISTSERV@UICVM.UIC.EDU:
SUBS TEXMAG-L Your_Full_Name.
If you have difficulty doing this, send a note to Neil Burleson
<NABTEXM@VENUS.TAMU.EDU>.
SUBMISSIONS:
Please send submissions to <TEXMAG-L@UICVM.UIC.EDU> or
<TEXMAG-L@UICVM>; they will automatically be forwarded to the
editor.
BACK ISSUES:
Back issues may be FTP'd from YMIR.CLAREMONT.EDU from the directory
[ANONYMOUS.TEX.PERIODICALS.TEXMAG]
Back issues may also be FTP'd from SUN.SOE.CLARKSON.EDU from the
directory pub/texmag. Users without FTP access may request back
issues from the Clarkson repository by sending a mail message
to <archive-server@sun.soe.clarkson.edu> with the form
path A_MAIL_PATH_FROM_CLARKSON_TO_YOU
get texmag texmag.V.NN
where V is the volume number and NN is the issue number. Including
a line "index texmag" in the message will return a list of back
issues available.
Janet users may obtain back issues from the Aston archive.
DECNET/SPAN users may obtain them from the Decnet repository (see
below).
\bye bye!
% End of TeXMaG
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|