-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfaupress.cls
1978 lines (1720 loc) · 67.1 KB
/
faupress.cls
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
% Initial authors: Michael Enders, Felix Lammermann
% Author's emails: [email protected]
%
% Current maintainers: Markus Putnings
% Maintainer's emails: [email protected]
%
%
% Copyright 2019--2020 Michael Enders & Felix Lammermann
%
% This work may be distributed and/or modified under the conditions of the
% LaTeX Project Public License, either version 1.3c of this license or (at your
% option) any later version.
%
% The latest version of this license is in
%
% http://www.latex-project.org/lppl.txt
%
% and version 1.3c or later is part of all distributions of LaTeX version
% 2008-05-04 or later.
%
% This work has the LPPL maintenance status `maintained'.
% The current maintainer of this work is Markus Putnings.
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{faupress}[2019/11/23 LaTeX Class for FAU University Press]
%%% LUALATEX %%%
% It is highly recommended to compile the documents based on this class with
% lualatex instead of standard pdflatex, because it makes the use of fonts
% significantly easier. Fallbacks for pdflatex are still included. In order
% to detect whether or not lualatex is used the ifluatex package is included.
\RequirePackage{ifluatex} % 2019/10/25 v1.5
% Whenever different commands or packages are required by lualatex or pdflatex
% the ifluatex command is used. Just like here where a class warning is given
% is pdflatex is used.
\ifluatex
% do nothing
\else
\ClassWarning{faupress}{You are not using LuaLaTeX for compilation! It is
highly recommended to use LuaLaTeX, because it allocates memory dynamically
(required for very large documents) and because the handling of fonts is more
flexible.}
\fi
%%% HELPERS %%%
% The calc package enables calculations within length settings. It is commonly
% used and thus included by default in this class.
\RequirePackage{calc} % 2017/05/25 v4.3
% The xparse package allows to define new commands and environments more
% flexible. For example commands with multiple optional arguments can easily be
% defined.
\RequirePackage{xparse} % 2020-05-15 L3
% Sometimes you might define shortcuts for words or parts of a sentence.
% Depending whether the word is placed right before a punctuation mark, there
% should be a space after the word or not. The automatic placement of such
% spaces is enabled by the package xspace.
\RequirePackage{xspace} % 2014/10/28 v1.13
% Especially when creating new packages or classes if conditions are used all
% the time. The ifthen package provides an easy syntax for this as well as
% methodis for comparision of strings and numbers.
\RequirePackage{ifthen} % 2014/09/29 v1.1c
% The xstring package provides macros for manipulating strings - testing a
% string’s contents, extracting substrings, substitution of substrings and
% providing numbers such as string length, position of, or number of
% recurrences of, a substring.
\RequirePackage{xstring} % 2019/02/06 v1.83
%%% CLASS OPTIONS %%%
% The options for this class shall all be in key-value format, because it is
% way more flexible than static options. For this task the kvoptions package is
% used. There are multiple ways to create options. String options and boolean
% options are most commonly used.
% In this class the string options will in most cases be converted to booleans,
% which makes working with them easier and allows multiple strings to have the
% same effect. The conversion is done in two steps. Firstly new booleans for
% all possible settings are created and initialized as false. Secondly the
% booleans are altered to true depending on the setting it receives from the
% kay-value option.
\RequirePackage{xkeyval} % 2014/12/03 v2.7a
% The paper format will be set to a size of 17cm × 24cm (also called
% Studienpartitur) as default. The only other option is DIN A5 paper. For this
% option a string is used to identify the paper format, which will later be
% converted to booleans.
\newif\iffaupress@studienpartitur\faupress@studienpartiturfalse
\newif\iffaupress@afive\faupress@afivefalse
\define@choicekey*+{faupress}{paper}[\val\nr]{%
default,%
studienpartitur,%
17x24,%
a5paper,%
a5%
}{%
\ifcase\nr\relax % default
\faupress@studienpartiturtrue
\faupress@afivefalse
\or % studienpartitur
\faupress@studienpartiturtrue
\faupress@afivefalse
\or % 17x24
\faupress@studienpartiturtrue
\faupress@afivefalse
\or % a5paper
\faupress@studienpartiturfalse
\faupress@afivetrue
\or % a5
\faupress@studienpartiturfalse
\faupress@afivetrue
\fi
}{
\ClassWarning{faupress}{unsupported paper format ignored, default (17x24) used}
}
% The user will be enabled to decide whether he wants the list of acronyms to
% be split in abbreviations and symbols (split) or have a combined list for
% both types (combined). If there are no abbreviations or no symbols used the
% functionality can be turned off partially (no symbol, no abbreviation, only
% symbol, only abbreviation). Furthermore the user can decide to turn off
% everything concerning acronyms (none) to enable own inplementations of
% acronyms and how they are handled. For this option again a string is used.
\newif\iffaupress@acronym\faupress@acronymfalse
\newif\iffaupress@combinedacronym\faupress@combinedacronymfalse
\newif\iffaupress@splitacronym\faupress@splitacronymfalse
\newif\iffaupress@abbreviation\faupress@abbreviationfalse
\newif\iffaupress@symbol\faupress@symbolfalse
\define@choicekey*+{faupress}{acronym}[\val\nr]{%
default,%
true,%
false,%
combined,%
split,%
none,%
noabbreviation,%
onlyabbreviation,%
nosymbol,%
onlysymbol,%
}{%
\ifcase\nr\relax % default
\faupress@acronymtrue
\faupress@combinedacronymfalse
\faupress@splitacronymtrue
\faupress@abbreviationfalse
\faupress@symbolfalse
\or % true
\faupress@acronymtrue
\faupress@combinedacronymfalse
\faupress@splitacronymtrue
\faupress@abbreviationfalse
\faupress@symbolfalse
\or % false
\faupress@acronymfalse
\faupress@combinedacronymfalse
\faupress@splitacronymfalse
\faupress@abbreviationfalse
\faupress@symbolfalse
\or % combined
\faupress@acronymtrue
\faupress@combinedacronymtrue
\faupress@splitacronymfalse
\faupress@abbreviationfalse
\faupress@symbolfalse
\or % split
\faupress@acronymtrue
\faupress@combinedacronymfalse
\faupress@splitacronymtrue
\faupress@abbreviationfalse
\faupress@symbolfalse
\or % none
\faupress@acronymfalse
\faupress@combinedacronymfalse
\faupress@splitacronymfalse
\faupress@abbreviationfalse
\faupress@symbolfalse
\or % noabbreviation
\faupress@acronymtrue
\faupress@combinedacronymfalse
\faupress@splitacronymfalse
\faupress@abbreviationfalse
\faupress@symboltrue
\or % onlyabbreviation
\faupress@acronymtrue
\faupress@combinedacronymfalse
\faupress@splitacronymfalse
\faupress@abbreviationtrue
\faupress@symbolfalse
\or % nosymbol
\faupress@acronymtrue
\faupress@combinedacronymfalse
\faupress@splitacronymfalse
\faupress@abbreviationtrue
\faupress@symbolfalse
\or % onlysymbol
\faupress@acronymtrue
\faupress@combinedacronymfalse
\faupress@splitacronymfalse
\faupress@abbreviationfalse
\faupress@symboltrue
\fi
}{
\ClassWarning{faupress}{unsupported acronym option ignored, default (split) used}
}
% The user will furthermore be enabled to decide about the lines drawn in the
% list(s) of acronyms. By defaul horizontal and vertical lines are drawn into
% the tables (both, all, default, true). There are also options to only draw
% vertical lines (onlyvertical, nohorizontal), only draw horizontal lines
% (onlyhorizontal, novertical) or not draw any lines (none, false). For this
% option again a string is used.
\newif\iffaupress@acronymlineboth\faupress@acronymlinebothfalse
\newif\iffaupress@acronymlinenone\faupress@acronymlinenonefalse
\newif\iffaupress@acronymlinehorizontal\faupress@acronymlinehorizontalfalse
\newif\iffaupress@acronymlinevertical\faupress@acronymlineverticalfalse
\define@choicekey*+{faupress}{acronymline}[\val\nr]{%
default,%
true,%
false,%
both,%
all,%
none,%
nohorizontal,%
onlyhorizontal,%
novertical,%
onlyvertical,%
}{%
\ifcase\nr\relax % default
\faupress@acronymlinebothtrue
\faupress@acronymlinenonefalse
\faupress@acronymlinehorizontalfalse
\faupress@acronymlineverticalfalse
\or % true
\faupress@acronymlinebothtrue
\faupress@acronymlinenonefalse
\faupress@acronymlinehorizontalfalse
\faupress@acronymlineverticalfalse
\or % false
\faupress@acronymlinebothfalse
\faupress@acronymlinenonetrue
\faupress@acronymlinehorizontalfalse
\faupress@acronymlineverticalfalse
\or % both
\faupress@acronymlinebothtrue
\faupress@acronymlinenonefalse
\faupress@acronymlinehorizontalfalse
\faupress@acronymlineverticalfalse
\or % all
\faupress@acronymlinebothtrue
\faupress@acronymlinenonefalse
\faupress@acronymlinehorizontalfalse
\faupress@acronymlineverticalfalse
\or % none
\faupress@acronymlinebothfalse
\faupress@acronymlinenonetrue
\faupress@acronymlinehorizontalfalse
\faupress@acronymlineverticalfalse
\or % nohorizontal
\faupress@acronymlinebothfalse
\faupress@acronymlinenonefalse
\faupress@acronymlinehorizontalfalse
\faupress@acronymlineverticaltrue
\or % onlyhorizontal
\faupress@acronymlinebothfalse
\faupress@acronymlinenonefalse
\faupress@acronymlinehorizontaltrue
\faupress@acronymlineverticalfalse
\or % novertical
\faupress@acronymlinebothfalse
\faupress@acronymlinenonefalse
\faupress@acronymlinehorizontaltrue
\faupress@acronymlineverticalfalse
\or % onlyvertical
\faupress@acronymlinebothfalse
\faupress@acronymlinenonefalse
\faupress@acronymlinehorizontalfalse
\faupress@acronymlineverticaltrue
\fi
}{
\ClassWarning{faupress}{unsupported acronymline option ignored, default (both) used}
}
% The bibliography apparatus implemented in this class can be turned off by a
% class option to enable own implementations to the user. Providently this
% function is also implemented as a string option in case there will be more
% settings concerning bibliographies in the future.
\newif\iffaupress@bibliography\faupress@bibliographyfalse
\newif\iffaupress@splitbibliography\faupress@splitbibliographyfalse
\newif\iffaupress@combinedbibliography\faupress@combinedbibliographyfalse
\define@choicekey*+{faupress}{bibliography}[\val\nr]{%
default,%
true,%
false,%
split,%
combined,%
none,%
}{%
\ifcase\nr\relax % default
\faupress@bibliographytrue
\faupress@splitbibliographytrue
\faupress@combinedbibliographyfalse
\or % true
\faupress@bibliographytrue
\faupress@splitbibliographytrue
\faupress@combinedbibliographyfalse
\or % false
\faupress@bibliographyfalse
\faupress@splitbibliographyfalse
\faupress@combinedbibliographyfalse
\or % split
\faupress@bibliographytrue
\faupress@splitbibliographytrue
\faupress@combinedbibliographyfalse
\or % combined
\faupress@bibliographytrue
\faupress@splitbibliographyfalse
\faupress@combinedbibliographytrue
\or % none
\faupress@bibliographyfalse
\faupress@splitbibliographyfalse
\faupress@combinedbibliographyfalse
\fi
}{
\ClassWarning{faupress}{unsupported bibliography option ignored, default (split) used}
}
% The bibliography in this class can have three parts. The parts are for
% references used in this work (main), own publications referring to this work
% (own) and students' theses referring to this work (student). The parts shall
% be selectable by class option.
\newif\iffaupress@mainbibliography\faupress@mainbibliographyfalse
\newif\iffaupress@ownbibliography\faupress@ownbibliographyfalse
\newif\iffaupress@studentbibliography\faupress@studentbibliographyfalse
\define@choicekey*+{faupress}{bibliographypart}[\val\nr]{%
default,%
true,%
false,%
all,%
none,%
nomain,%
onlymain,%
noown,%
onlyown,%
nostudent,%
onlystudent,%
}{%
\ifcase\nr\relax % default
\faupress@mainbibliographytrue
\faupress@ownbibliographytrue
\faupress@studentbibliographytrue
\or % true
\faupress@mainbibliographytrue
\faupress@ownbibliographytrue
\faupress@studentbibliographytrue
\or % false
\faupress@mainbibliographyfalse
\faupress@ownbibliographyfalse
\faupress@studentbibliographyfalse
\or % all
\faupress@mainbibliographytrue
\faupress@ownbibliographytrue
\faupress@studentbibliographytrue
\or % none
\faupress@mainbibliographyfalse
\faupress@ownbibliographyfalse
\faupress@studentbibliographyfalse
\or % nomain
\faupress@mainbibliographyfalse
\faupress@ownbibliographytrue
\faupress@studentbibliographytrue
\or % onlymain
\faupress@mainbibliographytrue
\faupress@ownbibliographyfalse
\faupress@studentbibliographyfalse
\or % noown
\faupress@mainbibliographytrue
\faupress@ownbibliographyfalse
\faupress@studentbibliographytrue
\or % onlyown
\faupress@mainbibliographyfalse
\faupress@ownbibliographytrue
\faupress@studentbibliographyfalse
\or % nostudent
\faupress@mainbibliographytrue
\faupress@ownbibliographytrue
\faupress@studentbibliographyfalse
\or % onlystudent
\faupress@mainbibliographyfalse
\faupress@ownbibliographyfalse
\faupress@studentbibliographytrue
\fi
}{
\ClassWarning{faupress}{unsupported bibliographypart option ignored, default (all) used}
}
% The template and its language depended parts are available in German and
% English, but not in any other languages. To enable the user to choose one of
% the two template languages a class option is used.
% There might be situations in which the user wants to use the microtypographic
% finesses of another language somewhere in the continous text (e.g. a quote
% from a French or Hungarian author). Other languages can be loaded in the
% individual preamble via \setotherlanguage (polyglossia) or before loading the
% this class via \PassOptionsToPackage (babel).
\newif\iffaupress@german\faupress@germanfalse
\newif\iffaupress@english\faupress@englishfalse
\define@choicekey*+{faupress}{language}[\val\nr]{%
default,%
german,ngerman,germanb,austrian,naustrian,%
english,USenglish,american,UKenglish,british,canadian,australian,newzealand,%
}{%
\ifcase\nr\relax % default
\faupress@englishfalse
\faupress@germantrue
\or % german
\faupress@englishfalse
\faupress@germantrue
\or % ngerman
\faupress@englishfalse
\faupress@germantrue
\or % germanb
\faupress@englishfalse
\faupress@germantrue
\or % austrian
\faupress@englishfalse
\faupress@germantrue
\or % naustrian
\faupress@englishfalse
\faupress@germantrue
\or % english
\faupress@englishtrue
\faupress@germanfalse
\or % USenglish
\faupress@englishtrue
\faupress@germanfalse
\or % american
\faupress@englishtrue
\faupress@germanfalse
\or % UKenglish
\faupress@englishtrue
\faupress@germanfalse
\or % british
\faupress@englishtrue
\faupress@germanfalse
\or % canadian
\faupress@englishtrue
\faupress@germanfalse
\or % australian
\faupress@englishtrue
\faupress@germanfalse
\or % newzealand
\faupress@englishtrue
\faupress@germanfalse
\fi
}{
\ClassWarning{faupress}{unsupported language ignored, default (german) used}
}
% When the title becomes very long the author might want to choose a smaller font.
\newif\iffaupress@titleHuge\faupress@titleHugefalse
\newif\iffaupress@titleLARGE\faupress@titleLARGEfalse
\newif\iffaupress@titleLarge\faupress@titleLargefalse
\newif\iffaupress@titlelarge\faupress@titlelargefalse
\newif\iffaupress@titlenormalsize\faupress@titlenormalsizefalse
\define@choicekey*+{faupress}{titlesize}[\val\nr]{%
default,%
Huge,%
LARGE,%
Large,%
large,%
normalsize,%
}{%
\ifcase\nr\relax % default
\faupress@titleHugetrue
\faupress@titleLARGEfalse
\faupress@titleLargefalse
\faupress@titlelargefalse
\faupress@titlenormalsizefalse
\or % Huge
\faupress@titleHugetrue
\faupress@titleLARGEfalse
\faupress@titleLargefalse
\faupress@titlelargefalse
\faupress@titlenormalsizefalse
\or % LARGE
\faupress@titleHugefalse
\faupress@titleLARGEtrue
\faupress@titleLargefalse
\faupress@titlelargefalse
\faupress@titlenormalsizefalse
\or % Large
\faupress@titleHugefalse
\faupress@titleLARGEfalse
\faupress@titleLargetrue
\faupress@titlelargefalse
\faupress@titlenormalsizefalse
\or % large
\faupress@titleHugefalse
\faupress@titleLARGEfalse
\faupress@titleLargefalse
\faupress@titlelargetrue
\faupress@titlenormalsizefalse
\or % normalsize
\faupress@titleHugefalse
\faupress@titleLARGEfalse
\faupress@titleLargefalse
\faupress@titlelargefalse
\faupress@titlenormalsizetrue
\fi
}{
\ClassWarning{faupress}{unsupported title size ignored, default (Huge) used}
}
% Whether the start of a new paragraph should be visualized with a small
% vertical skip or an indention of the first line, is a matter of taste.
% Therefore the author can choose if a skip, a halfskip or an indention should
% be used.
\newif\iffaupress@parskip\faupress@parskipfalse
\newif\iffaupress@parhalfskip\faupress@parhalfskipfalse
\newif\iffaupress@parindent\faupress@parindentfalse
\define@choicekey*+{faupress}{par}[\val\nr]{%
default,%
skip,%
halfskip,%
indent,%
}{%
\ifcase\nr\relax % default
\faupress@parskipfalse
\faupress@parhalfskiptrue
\faupress@parindentfalse
\or % skip
\faupress@parskiptrue
\faupress@parhalfskipfalse
\faupress@parindentfalse
\or % halfskip
\faupress@parskipfalse
\faupress@parhalfskiptrue
\faupress@parindentfalse
\or % indent
\faupress@parskipfalse
\faupress@parhalfskipfalse
\faupress@parindenttrue
\fi
}{
\ClassWarning{faupress}{unsupported paragraph separation ignored, default (halfskip) used}
}
% After all these options were defined, we need to process them in order to
% make the set values available for the further parts of this class.
\ExecuteOptionsX<faupress>{
paper = default,%
acronym = default,%
acronymline = default,%
bibliography = default,%
bibliographypart = default,%
language = default,%
titlesize = default,%
par = default,%
}
\ProcessOptionsX<faupress>
%%% BASE CLASS %%%
% This class shall be based on the KOMA script and more specifically on the
% scrbook class, which is loaded here.
\LoadClass[headings=normal]{scrbook} % 2020/04/19 v3.30
% Some packages from other authors do not work well with KOMA-Script. The
% scrhack package alters the commands and definitions of other packages to work
% better with KOMA-Script.
\RequirePackage{scrhack} % 2020/04/19 v3.30
% The KOMA script has a whole lot of options, that will be set continously
% throughout this class whenever required. Further options can be loaded by the
% user in the individual preamble via \KOMAoptions.
\KOMAoptions{
listof = totoc, % toc eintrag für list of figures und list of tables
toc = chapterentrydotfill, % punkte zwischen toc-text und seite
captions = tableheading, % format table captions for top positioning
captions = figuresignature, % format figure captions for head positioning
numbers = noenddot, % no dots at end of heading numbers
}
%%% MACROTYPOGRAPHY %%%
% The page size and margins can easily be controlled by the geometry package.
% Usually we would not use this package because the definitions made by the
% KOMA classes are very thought-out. However the paper format and margins
% required by FAU Univeristy Press are impossible to achieve with the KOMA
% classes.
\RequirePackage[]{geometry} % 2020/01/02 v5.9, option: showframe
\iffaupress@studienpartitur
\geometry{
paperwidth = 170mm,
paperheight = 240mm,
top = 25mm,
bottom = 20mm,
inner = 25mm,
outer = 20mm,
headheight = 13.6pt, % originally 1em -> warning and automatically changed
headsep = 15mm-1em,
footskip = 7.5mm,
%showframe,
}
\fi
\iffaupress@afive
\geometry{
paper = a5paper ,
top = 23mm,
bottom = 18mm,
inner = 23mm,
outer = 18mm,
headheight = 10.0pt, % originally 1em -> warning and automatically changed
headsep = 13mm-1em,
footskip = 8mm,
%showframe,
}
\fi
% The scrlayer-scrpage package is part of the KOMA script and provides
% functionalities to set the page headers and footers.
\RequirePackage{scrlayer-scrpage} % 2020/04/19 v3.30
% We want to automatically set the chapter (number and name) as the running
% head on even pages and the section (number and name) on odd pages.
% Fortunately exactly this requirement is an example from the KOMA script
% documentation. First we turn on headings of the KOMA class (\pagestyle),
% afterwards we ensure that chapters automatically set leftmark and rightmark
% (\automark) and at last we also allow sections to automatically set
% rightmarks as well (\automark*). <-- watch out for the asterisk
% To better understand how leftmark and rightmark work, please read
% corresponding chapter in the KOMA script documentation. In summary and only
% valid if no further settings are given: The optional argument of automark
% sets rightmark, the mandatory argument sets leftmark. In two-sided documents
% leftmark is printed in the left header on even pages and rightmark is printed
% in the right header on odd pages.
\pagestyle{scrheadings}
\automark[chapter]{chapter}
\automark*[section]{}
%%% LANGUAGES & LANGUAGE DEPENDED ELEMENTS %%%
% The package enabling extensive language support differs between pdflatex and
% lualatex. Therefore, we again require the \ifluatex switch. Regardless of
% the language chosen by the user, both language choices (German and English)
% are loaded, but the chosen one is set as the default language (polyglossia)
% or main language (babel).
% In the polyglossia package the German language in new spelling rules is
% selected with the option german. In the babel package the same option is
% called ngerman.
\iffaupress@german
\RequirePackage[
english,
ngerman
]{babel} % 2020/06/10 3.45
\fi
\iffaupress@english
\RequirePackage[
ngerman,
english
]{babel} % 2020/06/10 3.45
\fi
% Specific keywords used in a document are set automatically by LaTeX (e.g. the
% heading of the table of contents or the bibliography). Some of those keywords
% shall be set to different values.
% The keywords are obviously language depended and both language packages
% define keywords per language in \captions<language>. The definition of keywords is
% extended by the hyperref package via \HyLang@<language>.
% Two languages (German and English) are loaded above and both language
% packages allow switching between those mid-document. Therefore, the renewal
% of keywords needs to be done in \captionsgerman as well as \captionsenglish
% and \HyLang@german as well as \HyLang@english, regardless of the main
% language chosen by the user. Again the naming inconsistency between
% ployglossia and babel kicks in and \captionsgerman becomes \captionsngerman
% when compiling with pdflatex.
% To stabilze changes made in the packages also the keywords that remain
% unchanged are renewed.
\addto\captionsngerman{%
\def\prefacename{Vorwort} % unchanged, original: Vorwort
\def\refname{Literatur} % unchanged, original: Literatur
\def\abstractname{Zusammenfassung} % unchanged, original: Zusammenfassung
\def\bibname{Literaturverzeichnis} % unchanged, original: Literaturverzeichnis
\def\chaptername{Kapitel} % unchanged, original: Kapitel
\def\appendixname{Anhang} % unchanged, original: Anhang
\def\contentsname{Inhaltsverzeichnis} % unchanged, original: Inhaltsverzeichnis
\def\listfigurename{Bildverzeichnis} % changed, original: Abbildungsverzeichnis
\def\listtablename{Tabellenverzeichnis} % unchanged, original: Tabellenverzeichnis
\def\indexname{Index} % unchanged, original: Index
\def\figurename{Bild} % changed, original: Abbildung
\def\tablename{Tabelle} % unchanged, original: Tabelle
\def\partname{Teil} % unchanged, original: Teil
\def\enclname{Anlage(n)} % unchanged, original: Anlage(n)
\def\ccname{Verteiler} % unchanged, original: Verteiler
\def\headtoname{An} % unchanged, original: An
\def\pagename{Seite} % unchanged, original: Seite
\def\seename{siehe} % unchanged, original: siehe
\def\alsoname{siehe auch} % unchanged, original: siehe auch
\def\proofname{Beweis} % unchanged, original: Beweis
\def\glossaryname{Glossar} % unchanged, original: Glossar
}
\addto\HyLang@german{%
\def\equationautorefname{Gleichung} % unchanged, original: Gleichung
\def\footnoteautorefname{Fu\ss note} % unchanged, original: Fu\ss note
\def\itemautorefname{Punkt} % unchanged, original: Punkt
\def\figureautorefname{Bild} % changed, original: Abbildung
\def\tableautorefname{Tabelle} % unchanged, original: Tabelle
\def\partautorefname{Teil} % unchanged, original: Teil
\def\appendixautorefname{Anhang} % unchanged, original: Anhang
\def\chapterautorefname{Kapitel} % unchanged, original: Kapitel
\def\sectionautorefname{Abschnitt} % unchanged, original: Abschnitt
\def\subsectionautorefname{Unterabschnitt} % unchanged, original: Unterabschnitt
\def\subsubsectionautorefname{Unterunterabschnitt} % unchanged, original: Unterunterabschnitt
\def\paragraphautorefname{Absatz} % unchanged, original: Absatz
\def\subparagraphautorefname{Unterabsatz} % unchanged, original: Unterabsatz
\def\FancyVerbLineautorefname{Zeile} % unchanged, original: Zeile
\def\theoremautorefname{Theorem} % unchanged, original: Theorem
\def\pageautorefname{Seite} % unchanged, original: Seite
}
\addto\captionsenglish{%
\def\prefacename{Preface} % unchanged, original: Preface
\def\refname{References} % unchanged, original: References
\def\abstractname{Abstract} % unchanged, original: Abstract
\def\bibname{Bibliography} % unchanged, original: Bibliography
\def\chaptername{Chapter} % unchanged, original: Chapter
\def\appendixname{Appendix} % unchanged, original: Appendix
\def\contentsname{Contents} % unchanged, original: Contents
\def\listfigurename{List of Figures} % unchanged, original: List of Figures
\def\listtablename{List of Tables} % unchanged, original: List of Tables
\def\indexname{Index} % unchanged, original: Index
\def\figurename{Figure} % unchanged, original: Figure
\def\tablename{Table} % unchanged, original: Table
\def\partname{Part} % unchanged, original: Part
\def\enclname{encl} % unchanged, original: encl
\def\ccname{cc} % unchanged, original: cc
\def\headtoname{To} % unchanged, original: To
\def\pagename{Page} % unchanged, original: Page
\def\seename{see} % unchanged, original: see
\def\alsoname{see also} % unchanged, original: see also
\def\proofname{Proof} % unchanged, original: Proof
}
\addto\HyLang@english{
\def\equationautorefname{Equation} % unchanged, original: Equation
\def\footnoteautorefname{footnote} % unchanged, original: footnote
\def\itemautorefname{item} % unchanged, original: item
\def\figureautorefname{Figure} % unchanged, original: Figure
\def\tableautorefname{Table} % unchanged, original: Table
\def\partautorefname{Part} % unchanged, original: Part
\def\appendixautorefname{Appendix} % unchanged, original: Appendix
\def\chapterautorefname{chapter} % unchanged, original: chapter
\def\sectionautorefname{section} % unchanged, original: section
\def\subsectionautorefname{subsection} % unchanged, original: subsection
\def\subsubsectionautorefname{subsubsection} % unchanged, original: subsubsection
\def\paragraphautorefname{paragraph} % unchanged, original: paragraph
\def\subparagraphautorefname{subparagraph} % unchanged, original: subparagraph
\def\FancyVerbLineautorefname{line} % unchanged, original: line
\def\theoremautorefname{Theorem} % unchanged, original: Theorem
\def\pageautorefname{page} % unchanged, original: page
}
% In addition to the already existing keywords, the FAU University Press
% stipulates some headings to have fixed names. These must also added to
% \captionsgerman (or \captionsngerman) as well as \captionsenglish. Since none
% of those headings have anything to do with counters, no extensions of
% \HyLang@german or \HyLang@english are required.
\addto\captionsngerman{%
\def\introductionname{Einleitung}%
\def\acroname{Formelzeichen- und Abkürzungsverzeichnis}%
\def\listabbrname{Abkürzungsverzeichnis}%
\def\listsymbolname{Formelzeichenverzeichnis}%
\def\abbrname{Abkürzung}%
\def\descriptionname{Beschreibung}%
\def\unitname{Einheit}%
\def\symbolname{Symbol}%
\def\mainbibname{Literaturverzeichnis}%
\def\ownbibname{Verzeichnis promotionsbezogener, eigener Publikationen}%
\def\studentbibname{Verzeichnis promotionsbezogener, studentischer Arbeiten}%
\def\bibasterisk{Der Autor an zweiter (und ggf. dritter) Stelle bezeichnet
den bzw. die Betreuer der studentischen Arbeit und an letztgenannter Stelle
den/die Lehrstuhlinhaber/in.}%
}
\addto\captionsenglish{%
\def\introductionname{Introduction}%
\def\acroname{List of Symbols and Abbreviations}%
\def\listabbrname{List of Abbreviations}%
\def\listsymbolname{List of Symbols}%
\def\abbrname{Abbreviation}%
\def\descriptionname{Description}%
\def\unitname{Unit}%
\def\symbolname{Symbol}%
\def\mainbibname{Bibliography}%
\def\ownbibname{Own publications referring to this work}%
\def\studentbibname{Students’ theses referring to this work}%
\def\bibasterisk{The 2nd (3rd) author names the supervisor; the last author
is head of the institute.}%
}
% The csquotes package allows to set quotation marks depending on the currently
% selected language. Usage is recommended by BibLaTeX when using babel or
% polyglossia. Further package options can be passed to it in the usual way by
% using \PassOptionsToPackage before loading this class.
\RequirePackage[autostyle,autopunct=true]{csquotes} % 2019-12-06 v5.2j
%%% MATH & SCIENCE %%%
% The amsmath, amssymb and amsfonts packages of the American Mathematical
% Society are a comprehensive extension of LaTeX to allow proper typesetting of
% equations and other mathematical components.
% The mathtools package superceeds the amsmath package by fully including and
% then extending it. Therefore the amsmath package does not have to be loaded
% explicitly. The mathtools package is not really required for this class but
% is included nevertheless, because it is commonly used.
\RequirePackage{mathtools} % 2020/03/24 v1.24
% The amssymb package is required because one of the symbols used for itemize
% lists is defined here.
\RequirePackage{amssymb} % 2013/01/14 v3.01
% The siunitx package allows to properly and consistently set numbers, units,
% numbers in combination with units, lists of numbers, lists of numbers in
% combination with a unit, number ranges and number ranges in combination with
% a unit. The appearance of these can be set in the preamble without having to
% change the in-document code. The package is not required for this class but
% is included nevertheless, because it is commonly used and certain settings
% (see below) must be given to align the appearance to the fonts selected
% below. Further setup options can be passed to the package by using \sisetup
% in the preamble (or at any other point in the document).
% TODO: The package is currently available in version 2.8b which does not
% support all math fonts that are provided by the unicode-math package used in
% this class with LuaLaTeX. According to comments on a github issue that
% addresses this bug [https://github.com/josephwright/siunitx/issues/338],
% there will be a version 3 that will change the package significantly and add
% the required compatibilities for unicode-math.
\RequirePackage[
% locale = US, % local as first argument!
]{siunitx} % 2020/02/25 v2.8b
\AtBeginDocument{%
\sisetup{%
mode=text,
% detect-all = true,%
}%
}%
%%% FONTS %%%
%TODO explain
\ifluatex
\RequirePackage{fontspec} % 2020/02/21 v2.7i
\setsansfont[
Path = fonts/,
UprightFont = *-light,
BoldFont = *-medium,
]{helveticaneueltcom.ttf}
\setmainfont[
Path = fonts/,
UprightFont = *-regular,
BoldFont = *-bold,
ItalicFont = *-italic,
BoldItalicFont = *-bold-italic,
Numbers = OldStyle,
]{constantia.ttf}
\RequirePackage[
bold-style = ISO,
warnings-off={mathtools-colon,mathtools-overbracket}
]{unicode-math} % 2020/01/31 v0.8q
\setmathfont[
Path = fonts/,
]{cambria-math.ttf}
\else
\RequirePackage[T1]{fontenc} % 2020/02/11 v2.0o
\RequirePackage[utf8]{inputenc} % 2018/08/11 v1.3c
% To use garamond, the font must be installed on the system. It does not come
% with the package itself, because it is a Microsoft font. Under Windows the
% fonts should already be installed; under Linux and MacOS it can be
% installed using the tool getnonfreefonts.
\RequirePackage{textcomp} % 2020/02/02 v2.0n
\RequirePackage{ebgaramond} % 2020/04/12
\RequirePackage[ebgaramond]{newtxmath} % 2020/05/02 v1.626
\fi
%%% MICROTYPOGRAPHY %%%
\RequirePackage{microtype} % 2019/11/18 v2.7d
\RequirePackage{setspace} % 2011/12/19 v6.7a, must be loaded before footmisc package
\RequirePackage{ragged2e} % 2019/07/28 v2.2
% prevent hyphenation of certain short words
% hyphenmins define how many letters have to be typeset before the first
% hyphenation as well as after the last hyphenation. The setting below tells
% latex that in English and in German no hyphenation within the first three
% letters of a word or within the last four letters of a word is allowed. With
% these settings in English and in German no hyphenation of words shorter
\renewcommand\ngermanhyphenmins{33} % default settings are 23
\renewcommand\englishhyphenmins{33} % default settings are 23
% hyphenation can be used to define the hyphenation of words that are not
% hyphenated correctly by the babel algorithm. It can also be used to prevent
% hyphenation of certain words.
\hyphenation{
% Neu-land %This line would tell LaTeX how to hyphenate the word "Neuland" correctly
% außerdem %This line would tell LaTeX not to hyphenate the word "außerdem" at all.
}
%\renewcommand{\sfdefault}{\familydefault}
\iffaupress@studienpartitur
\KOMAoption{fontsize}{11pt}
\fi
\iffaupress@afive
\KOMAoption{fontsize}{10pt}
\fi
%% Alignment & style of sectioning commands
\setkomafont{disposition}{\normalfont\bfseries}
% Numbering up to \subsubsection
\setcounter{secnumdepth}{3}
% Command for fixed indentation of the sectioning commands