summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/babel-contrib/friulan/friulan.dtx
blob: a1b4423510699a11917a4f65335634ee77432367 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
% \iffalse meta-comment
%<*internal>
\begingroup
\input docstrip.tex
\keepsilent

\preamble
  ------------------------------------------------------------------
  The friulan module for babel
  Copyright (C) 2012-2016 Claudio Beccari
  All rights reserved
  
  Licence information appended

  Created by Claudio Beccari claudio dot beccari at gmail dot com 
  
  
\endpreamble
\postamble
Distributable under the LaTeX Project Public License,
version 1.3c or higher (your choice). The latest version of
this license is at: http://www.latex-project.org/lppl.txt

This work is "author-maintained"
The maintainer is Claudio Beccari

\endpostamble

\askforoverwritefalse

\generate{\file{friulan.ldf}{\from{friulan.dtx}{code}}}

\def\tmpa{plain}
\ifx\tmpa\fmtname\endgroup\expandafter\bye\fi
\endgroup
%</internal>
%
% \fi
% \CheckSum{156}
% \iffalse
%    Tell the \LaTeX\ system who we are and write an entry on the
%    transcript.
%<*dtx>
\ProvidesFile{friulan.dtx}
%</dtx>
%<code>\ProvidesLanguage{friulan}
%\fi
%\ProvidesFile{friulan.dtx}
        [2016/02/23 v.1.3 friulan support for the babel system]
%\iffalse
%<*filedriver>
\documentclass{ltxdoc}
\newcommand*{\TeXhax}{\TeX hax}
\newcommand*{\babel}{\textsf{babel}}
\newcommand*{\langvar}{$\langle \mathit lang \rangle$}
\newcommand*{\note}[1]{}
\newcommand*{\Lopt}[1]{\textsf{#1}}
\newcommand*{\file}[1]{\texttt{#1}}
\makeatletter\let\gobbletwo\@gobbletwo\makeatother
\author{Claudio Beccari --- \texttt{claudio dot beccari at gmail dot com}}
\title{The Friulan language module for \babel}
\date{\filedate\ -- version \expandafter\gobbletwo\fileversion}
\begin{document}
 \DocInput{friulan.dtx}
\end{document}
%</filedriver>
%\fi
% \GetFileInfo{friulan.dtx}
%\maketitle
%
%  \section{The Friulan language}
%
%    The file \file{\filename} defines all the language definition macros for the
%    Friulan language. It is worth noting that in English 
%    ``Friulan'' is the name of the language, and ``Friulian'' is the
%    adjective concerning everything has to do with the Friuli Region 
%    in North Eastern Italy.
%
%    This revised version of the Friulan documentation corrects some infix words
%    that were hardcoded with an implied \Lopt{utf8} input encoding option to the 
%    overall document, this  making it impossible to typeset documents with some 
%    other traditional input encoding options such as \Lopt{latin1}, \Lopt{latin9}, 
%    \Lopt{ansinew}, etc.
%
%    Moreover if the hyphenation patterns are not available or are not loaded 
%    into the format file, so that |l@friulan| is undefined, then this module 
%    uses the patterns for Italian, instead of those for English, even if the 
%    latter are always available by default, while the former might not be 
%    available at all. If they are, they might not produce completely correct 
%    hyphenated line breaks, but at least they are less improbable than using 
%    English patterns. At the same time we avoid using the |nohyphenation| 
%    language, even of some people prefer avoid hyphenation rather than risking 
%    to have a few wrong line breaks.
%
% \StopEventually{}
% \section{The code}
%    The macro |\LdfInit| takes care of preventing that this file is
%    loaded more than once, checking the category code of the
%    \texttt{@} sign, etc. |\CurrentOption| is actually the name of 
%    language that was specified as an option in the call to \babel.
%    \begin{macrocode}
%<*code>
\LdfInit{\CurrentOption}{captions\CurrentOption}
%    \end{macrocode}
%
%    When this file is read as an option, i.e. by the |\usepackage|
%    command, \texttt{friulan} could be an `unknown' language in
%    which case we have to make it known.  So we check for the
%    existence of |\l@friulan| to see whether we have to do
%    something here. Since the name could be its alias |furlan|
%    we must check that either name is known to \babel. In case it
%    was undefined, we re-establish a meaning for the macros made up
%    with |\CurrentOption|.
%
%    \begin{macrocode}
\ifx\l@friulan\@undefined
  \ifx\l@furlan\@undefined
    \@nopatterns{friulan}
    \unless\ifx\l@italian\@undefined
      \adddialect\l@friulan \l@italian
    \fi
  \else
    \let\l@friulan\l@furlan
  \fi
\fi
\expandafter\ifx\csname l@\CurrentOption\endcsname\relax
  \expandafter\let\csname l@\CurrentOption\endcsname\l@friulan
\fi
%    \end{macrocode}
%    For the <Dialect> version of these definitions we just add a
%    ``dialect''. Also, the macros |\captions<dialect>| and
%    |\extras<dialect>| are |\let| to their \texttt{friulan}
%    counterparts when these parts are defined.
%    \begin{macrocode}
\adddialect\l@furlan\l@friulan
%    \end{macrocode}
%    The next step consists of defining commands to switch to (and
%    from) the Friulan language.
%
%
%  \begin{macro}{\friulanhyphenmins}
%    This macro is used to store the correct values of the hyphenation
%    parameters |\lefthyphenmin| and |\righthyphenmin|.
%    \begin{macrocode}
\providehyphenmins{\CurrentOption}{\tw@\tw@}
%    \end{macrocode}
%  \end{macro}
%
% \begin{macro}{\captionsfriulan}
%    The macro |\captionsfriulan| defines all strings used in the
%    four standard documentclasses provided with \LaTeX.
%    \begin{macrocode}
\@namedef{captions\CurrentOption}{%
    \def\prefacename{Prefazion}%
    \def\refname{Riferiments}%
    \def\abstractname{Somari}%
    \def\bibname{Bibliografie}%
    \def\chaptername{Cjapitul}%
    \def\appendixname{Zonte}%
    \def\contentsname{Tabele gjener\^al}%
    \def\listfigurename{Liste des figuris}%
    \def\listtablename{Liste des tabelis}%
    \def\indexname{Tabele analitiche}%
    \def\figurename{Figure}%
    \def\tablename{Tabele}%
    \def\partname{Part}%
    \def\enclname{Zonte(is)}%
    \def\ccname{Cun copie a}%
    \def\headtoname{Par}%
    \def\pagename{Pagjine}%
    \def\seename{cjale}%
    \def\alsoname{cjale ancje}%
    \def\proofname{Dimostrazion}%
    \def\glossaryname{Glossari}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\datefriulan}
%    The macro |\datefriulan| redefines the command |\today| to
%    produce friulan dates.
%    \begin{macrocode}
\@namedef{date\CurrentOption}{%
    \def\today{\number\day\space di\space\ifcase\month\or
      Gen\^ar\or Fevr\^ar\or Mar\c{c}\or Avril\or Mai\or Jugn\or
      Lui\or Avost\or Setembar\or Otobar\or Novembar\or Dicembar%
      \fi\space dal\space\number\year}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\extrasfriulan}
% \begin{macro}{\noextrasfriulan}
%    The macro |\extrasfriulan| will perform all the extra
%    definitions needed for the friulan language. The macro
%    |\noextrasfriulan| is used to cancel the actions of
%    |\extrasfriulan|. In particular we set pretty high
%    default values for widow and club lines and very high
%    demerits to avoid that the paragraph last line starts with the
%    second half of a hyphenated word. We also assign a non zero
%    value |\lccode| to the apostrophe that in Friulan is being
%    used for marking a vocalic elision; by giving it a non 
%    zero value; the hyphenation algorithm treats the phrase formed
%    by the article or articulated preposition and the following
%    term as a single word and the patterns for Friulan take care
%    of avoiding line breaks right after the apostrophe.
%
%    \begin{macrocode}
\expandafter\addto\csname extras\CurrentOption\endcsname{%
  \babel@savevariable\clubpenalty
  \babel@savevariable\widowpenalty
  \babel@savevariable\@clubpenalty
  \clubpenalty3000\widowpenalty3000\@clubpenalty\clubpenalty}%
\expandafter\addto\csname extras\CurrentOption\endcsname{%
  \babel@savevariable\finalhyphendemerits
  \finalhyphendemerits50000000}%
\expandafter\addto\csname extras\CurrentOption\endcsname{%
  \lccode`'=`'}%
\expandafter\addto\csname noextras\CurrentOption\endcsname{%
  \lccode`'=0}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
%
%    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
%    \texttt{@} to its original value.
%    \begin{macrocode}
\ldf@finish\CurrentOption
%</code>
%    \end{macrocode}
%
% \Finale
%\endinput