1 The Dutch language

The file dutch.dtx^{1} defines all the language-specific macros for the Dutch language and the ‘Afrikaans’ version^{2} of it.

For this language the character " is made active. In table 1 an overview is given of its purpose. One of the reasons for this is that in the Dutch language a word with a dieresis can be hyphenated just before the letter with the umlaut, but the dieresis has to disappear if the word is broken between the previous letter and the accented letter.

In [?] the quoting conventions for the Dutch language are discussed. The preferred convention is the single-quote Anglo-American convention, i.e. ‘This is a quote’. An alternative is the slightly old-fashioned Dutch method with initial double quotes lowered to the baseline, ”This is a quote”, which should be typed

as "`This is a quote"'.

"a \"a which hyphenates as -a; also implemented for

the other letters.

"y puts a negative kern between i and j
"Y puts a negative kern between I and J
"| disable ligature at this position.

"- an explicit hyphen sign, allowing hyphenation in the

rest of the word. "~ to produce a hyphencharcter without the following

              \discretionary{}{}{}.

"" to produce an invisible ‘breakpoint’.
"` lowered double left quotes (see example below).
"' normal double right quotes.

\- like the old \-, but allowing hyphenation in the rest of the word.

Table 1: The extra definitions made by dutch.ldf

 1 % \changes{dutch-3.8a}{1996/10/04}{made check dependant on
 2 %    \cs{CurrentOption}}
 3 %
 4 %    The macro |\LdfInit| takes care of preventing that this file is
 5 %    loaded more than once, checking the category code of the
 6 %    \texttt{@} sign, etc.
 7 % \changes{dutch-3.8a}{1996/10/30}{Now use \cs{LdfInit} to perform
 8 %    initial checks}
 9 %    \begin{macrocode}

10 ⟨∗code⟩

11 \LdfInit\CurrentOption{captions\CurrentOption}

When this file is read as an option, i.e. by the \usepackage command, dutch could be an ‘unknown’ language in which case we have to make it known. So we check for the existence of \l@dutch or l@afrikaans to see whether we have to do something here.

1The file described in this section has version number v3.8c, and was last revised on 1997/01/14.

2contributed by Stoffel Lombard (lombc@b31pc87.up.ac.za)

First we try to establish with which option we are being processed.

12 \def\bbl@tempa{dutch}
13 \ifx\CurrentOption\bbl@tempa

If it is dutch then we first check if the Dutch hyphenation patterns wer loaded,

14 \ifx\l@dutch\undefined

if no we issue a warning and make dutch a ‘dialect’ of either the hyphenation patterns that were loaded in slot 0 or of ‘afrikaans’ when it is available.

15  \@nopatterns{Dutch}
16  \ifx\l@afrikaans\undefined
17  \adddialect\l@dutch0
18  \else
19  \adddialect\l@dutch\l@afrikaans
20  \fi
21 \fi

The next step consists of defining commands to switch to (and from) the Dutch language.

\captionsdutch The macro \captionsdutch defines all strings used in the four standard document classes provided with L^{A}TEX.

22 \begingroup
23  \catcode`\"\active
24  \def\x{\endgroup
25  \def\captionsdutch{%
26  \def\prefacename{Voorwoord}%
27  \def\refname{Referenties}%
28  \def\abstractname{Samenvatting}%
29  \def\bibname{Bibliografie}%
30  \def\chaptername{Hoofdstuk}%
31  \def\appendixname{B"ylage}%
32  \def\contentsname{Inhoudsopgave}%
33  \def\listfigurename{L"yst van figuren}%
34  \def\listtablename{L"yst van tabellen}%
35  \def\indexname{Index}%
36  \def\figurename{Figuur}%
37  \def\tablename{Tabel}%
38  \def\partname{Deel}%
39  \def\enclname{B"ylage(n)}%
40  \def\ccname{cc}%
41  \def\headtoname{Aan}%
42  \def\pagename{Pagina}%
43  \def\seename{zie}%
44  \def\alsoname{zie ook}%
45  \def\proofname{Bew"ys}%

46 }

47  }\x

\datedutch The macro \datedutch redefines the command \today to produce Dutch dates.

48 \def\datedutch{%
49  \def\today{\number\day~\ifcase\month\or
50  januari\or februari\or maart\or april\or mei\or juni\or
51  juli\or augustus\or september\or oktober\or november\or

52  december\fi
53  \space \number\year}}

When the option with which this file is being process was not dutch we assume it was afrikaans. We perform a similar check on the availability of the hyphenation paterns.

54 \else
55 \ifx\l@afrikaans\undefined
56  \@nopatterns{Afrikaans}
57  \ifx\l@dutch\undefined
58  \adddialect\l@afrikaans0
59  \else
60  \adddialect\l@afrikaans\l@dutch
61  \fi
62 \fi

\captionsafrikaans Now is the time to define the words for ‘Afrikaans’.

63 \def\captionsafrikaans{%
64  \def\prefacename{Voorwoord}%
65  \def\refname{Verwysings}%
66  \def\abstractname{Samevatting}%
67  \def\bibname{Bibliografie}%
68  \def\chaptername{Hoofstuk}%
69  \def\appendixname{Bylae}%
70  \def\contentsname{Inhoudsopgawe}%
71  \def\listfigurename{Lys van figure}%
72  \def\listtablename{Lys van tabelle}%
73  \def\indexname{Inhoud}%
74  \def\figurename{Figuur}%
75  \def\tablename{Tabel}%
76  \def\partname{Deel}%
77  \def\enclname{Bylae(n)}%
78  \def\ccname{a.a.}%
79  \def\headtoname{Aan}%
80  \def\pagename{Bladsy}%
81  \def\seename{sien}%
82  \def\alsoname{sien ook}%
83  \def\proofname{Bewys}%

84 }

\dateafrikaans Here is the ‘Afrikaans’ version of the date macro.

85 \def\dateafrikaans{%
86  \def\today{\number\day~\ifcase\month\or
87  Januarie\or Februarie\or Maart\or April\or Mei\or Junie\or
88  Julie\or  Augustus\or September\or Oktober\or November\or
89  Desember\fi
90  \space \number\year}}
91 \fi
\extrasdutch \extrasafrikaans \noextrasdutch \noextrasafrikaans The macros \extrasdutch and \captionsafrikaans will perform all the ex-

tra definitions needed for the Dutch language. The macros \noextrasdutch and noextrasafrikaans is used to cancel the actions of \extrasdutch and

\captionsafrikaans.

For Dutch the " character is made active. This is done once, later on its definition may vary. Other languages in the same document may also use the " character for shorthands; we specify that the dutch group of shorthands should be used.

 92 \initiate@active@char{"}

Both version of the language use the same set of shorthand definitions althoug the ‘ij’ is not used in Afrikaans.

 93 \@namedef{extras\CurrentOption}{\languageshorthands{dutch}}
 94 \expandafter\addto\csname extras\CurrentOption\endcsname{%
 95 \bbl@activate{"}}

The ‘umlaut’ character should be positioned lower on all vowels in Dutch texts.

 96 \expandafter\addto\csname extras\CurrentOption\endcsname{%
 97 \umlautlow\umlautelow}
 98 \@namedef{noextras\CurrentOption}{%
 99 \umlauthigh}
\dutchhyphenmins \afrikaanshyphenmins The dutch hyphenation patterns can be used with \lefthyphenmin set to 2 and
 \righthyphenmin set to 3.
100 \def\dutchhyphenmins{\tw@\thr@@}
101 \def\afrikaanshyphenmins{\tw@\thr@@}

\@trema In the Dutch language vowels with a trema are treated specially. If a hyphenation occurs before a vowel-plus-trema, the trema should disappear. To be able to do this we could first define the hyphenation break behaviour for the five vowels, both lowercase and uppercase, in terms of \discretionary. But this results in a large \if-construct in the definition of the active ". Because we think a user should not use " when he really means something like '' we chose not to distinguish between vowels and consonants. Therefore we have one macro \@trema which specifies the hyphenation break behaviour for all letters.

102 \def\@trema#1{\allowhyphens\discretionary{-}{#1}{\"{#1}}\allowhyphens}

Now we can define the doublequote macros: the tremas,

103 \declare@shorthand{dutch}{"a}{\textormath{\@trema a}{\ddot a}}
104 \declare@shorthand{dutch}{"e}{\textormath{\@trema e}{\ddot e}}
105 \declare@shorthand{dutch}{"i}{\textormath
106 {\allowhyphens\discretionary{-}{i}{\"{\i}}\allowhyphens}%
107 {\ddot \imath}}
108 \declare@shorthand{dutch}{"o}{\textormath{\@trema o}{\ddot o}}
109 \declare@shorthand{dutch}{"u}{\textormath{\@trema u}{\ddot u}}

dutch quotes,

110 \declare@shorthand{dutch}{"`}{%
111 \textormath{\quotedblbase{}}{\mbox{\quotedblbase}}}
112 \declare@shorthand{dutch}{"'}{%
113 \textormath{\textquotedblright{}}{\mbox{\textquotedblright}}}

and some additional commands:

114 \declare@shorthand{dutch}{"-}{\allowhyphens-\allowhyphens}
115 \declare@shorthand{german}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
116 \declare@shorthand{dutch}{"|}{%
117 \textormath{\discretionary{-}{}{\kern.03em}}{}}

118 \declare@shorthand{dutch}{""}{\hskip\z@skip}
119 \declare@shorthand{dutch}{"y}{\textormath{\ij{}}{\ddot y}}
120 \declare@shorthand{dutch}{"Y}{\textormath{\IJ{}}{\ddot Y}}

\- All that is left now is the redefinition of \-. The new version of \- should indicate an extra hyphenation position, while allowing other hyphenation positions to be generated automatically. The standard behaviour of TEX in this respect is very unfortunate for languages such as Dutch and German, where long compound words are quite normal and all one needs is a means to indicate an extra hyphenation position on top of the ones that TEX can generate from the hyphenation patterns.

121 \expandafter\addto\csname extras\CurrentOption\endcsname{%
122 \babel@save\-}
123 \expandafter\addto\csname extras\CurrentOption\endcsname{%
124 \def\-{\allowhyphens\discretionary{-}{}{}\allowhyphens}}

The macro \ldf@finish takes care of looking for a configuration file, setting the main language to be switched on at \begin{document} and resetting the category code of @ to its original value.

125 \ldf@finish\CurrentOption

126 ⟨/code⟩