This repository has been archived by the owner on Sep 27, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
faq-adj-types.tex
3671 lines (3238 loc) · 156 KB
/
faq-adj-types.tex
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
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
% $Id: faq-adj-types.tex,v 1.50 2014/01/22 17:29:03 rf10 Exp $
\section{Adjusting the typesetting}
\subsection{Alternative document classes}
\Question[Q-replstdcls]{Replacing the standard classes}
People are forever concocting classes that replace the standard ones:
the present author produced an \Class{ukart} class that used the
\Package{sober} package, and a few British-specific things (such as
appear in the \Package{babel} package's British-english
specialisation) in the 1980s, which is still occasionally used.
Similar public efforts were available well back in the days of
\LaTeXo{}: a notable example, whose pleasing designs seem not to have
changed much over all that time, is the \Class{ntgclass} bundle.
Each of the standard classes is replaced by a selection of classes,
named in Dutch, sometimes with a single numeric digit attached. So we
have classes \Class{artikel2}, \Class{rapport1}, \Class{boek3} and
\Class{brief}. These classes are moderately well documented in
English.
The \Class{KOMA-script} bundle (classes named \Class{scr...}) are a
strong current contender. They are actively supported and are subject
to sensitive development; they are comprehensive in their coverage of
significant typesetting issues; they produce good-looking output and
they are well documented in both English (\Package{scrguien} in the
distribution) and German (\Package{scrguide} in the distribution).
The other comparable class is \Class{memoir}. This aims to replace
\Class{book} and \Class{report} classes directly, and (like
\Class{KOMA-script}) is comprehensive in its coverage of small issues.
\Class{Memoir}'s documentation (\Package{memman}) is very highly
spoken of, and its lengthy introductory section is regularly
recommended as a tutorial on typesetting.
\begin{ctanrefs}
\item[\nothtml{\rmfamily}KOMA-script bundle]\CTANref{koma-script}
\item[memoir.cls]\CTANref{memoir}
\item[\nothtml{\rmfamily}NTGclass bundle]\CTANref{ntgclass}
\item[sober.sty]\CTANref{sober}
\end{ctanrefs}
\Question[Q-slidecls]{Producing presentations (including slides)}
Lamport's original \LaTeX{} had a separate program (Sli\TeX{}) for
producing slides; it dates from the age when colour effects were
produced by printing separate slides in different-coloured inks, and
overlaying them, and was just about acceptable back then. When
\LaTeXe{} came along, the reason Sli\TeX{} had to be a separate
program went away, and its functionality was supplied by the
\Class{slides} class. While this makes life a little easier for
system administrators, it does nothing for the inferior functionality
of the class: no-one who ``knows'' uses \Class{slides} nowadays.
The `classic' alternatives have been \Class{seminar} and \Class{foils}
(originally known as Foil\TeX{}). Both were originally designed to
produce output on acetate foils, though subsequent work has provided
environments in which they can be used with screen projectors (see
below).
The advent of Microsoft \ProgName{PowerPoint} (feeble though early
versions of it were) has created a demand for ``dynamic'' slides~---
images that develop their content in a more elaborate fashion than by
merely replacing one foil with the next in the way that was the norm
when \Class{slides}, \Class{foils} and \Class{seminar} were designed.
The \Class{prosper} class builds on \Class{seminar} to provide dynamic
effects and the like; it retains the ability to provide \acro{PDF} for
a projected presentation, or to print foils for a foil-based
presentation. The add-on package \Package{ppr-prv} adds ``preview''
facilities (that which is commonly called ``hand-out printing''). The
\Package{HA-prosper} package, which you load with \Class{prosper},
mends a few bugs, and adds several facilities and slide design styles.
The (more recent) \Class{powerdot} class is designed as a
replacement for \Class{prosper} and \Package{HA-prosper}, co-authored
by the author of \Package{HA-prosper}.
\Class{Beamer} is a relatively easy-to-learn, yet powerful, class that
(as its name implies) was designed for use with projection displays.
It needs the \Package{pgf} package (for graphics support), which in
turn requires \Package{xcolor}; while this adds to the tedium of
installing \Class{beamer} ``from scratch'', both are good additions to
a modern \LaTeX{} installation. \Class{Beamer} has reasonable
facilities for producing printed copies of slides.
\Class{Talk} is another highly functional, yet easy-to-learn class
which claims to differ from the systems mentioned above, such as
\Class{beamer}, in that it doesn't impose a slide style on you. You
get to specify a bunch of slide styles, and you can switch from one to
the other between slides, as you need. The class itself provides
just the one style, in the package \Package{greybars}: the author's
suggestion that users should contribute their own has been
enthusiastically accepted~--- see (for example) the % !line break
\href{http://deic.uab.es/~iblanes/beamer_gallery/}{Beamer Gallery}.
\Package{Lecturer} is a \emph{generic} solution (it works with
\plaintex{}, \LaTeX{} and \context{}~mk~ii, but not~--- yet~--- with
\context{}~mk iv). By separating the functionality needed for a
presentation (using \TeX{} for typesetting, and \acro{PDF} functions
for layering and dynamic effects) a clear structure emerges. While it
doesn't have the range of ``themes'' (presentation styles) of
\Class{beamer} it seems a useful alternative candidate.
\Package{Present} is designed for use with \plaintex{} only; its
design is simple, to the extent that its author hopes that users will
themselves be able to tune its macros.
\ProgName{Ppower4} (commonly known as \ProgName{pp4}) is a
\ProgName{Java}-based support program that will postprocess
\acro{PDF}, to `animate' the file at places you've marked with
commands from one of the \ProgName{pp4} packages. The commands don't
work on \acro{PDF} that has come from \ProgName{dvips} output; they
work with \acro{PDF} generated by \PDFLaTeX{}, \LaTeX{}, or
\ProgName{dvipdfm} running on \LaTeX{} output.
\Package{Pdfscreen} and \Package{texpower} are add-on packages that
permit dynamic effects in documents formatted in ``more modest''
classes; \Package{pdfscreen} will even allow you to plug
``presentation effects'' into an \Class{article}-class document.
% ifmslide
%\noindent ifmslide: a few slides extolling virtues in \File{doc/ifmman.pdf}
A more detailed examination of the alternatives (including examples
of code using many of them) may be found at Michael Wiedmann's fine
\URL{http://www.miwie.org/presentations/presentations.html}
\CONTeXT{} users will find that much (if not all) of what they need is
already in \CONTeXT{} itself; there's a useful summary of what's
available, with examples, in
\URL{http://wiki.contextgarden.net/Presentation_Styles}
%
\begin{ctanrefs}
\item[beamer.cls]Download all of \CTANref{beamer}
\item[foils.cls]\CTANref{foiltex}
\item[greybars.sty]distributed with \CTANref{talk}
\item[HA-prosper.sty]\CTANref{ha-prosper}
%\item[ifmslide.sty]\CTANref{ifmslide}
\item[lecturer.sty]\CTANref{lecturer}
\item[seminar.cls]\CTANref{seminar}
\item[pdfscreen.sty]\CTANref{pdfscreen}
\item[pgf.sty]\CTANref{pgf}
\item[powerdot.cls]\CTANref{powerdot}
\item[pp4]\CTANref{ppower4}
\item[ppr-prv.sty]\CTANref{ppr-prv}
\item[present.tex]\CTANref{present}
\item[prosper.cls]\CTANref{prosper}
\item[talk.cls]\CTANref{talk}
\item[texpower]\CTANref{texpower}
\item[xcolor.sty]\CTANref{xcolor}
\end{ctanrefs}
\Question[Q-poster]{Creating posters with \LaTeX{}}
There is no complete ``canned solution'' to creating a poster (as, for
example, classes like \Class{seminar}, \Class{powerdot} and
\Class{beamer} serve for creating presentations in a variety of
styles).
The nearest approach to the complete solution is the \Class{sciposter}
class, which provides the means to produce really rather good posters
according to the author's required style. A complete worked example
is provided with the distribution
Otherwise, there is a range of tools, most of which are based on the
\Class{a0poster} class, which sets up an appropriately-sized piece of
paper, sets font sizes appropriately, and leaves you to your own
devices.
Having used \Class{a0poster}, you can of course slog it out, and write
all your poster as an unadorned \LaTeX{} document (presumably in
multiple columns, using the \Package{multicol} package), but it's not really
necessary: the (straightforward) \Package{textpos} package provides a
simple way of positioning chunks of text, or tables or figures, on the
poster page.
More sophisticated is the \Package{flowfram} package, whose basic aim
in life is flowing text from one box on the page to the next. One of
the package's design aims seems to have been the production of
posters, and a worked example is provided. The author of
\Package{flowfram} has an experimental tool called
\href{http://www.dickimaw-books.com/software.html#jpgfdraw}{JpgfDraw}, which
allows you to construct the outline of frames for use with
\Package{flowfram}.
The \Package{beamerposter} package is added to a % ! line break
\Qref*{\Class{beamer} document}{Q-slidecls} to enable the user to work
as if in a \Class{a0poster} class. Thus \Class{beamer}'s neat
provisions for layout may be used when creating the poster.
Documentation of \Package{beamerposter} is sparse, but an example file
allows the user to get a grip on what's available.
Despite the relative shortage of tools, there are a fair few web pages
that explain the process (mostly in terms of the \Class{a0poster}
route):
\begin{itemize}
\item from Norman Gray, % ! line break; this item checked 2012-10-02
\href{http://nxg.me.uk/docs/posters/}{Producing posters using \LaTeX{}};
\item from Nicola Talbot, % ! line break; this item checked 2012-10-02
\href{http://www.dickimaw-books.com/latex/posters/}{Creating technical posters with \LaTeX{}}
\item From Rob Clark % ! line break; this item checked 2012-10-02
\href{http://homepages.inf.ed.ac.uk/robert/posters/advanced.html}{Advanced LaTeX Posters} % ! line break
(which has links to code samples);
\item from Brian Wolven, % ! line break this item failed 2012-10-02
\href{http://fuse.pha.jhu.edu/~wolven/posters.html}{LaTeX Poster Macros, Examples, and Accessories} % ! line break
(this page also provides macros and other support suggestions); and
\item from ``\emph{pjh}'' % ! line break; this item checked 2012-10-02
\href{http://www.phys.ufl.edu/~pjh/posters/poster_howto_UF.html}{Making and printing a poster with \LaTeX{}}, % ! line break
which covers the specific issue of dealing with University of
Florida styled poster (offering supporting material as necessary),
but has hints which are generally useful.
\end{itemize}
\begin{ctanrefs}
\item[a0poster.cls]\CTANref{a0poster}
\item[beamer.cls]\CTANref{beamer}
\item[beamerposter.sty]\CTANref{beamerposter}
\item[flowfram.sty]\CTANref{flowfram}
\item[multicol.sty]Distributed as part of \CTANref{2etools}[multicol]
\item[sciposter.cls]\CTANref{sciposter}
\item[textpos.sty]\CTANref{textpos}
\end{ctanrefs}
\Question[Q-thesis]{Formatting a thesis in \LaTeX{}}
Thesis styles are usually very specific to your University, so it's
usually not profitable to ask around for a package outside your own
University. Since many Universities (in their eccentric way) still
require double-spaced thesis text, you may also need separately to set
up \Qref*{double spacing}{Q-linespace}.
If you want to write a new thesis class of your own, a good place to
start is the University of California style, but remember that it's
often difficult to produce a thesis that both looks good and conforms
with the style that your Univeristy demands.
\begin{ctanrefs}
\item[UC thesis style]\CTANref{ucthesis}
\end{ctanrefs}
\Question[Q-journalpaper]{Setting papers for journals}
Publishers of journals have a wide range of requirements for the
presentation of papers, and while many publishers do accept electronic
submissions in \AllTeX{}, they don't often submit recommended macros to
public archives.
Nevertheless, there are considerable numbers of macros of one sort or
another available on \acro{CTAN}; searching for your journal name in
the CTAN catalogue~--- see % ! line break
\Qref{searching \acro{CTAN}}{Q-findfiles})~---
may well turn up what you're seeking.
Failing that, you may be well advised to contact the prospective
publisher of your paper; many publishers have macros on their own web
sites, or otherwise available only upon application.
Check that the publisher is offering you macros suitable to an
environment you can use: a few still have no macros for current
\LaTeX{}, for example, claiming that \LaTeXo{} is good enough\dots{}
Some publishers rekey anything sent them anyway, so that it doesn't
really matter what macros you use. Others merely encourage you to use
as few extensions of a standard package as possible, so that they will
find it easy to transform your paper to their own internal form.
\Question[Q-multidoc]{A `report' from lots of `article's}
This is a requirement, for example, if one is preparing the
proceedings of a conference whose papers were submitted in \LaTeX{}.
The nearest things to canned solutions are Peter Wilson's
\Class{combine} and Federico Garcia's \Class{subfiles} classes, but
many approaches have been proposed. Each of of the offerings has its
own advantages; in particular, several distinctly light-weight
solutions (for example, \Package{includex} and \Package{docmute}) are
available, well-suited to less formal documents.
\Class{Combine} defines the means to `\csx{import}' entire documents,
and provides means of specifying significant features of the layout of
the document, as well as a global table of contents, and so on. The
complete set of facilities is pretty complex. An auxiliary package,
\Package{combinet}, allows use of the \csx{title}s and \csx{author}s
(etc.\@) of the \csx{import}ed documents to appear in the global table
of contents. The basic structure of a combined document would be:
\begin{quote}
\begin{verbatim}
\documentclass[...]{combine}
...
\begin{document}
...
<introductory materiel>
...
\begin{papers}
% title and author of first article,
% to go the the main ToC
\coltoctitle{...}
\coltocauthor{...}
\label{art1}
\import{art1}
...
\end{papers}
...
<acknowledgements, etc.>
...
\end{document}
\end{verbatim}
\end{quote}
The \Class{subfiles} class is used in the component files of a multi-file
project, and the corresponding \Package{subfiles} package is used in the
master file; so the structure of the master file looks like:
\begin{quote}
\begin{verbatim}
\documentclass{<whatever>}
...
\usepackage{subfiles}
...
\begin{document}
...
\subfile{subfile_name}
...
\end{document}
\end{verbatim}
\end{quote}
while a subfile has the structure:
\begin{quote}
\begin{verbatim}
\documentclass[mainfile_name]{subfiles}
\begin{document}
...
\end{document}
\end{verbatim}
\end{quote}
Arrangements may be made so that the component files will
be typeset using different page format, etc., parameters than those
used when they are typeset as a part of the main file.
A more `raw' toolkit is offered by Matt Swift's \Package{includex} and
\Package{newclude} packages, both part of the \Package{frankenstein}
bundle. Note that Matt believes \Package{includex} is obsolete
(though it continues to work for this author); furthermore, its
replacement, \Package{newclude} remains ``in development'', as it has
been since 1999.
Both \Package{includex} and \Package{newclude} enable you to
`\csx{includedoc}' complete articles (in the way that you
`\csx{include}' chapter files in an ordinary report). The preamble
(everything up to \cmdinvoke{begin}{document}), and everything after
\cmdinvoke{end}{document}, is ignored by both packages. Thus the
packages don't ``do the whole job'' for you, though: you need to
analyse the package use of the individual papers, and ensure that a
consistent set is loaded in the preamble of the main report. (Both
packages require \Package{moredefs}, which is also part of the
bundle.)
A neat (and simple) toolkit is offered by the
\Package{docmute} package; once the package is loaded, anything
between \cmdinvoke{documentclass}[...]{...} and
\cmdinvoke{begin}{document} in an \csx{input}'ed or \csx{include}'d
document is ignored, and then the input is processed up to
\cmdinvoke{end}{document} in the input file. The package does nothing
about \csx{usepackage} (or anything else) in the preamble of the
included document; it's up to the user to ensure that any packages
needed are loaded, and any other necessary configuration is done, in
the parent document.
The \Package{standalone} package develops on the ideas of
\Package{docmute}; it was designed to meet the needs of users who are
developing images from one of the more extreme new graphics packages
(notably \Package{pgf/tikz}) where the compile time of the graphics is
such that separate compilation is very desirable.
\Package{Standalone} provides a means of developing the graphics in a
convenient way, detached from the development of the document as a
whole; its value for use in multiple documents is clear.
The user includes the \Package{standalone} package in the main
document, and each subfile uses the \Class{standalone} class.
(\Class{Standalone} uses \Class{article} for the ``real'' work in
stand-alone mode, but it may be asked to use another).
The real difference from the \Package{docmute} package is
flexibility. In particular, you can ask that the preambles of the
included documents be gathered up, so that you can construct a good
preamble for the master document.
A final ``compile-together'' approach comes from the \Package{subdocs}
package. The driver file contains a \csx{subdocuments} command:
\begin{quote}
\cmdinvoke*{subdocuments}[options]{file1, file2, ...}
\end{quote}
(the optional arguments provide layout options, such as control over
whether \csx{clearpage} or \csx{cleardoublepage} are used between the
files). Each of the sub-files will execute
\begin{quote}
\cmdinvoke*{usepackage}[master]{subdocs}
\end{quote}
to declare the name, \texttt{\emph{master}}, of the calling file;
each of the subfiles reads all the \extension{aux} files, so that
tables of contents may be produced.
A completely different approach is to use the \Package{pdfpages}
package, and to include articles submitted in \acro{PDF} format into a
a \acro{PDF} document produced by \PDFLaTeX{}. The package
defines an \csx{includepdf} command, which takes arguments similar to
those of the \csx{includegraphics} command. With keywords in the
optional argument of the command, you can specify which pages you want
to be included from the file named, and various details of the layout
of the included pages.
\begin{ctanrefs}
\item[combine.cls]\CTANref{combine}
\item[combinet.sty]\CTANref{combine}
\item[docmute.sty]\CTANref{docmute}
\item[includex.sty]Distributed in the ``unsupported'' part of
\CTANref{frankenstein}[includex]
\item[moredefs.sty]Distributed as part of \CTANref{frankenstein}[moredefs]
\item[newclude.sty]Distributed as part of \CTANref{frankenstein}[newclude]
\item[pdfpages.sty]\CTANref{pdfpages}
\item[standalone.cls, standalone.sty]\CTANref{standalone}
\item[subdocs.sty]Distributed as part of \CTANref{bezos}[subdocs]
\item[subfiles.cls, etc.]\CTANref{subfiles}
\end{ctanrefs}
\Question[Q-cv]{\emph{Curriculum Vitae} (R\'esum\'e)}
Andrej Brodnik's class, \Class{vita}, offers a framework for producing
a \emph{curriculum vitae}. The class may be customised both for
subject (example class option files support both computer scientists
and singers), and for language (both the options provided are
available for both English and Slovene). Extensions may be written by
creating new class option files, or by using macros defined in the
class to define new entry types, etc.
Didier Verna's class, \Class{curve}, is based on a model in which
the \acro{CV} is made of a set of \emph{rubrics} (each one dealing
with a major item that you want to discuss, such as `education', `work
experience', etc). The class's documentation is supported by a couple
of example files, and an emacs mode is provided.
Xavier Danaux offers a class \Class{moderncv} which supports
typesetting modern \emph{curricula vitarum}, both in a classic and in a
casual style. It is fairly customizable, allowing you to define your
own style by changing the colours, the fonts, etc.
The European Commission has recommended a format for % ! line break
\emph{curricula vitarum} within Europe, and Nicola Vitacolonna has
developed a class \Class{europecv} to produce it. While (by his own
admission) the class doesn't solve all problems, it seems well-thought
out and supports all current official EU languages (together with a
few non-official languages, such as Catalan, Galician and Serbian).
The alternative to using a separate class is to impose a package on
one of the standard classes. An example,
Axel Reichert's \Package{currvita} package, has been recommended to the
\acro{FAQ} team. Its output certainly looks good.
There is also a \LaTeXo{} package \Package{resume}, which comes with
little but advice \emph{against} trying to use it.
\begin{ctanrefs}
\item[currvita.sty]\CTANref{currvita}
\item[curve.cls]\CTANref{curve}
\item[europecv.cls]\CTANref{europecv}
\item[moderncv.cls]\CTANref{moderncv}
\item[resume.sty]\CTANref{resume}
\item[vita.cls]\CTANref{vita}
\end{ctanrefs}
\Question[Q-letterclass]{Letters and the like}
\LaTeX{} itself provides a \Class{letter} document class, which is
widely disliked; the present author long since gave up trying with
it. If you nevertheless want to try it, but are irritated by its way
of vertically-shifting a single-page letter, try the following hack:
\begin{quote}
\begin{verbatim}
\makeatletter
\let\@texttop\relax
\makeatother
\end{verbatim}
\end{quote}
in the preamble of your file.
Doing-it-yourself is a common strategy; Knuth (for use with
\plaintex{}, in the \TeX{}book), and Kopka and Daly (in their Guide to
\LaTeX{}) offer worked examples. (The latest version of Knuth's
macros appear in his ``local library'' dump on the archive, which is
updated in parallel with new versions of \TeX{}~--- so not very often\dots{})
Nevertheless, there \emph{are} contributed alternatives~--- in fact
there are an awfully large number of them: the following list, of
necessity, makes but a small selection.
The largest, most comprehensive, class is \Class{newlfm}; the \texttt{lfm}
part of the name implies that the class can create letters, faxes and
memoranda. The documentation is voluminous, and the package seems
very flexible.
Other classes recommended for inclusion in this \acro{FAQ} are
\Class{akletter} and \Class{isodoc}.
The \Class{dinbrief} class, while recommended, is only documented in
German.
There are letter classes in each of the excellent
\Class{KOMA-script} (\Class{scrlttr2}: documentation is available in
English) and \Package{ntgclass} (\Class{brief}: documentation in Dutch
only) bundles. While these are probably good (since the bundles
themselves inspire trust) they've not been specifically recommended by
any users.
\begin{ctanrefs}
\item[akletter.cls]\CTANref{akletter}
\item[brief.cls]Distributed as part of \CTANref{ntgclass}
\item[dinbrief.cls]\CTANref{dinbrief}
\item[isodoc.cls]\CTANref{isodoc}
\item[\nothtml{\rmfamily}Knuth's letter.tex]\CTANref{knuth-letter}
\item[newlfm.cls]\CTANref{newlfm}
\item[scrlttr2.cls]Distributed as part of \CTANref{koma-script}
\end{ctanrefs}
\Question[Q-extsizes]{Other ``document font'' sizes?}
The \LaTeX{} standard classes have a concept of a (base) ``document
font'' size; this size is the basis on which other font sizes (those
from \csx{tiny} to \csx{Huge}) are determined. The classes are designed
on the assumption that they won't be used with sizes other than the
set that \LaTeX{} offers by default (10--12pt), but people regularly
find they need other sizes. The proper response to such a requirement
is to produce a new design for the document, but many people don't
fancy doing that.
A simple solution is to use the \Package{extsizes} bundle. This
bundle offers ``extended'' versions of the article, report, book and
letter classes, at sizes of 8, 9, 14, 17 and 20pt as well as the
standard 10--12pt. Since little has been done to these classes other
than to adjust font sizes and things directly related to them, they
may not be optimal~--- but they are at least practical.
More satisfactory are the \emph{\acro{KOMA}-script} classes, which are
designed to work properly with the class option files that come with
\Package{extsizes}, and the \Class{memoir} class that has its own
options for document font sizes 9pt--12pt, 14pt, 17pt, 20pt, 25pt,
30pt, 36pt, 48pt and 60pt. The classes also offer size setup for any
old font size, and the \Package{scrextend} package can extend this
facility for use with any class:
\begin{quote}
\begin{verbatim}
\usepackage[fontsize=12.3]{scrextend}
\end{verbatim}
\end{quote}
will indeed set up the main document font to have size \texttt{12.3pt}
with an appropriate default baselineskip. The package ``knows'' about
\emph{\acro{KOMA}-script}'s default sizes, and for eccentric sizes
such as the example, it will produce a warning:
\begin{quote}
\begin{verbatim}
Using fallback calculation to setup font sizes
\end{verbatim}
\end{quote}
(users should avoid becoming excited about that\dots{}). The package
suffers from the same problem as does \Package{extsizes}: the
resulting font sizes are the \emph{only} feature of the document that
is changed, and the appearance of the resulting document will probably
not be as good as if the document class had been designed for use at
the size chosen.
Many classes, designed to produce typeset results other than on
``ordinary'' paper, will have their own font size mechanisms and
ranges of sizes. This is true, for example, of % ! line break
\Qref*{poster classes}{Q-poster} (such as \Class{a0poster}), and of
\Qref*{presentation and lecturing classes}{Q-slidecls} (such as
\Class{beamer}.
\begin{ctanrefs}
\item[a0poster.cls]\CTANref{a0poster}
\item[beamer.cls]\CTANref{beamer}
\item[extsizes bundle]\CTANref{extsizes}
\item[\nothtml{\rmfamily}KOMA script bundle]\CTANref{koma-script}
\item[memoir.cls]\CTANref{memoir}
\item[scrextend.sty]Distributed as part of \CTANref{koma-script}
\end{ctanrefs}
\LastEdit{2012-11-01}
\subsection{Document structure}
\Question[Q-titlsty]{The style of document titles}
The \Package{titling} package provides a number of facilities that
permit manipulation of the appearance of a \csx{maketitle} command, the
\csx{thanks} commands within it, and so on. The package also defines a
\environment{titlingpage} environment, that offers something in between the
standard classes' \pkgoption{titlepage} option and the \environment{titlepage}
environment, and is itself somewhat configurable.
The memoir class includes all the functionality of the
\Package{titling} package, while the \Class{KOMA-script} classes have
their own range of different titling styles.
Finally, the indefatigable Vincent Zoonekynd supplies examples of how
to program alternative % don't let this \href suffer a line-break
\href{http://zoonek.free.fr/LaTeX/LaTeX_samples_title/0.html}{title styles}.
The web page is not useful to users unless they are willing to do
their own \LaTeX{} programming.
\begin{ctanrefs}
\item[\nothtml{\rmfamily}KOMA script bundle]\CTANref{koma-script}
\item[memoir.cls]\CTANref{memoir}
\item[titling.sty]\CTANref{titling}
\end{ctanrefs}
\Question[Q-secthead]{The style of section headings}
Suppose that the editor of your favourite journal has specified that section
headings must be centred, in small capitals, and subsection headings ragged
right in italic, but that you don't want to get involved in the sort of
programming described in section 2.2 of \emph{The \LaTeX{} Companion}
\begin{narrowversion} % really non-hyper
(\Qref{}{Q-latex-books}; the programming itself is discussed in
\Qref[question]{}{Q-atsigns}).
\end{narrowversion}
\begin{wideversion} % really hyper
(see \Qref{\LaTeX{} books}{Q-latex-books}; the
\Qref{programming}{Q-atsigns} itself is discussed elsewhere in this
\acro{FAQ}).
\end{wideversion}
The following hack will
probably satisfy your editor. Define yourself new commands
\begin{quote}
\begin{wideversion}
\begin{verbatim}
\newcommand{\ssection}[1]{%
\section[#1]{\centering\normalfont\scshape #1}}
\newcommand{\ssubsection}[1]{%
\subsection[#1]{\raggedright\normalfont\itshape #1}}
\end{verbatim}
\end{wideversion}
\begin{narrowversion} % really non-hyper
\begin{verbatim}
\newcommand{\ssection}[1]{%
\section[#1]{\centering
\normalfont\scshape #1}}
\newcommand{\ssubsection}[1]{%
\subsection[#1]{\raggedright
\normalfont\itshape #1}}
\end{verbatim}
\end{narrowversion}
\end{quote}
and then use \csx{ssection} and \csx{ssubsection} in place of
\csx{section} and \csx{subsection}. This isn't perfect: section numbers
remain in bold, and starred forms need a separate redefinition.
The \Package{titlesec} package offers a structured approach to the
problem, based on redefinition of the sectioning and chapter commands
themselves. This approach allows it to offer radical adjustment: its
options provide (in effect) a toolbox for designing your own
sectioning commands' output.
The \Package{sectsty} package provides a more simply structured set of
tools; while it is less powerful than is \Package{titlesec}, it is
perhaps preferable for minor adjustments, since you can use it after
having read a smaller proportion of the manual.
The \Package{fncychap} package provides a nice collection of customised
chapter heading designs. The \Package{anonchap} package provides a
simple means of typesetting chapter headings ``like section headings''
(i.e., without the ``Chapter'' part of the heading); the
\Package{tocbibind} package provides the same commands, in pursuit of
another end.
The \Class{memoir} class includes facilities that match
\Package{sectsty} and \Package{titlesec}, as well as a bundle of
chapter heading styles (including an \Package{anonchap}-equivalent).
The \Class{KOMA-script} classes also have sets of tools that provide
equivalent functionality, notably formatting specifications \csx{partformat},
\csx{chapterformat}, \csx{sectionformat}, \dots{}, as well as several
useful overall formatting specifications defined in class options.
Finally, the indefatigable Vincent Zoonekynd supplies examples of how
to program alternative % don't let these \href suffer line-breaks
\href{http://zoonek.free.fr/LaTeX/LaTeX_samples_chapter/0.html}{chapter heading styles}
and
\href{http://zoonek.free.fr/LaTeX/LaTeX_samples_section/0.html}{section heading styles}.
The web pages provide programming examples, and expect users to adapt
them to their own \LaTeX{} use.
\begin{ctanrefs}
\item[anonchap.sty]\CTANref{anonchap}
\item[fncychap.sty]\CTANref{fncychap}
\item[\nothtml{\rmfamily}KOMA script bundle]\CTANref{koma-script}
\item[memoir.cls]\CTANref{memoir}
\item[sectsty.sty]\CTANref{sectsty}
\item[titlesec.sty]\CTANref{titlesec}
\item[tocbibind.sty]\CTANref{tocbibind}
\end{ctanrefs}
\LastEdit{2011-06-01}
\Question[Q-appendix]{Appendixes}
\LaTeX{} provides an exceedingly simple mechanism for appendixes: the
command \csx{appendix} switches the document from generating sections
(in \Class{article} class) or chapters (in \Class{report} or
\Class{book} classes) to producing appendixes. Section or chapter
numbering is restarted and the representation of the counter switches
to alphabetic. So:
\begin{quote}
\begin{verbatim}
\section{My inspiration}
...
\section{Developing the inspiration}
...
\appendix
\section{How I became inspired}
...
\end{verbatim}
\end{quote}
would be typeset (in an \Class{article} document) something like:
\begin{quote}
\textbf{1~~My inspiration}
\dots{}
\textbf{2~~Developing the inspiration}
\dots{}
\textbf{A~~How I became inspired}
\dots{}
\end{quote}
which is quite enough for many ordinary purposes. Note that, once
you've switched to typesetting appendixes, \LaTeX{} provides you with
no way back~--- once you've had an appendix, you can no longer have an
``ordinary'' \csx{section} or \csx{chapter}.
The \Package{appendix} provides several ways of elaborating on this
simple setup. Straightforward use of the package allows you to have a
separate heading, both in the body of the document and the table of
contents; this would be achieved by
\begin{quote}
\begin{verbatim}
\usepackage{appendix}
...
\appendix
\appendixpage
\addappheadtotoc
\end{verbatim}
\end{quote}
The \csx{appendixpage} command adds a separate title ``Appendices''
above the first appendix, and \csx{addappheadtotoc} adds a similar
title to the table of contents. These simple modifications cover many
people's needs about appendixes.
The package also provides an \environment{appendices} environment,
which provides for fancier use. The environment is best controlled by
package options; the above example would be achieved by
\begin{quote}
\begin{verbatim}
\usepackage[toc,page]{appendix}
...
\begin{appendices}
...
\end{appendices}
\end{verbatim}
\end{quote}
The great thing that the \environment{appendices} environment gives
you, is that once the environment ends, you can carry on with sections
or chapters as before~--- numbering isn't affected by the intervening
appendixes.
The package provides another alternative way of setting appendixes, as
inferior divisions in the document. The \environment{subappendices}
environment allows you to put separate appendixes for a particular
section, coded as \csx{subsection}s, or for a particular chapter, coded
as \csx{section}s. So one might write:
\begin{quote}
\begin{verbatim}
\usepackage{appendix}
...
\section{My inspiration}
...
\begin{subappendices}
\subsection{How I became inspired}
...
\end{subappendices}
\section{Developing the inspiration}
...
\end{verbatim}
\end{quote}
Which will produce output something like:
\begin{quote}
\textbf{1~~My inspiration}
\dots{}
\textbf{1.A~~How I became inspired}
\dots{}
\textbf{2~~Developing the inspiration}
\dots{}
\end{quote}
There are many other merry things one may do with the package; the
user is referred to the package documentation for further details.
The \Class{memoir} class includes the facilities of the
\Package{appendix} package. The \Class{KOMA-script} classes offer a
\csx{appendixprefix} command for manipulating the appearance of appendixes.
\begin{ctanrefs}
\item[appendix.sty]\CTANref{appendix}
\item[\nothtml{\rmfamily}KOMA script bundle]\CTANref{koma-script}
\item[memoir.cls]\CTANref{memoir}
\end{ctanrefs}
\Question[Q-secindent]{Indent after section headings}
\LaTeX{} implements a style that doesn't indent the first paragraph
after a section heading. There are coherent reasons for this, but not
everyone likes it.
The \Package{indentfirst} package
suppresses the mechanism, so that the first paragraph is
indented.
\begin{ctanrefs}
\item[indentfirst.sty]Distributed as part of \CTANref{2etools}[indentfirst]
\end{ctanrefs}
\Question[Q-subsubsub]{How to create a \csx{subsubsubsection}}
\LaTeX{}'s set of ``sections'' stops at the level of
\csx{subsubsection}. This reflects a design decision by Lamport~---
for, after all, who can reasonably want a section with such huge
strings of numbers in front of it?
In fact, \LaTeX{} standard classes \emph{do} define ``sectioning''
levels lower than \csx{subsubsection}, but they don't format them like
sections (they're not numbered, and the text is run-in after the
heading). These deeply inferior section commands are \csx{paragraph}
and \csx{subparagraph}; you can (if you \emph{must}) arrange that these
two commands produce numbered headings, so that you can use them as
\csx{subsubsubsection}s and lower.
The \Package{titlesec} package provides a sensible set of macros for
you to adjust the definitions of the sectioning macros, and it may be
used to transform a \csx{paragraph}'s typesetting so that it looks
like that of a \csx{section}.
If you want to program the change yourself, you'll find that the
commands (\csx{section} all the way down to \csx{subparagraph}) are
defined in terms of the internal \csx{@startsection} command, which
takes 6~arguments. Before attempting this sort of work, you are well
advised to read the \LaTeX{} sources (\File{ltsect.dtx} in the
\LaTeX{} distribution) and the source of the standard packages
(\File{classes.dtx}), or to make use of the % ! line break
\Qref*{\LaTeX{} Companion}{Q-latex-books}, which
discusses the use of \csx{@startsection} for this sort of thing.
You will note that Lamport didn't go on adding ``\texttt{sub}'' to the
names of sectioning commands, when creating commands for the lowest
levels of a document. This would seem sensible to any but the most
rigorous stickler for symmetry~--- it would surely challenge pretty
much anyone's reading of the source of a document, if there was a need
to distinguish \csx{subsubsubsection} and \csx{subsubsubsubsection}
\begin{ctanrefs}
\item[\nothtml{\rmfamily}\LaTeX{} source]\CTANref{latex}
\item[titlesec.sty]\CTANref{titlesec}
\end{ctanrefs}
\LastEdit{2012-02-14}
\Question[Q-captsty]{The style of captions}
Changes to the style of captions may be made by redefining the commands
that produce the caption. So, for example, \csx{fnum@figure} (which
produces the float number for figure floats) may be redefined, in a
package of your own, or between
\Qref*{\csx{makeatletter}--\csx{makeatother}}{Q-atsigns}:
\begin{quote}
\begin{wideversion}
\begin{verbatim}
\renewcommand{\fnum@figure}{\textbf{Fig.~\thefigure}}
\end{verbatim}
\end{wideversion}
\begin{narrowversion}
\begin{verbatim}
\renewcommand{\fnum@figure}%
{\textbf{Fig.~\thefigure}}
\end{verbatim}
\end{narrowversion}
\end{quote}
which will cause the number to be typeset in bold face. (Note that
the original definition used \nothtml{\csx{figurename}~--- }%
\Qref{\csx{figurename}}{Q-fixnam}.) More elaborate changes can be
made by patching the \csx{caption} command, but since there are
packages to do the job, such changes (which can get rather tricky)
aren't recommended for ordinary users.
The \Package{float} package provides some control of the appearance of
captions, though it's principally designed for the creation of
non-standard floats. The \Package{caption} and \Package{ccaption}
(note the double ``\emph{c}'') packages provide a range of different
formatting options.
\Package{ccaption} also provides `continuation' captions and captions
that can be placed outside of float environments. The (very simple)
\Package{capt-of} package also allows captions outside a float
environment. Note that care is needed when doing things that assume
the sequence of floats (as in continuation captions), or potentially
mix non-floating captions with floating ones.
The \Class{memoir} class includes the facilities of the
\Package{ccaption} package; the \Class{KOMA-script} classes also
provide a wide range of caption-formatting commands.
The documentation of \Package{caption} is available by processing a
file \File{manual.tex}, which is created when you unpack
\File{caption.dtx}
Note that the previously-recommended package \Package{caption2} has
now been overtaken again by \Package{caption}; however,
\Package{caption2} remains available for use in older documents.
\begin{ctanrefs}
\item[caption.sty]\CTANref{caption}
\item[capt-of.sty]\CTANref{capt-of}
\item[ccaption.sty]\CTANref{ccaption}
\item[float.sty]\CTANref{float}
\item[\nothtml{\rmfamily}KOMA script bundle]\CTANref{koma-script}
\item[memoir.cls]\CTANref{memoir}
\end{ctanrefs}
\Question[Q-fancyhdr]{Alternative head- and footlines in \LaTeX{}}
\keywords{headings header footer headline footline}
The standard \LaTeX{} document classes define a small set of `page
styles' which specify head- and footlines for your document (though
they can be used for other purposes, too). The standard set is very
limited, but \LaTeX{} is capable of much more. The internal
\LaTeX{} coding needed to change page styles is not particularly
challenging, but there's no need~--- there are packages that provide
useful abstractions that match the way we typically think about these
things.
The \Package{fancyhdr} package provides
simple mechanisms for defining pretty much every head- or footline
variation you could want; the directory also contains some
documentation and one or two smaller packages. \Package{Fancyhdr}
also deals with the tedious behaviour of the standard styles with
\Qref*{initial pages}{Q-nopageno}, by enabling you to define
different page styles for initial and for body pages.
While \Package{fancyhdr} will work with \Class{KOMA-script} classes,
an alternative package, \Package{scrpage2}, eases integration with the
classes. \Package{Scrpage2} may also be used as a \Package{fancyhdr}
replacement, providing similar facilities. The \Class{KOMA-script}
classes themselves permit some modest redefinition of head- and
footlines, without the use of the extra package.
\Class{Memoir} also contains the functionality of \Package{fancyhdr},
and has several predefined styles.
Documentation of \Package{fancyhdr} is distributed with the package,
in a separate file; documentation of \Package{scrpage2} is integrated
with the \File{scrgui*} documentation files that are distributed with
the \Class{KOMA-script} classes.
\begin{ctanrefs}
\item[fancyhdr.sty]\CTANref{fancyhdr}
\item[\nothtml{\rmfamily}KOMA script bundle]\CTANref{koma-script}
\item[memoir.cls]\CTANref{memoir}
\end{ctanrefs}
\Question[Q-widefigs]{Wide figures in two-column documents}
Floating figures and tables ordinarily come out the same width as the
page, but in two-column documents they're restricted to the width of
the column. This is sometimes not good enough; so there are alternative
versions of the float environments~--- in two-column documents,
\texttt{figure*} provides a floating page-wide figure (and \texttt{table*} a
page-wide table) which will do the necessary.
The ``\texttt{*}''ed float environments can only appear at the top of a page,
or on a whole page~--- \texttt{h} or \texttt{b} float placement directives are
simply ignored.
Unfortunately, page-wide equations can only be accommodated inside
float environments. You should include them in \texttt{figure} environments,
or use the \Package{float} or \Package{ccaption}package to define a
new float type.
\begin{ctanrefs}
\item[ccaption.sty]\CTANref{ccaption}
\item[float.sty]\CTANref{float}
\end{ctanrefs}
\Question[Q-onecolabs]{1-column abstract in 2-column document}
One often requires that the abstract of a paper should appear across
the entire page, even in a two-column paper. The required trick is:
\begin{quote}
\begin{verbatim}
\documentclass[twocolumn]{article}
...
\begin{document}
... % \author, etc
\twocolumn[