% \iffalse meta-comment
%
% Copyright 1989-2004 Johannes L. Braams and any individual authors
% listed elsewhere in this file.  All rights reserved.
% 
% This file is part of the Babel system.
% --------------------------------------
% 
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% 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.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
% 
% This work has the LPPL maintenance status "maintained".
% 
% The Current Maintainer of this work is Johannes Braams.
% 
% The list of all files belonging to the LaTeX base distribution is
% given in the file `manifest.bbl. See also `legal.bbl' for additional
% information.
% 
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
% \fi
% \CheckSum{172}
% \iffalse
%    Tell the \LaTeX\ system who we are and write an entry on the
%    transcript.
%<*dtx>
\ProvidesFile{finnish.dtx}
%</dtx>
%<code>\ProvidesLanguage{finnish}
%\fi
%\ProvidesFile{finnish.dtx}
        [2004/02/19 v1.3p Finnish support from the babel system]
%\iffalse
%% File `finnish.dtx'
%% Babel package for LaTeX version 2e
%% Copyright (C) 1989 - 2004
%%           by Johannes Braams, TeXniek
%
%% Please report errors to: J.L. Braams
%%                          babel at braams.cistron.nl
%
%    This file is part of the babel system, it provides the source
%    code for the Finnish language definition file.  A contribution
%    was made by Mikko KANERVA (KANERVA@CERNVM) and Keranen Reino
%    (KERANEN@CERNVM).
%<*filedriver>
\documentclass{ltxdoc}
\newcommand*\TeXhax{\TeX hax}
\newcommand*\babel{\textsf{babel}}
\newcommand*\langvar{$\langle \it lang \rangle$}
\newcommand*\note[1]{}
\newcommand*\Lopt[1]{\textsf{#1}}
\newcommand*\file[1]{\texttt{#1}}
\begin{document}
 \DocInput{finnish.dtx}
\end{document}
%</filedriver>
%\fi
%
% \GetFileInfo{finnish.dtx}
%
% \changes{finnish-1.0a}{1991/07/15}{Renamed \file{babel.sty} in
%    \file{babel.com}}
% \changes{finnish-1.1}{1991/02/15}{Brought up-to-date with babel 3.2a}
% \changes{finnish-1.2}{1994/02/27}{Update for \LaTeXe}
% \changes{finnish-1.3c}{1994/06/26}{Removed the use of \cs{filedate}
%    and moved identification after the loading of \file{babel.def}}
% \changes{finnish-1.3d}{1994/06/30}{Removed a few references to
%    \file{babel.com}}
% \changes{finnish-1.3i}{1996/10/10}{Replaced \cs{undefined} with
%    \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
%    with \LaTeX, moved the definition of \cs{atcatcode} right to the
%    beginning.}
%
%  \section{The Finnish language}
%
%    The file \file{\filename}\footnote{The file described in this
%    section has version number \fileversion\ and was last revised on
%    \filedate.  A contribution was made by Mikko KANERVA
%    (\texttt{KANERVA@CERNVM}) and Keranen Reino
%    (\texttt{KERANEN@CERNVM}).}  defines all the language definition
%    macros for the Finnish language.
%
%    For this language the character |"| is made active. In
%    table~\ref{tab:finnish-quote} an overview is given of its purpose.
%
%    \begin{table}[htb]
%     \centering
%     \begin{tabular}{lp{8cm}}
%       \verb="|= & disable ligature at this position.\\
%        |"-| & an explicit hyphen sign, allowing hyphenation
%               in the rest of the word.\\
%        |"=| & an explicit hyphen sign for expressions such as
%               ``pakastekaapit ja -arkut''.\\
%        |""| & like \verb="-=, but producing no hyphen sign (for
%              words that should break at some sign such as
%              ``entrada/salida.''\\
%        |"`| & lowered double left quotes (looks like ,,)\\
%        |"'| & normal double right quotes\\
%        |"<| & for French left double quotes (similar to $<<$).\\
%        |">| & for French right double quotes (similar to $>>$).\\
%        |\-| & like the old |\-|, but allowing hyphenation
%               in the rest of the word.
%     \end{tabular}
%     \caption{The extra definitions made by \file{finnish.ldf}}
%     \label{tab:finnish-quote}
%    \end{table}
%
% \StopEventually{}
%
%    The macro |\LdfInit| takes care of preventing that this file is
%    loaded more than once, checking the category code of the
%    \texttt{@} sign, etc.
% \changes{finnish-1.3i}{1996/11/02}{Now use \cs{LdfInit} to perform
%    initial checks} 
%    \begin{macrocode}
%<*code>
\LdfInit{finnish}\captionsfinnish
%    \end{macrocode}
%
%    When this file is read as an option, i.e. by the |\usepackage|
%    command, \texttt{finnish} will be an `unknown' language in which
%    case we have to make it known.  So we check for the existence of
%    |\l@finnish| to see whether we have to do something here.
%
% \changes{finnish-1.0b}{1991/10/29}{Removed use of \cs{@ifundefined}}
% \changes{finnish-1.1}{1992/02/15}{Added a warning when no hyphenation
%    patterns were loaded.}
% \changes{finnish-1.3c}{1994/06/26}{Now use \cs{@nopatterns} to
%    produce the warning}
%    \begin{macrocode}
\ifx\l@finnish\@undefined
    \@nopatterns{Finnish}
    \adddialect\l@finnish0\fi
%    \end{macrocode}
%
%    The next step consists of defining commands to switch to the
%    Finnish language. The reason for this is that a user might want
%    to switch back and forth between languages.
%
% \begin{macro}{\captionsfinnish}
%    The macro |\captionsfinnish| defines all strings used in the four
%    standard documentclasses provided with \LaTeX.
% \changes{finnish-1.1}{1992/02/15}{Added \cs{seename}, \cs{alsoname}
%    and \cs{prefacename}}
% \changes{finnish-1.1}{1993/07/15}{\cs{headpagename} should be
%    \cs{pagename}}
% \changes{finnish-1.1.2}{1993/09/16}{Added translations}
% \changes{finnish-1.3g}{1995/07/02}{Added \cs{proofname} for
%    AMS-\LaTeX}
% \changes{finnish-1.3h}{1995/07/25}{Added finnish word for `Proof'}
% \changes{finnish-1.3n}{2000/09/19}{Added \cs{glossaryname}}
% \changes{finnish-1.3o}{2001/03/12}{Provided translation for
%    Glossary}
%    \begin{macrocode}
\addto\captionsfinnish{%
  \def\prefacename{Esipuhe}%
  \def\refname{Viitteet}%
  \def\abstractname{Tiivistelm\"a}
  \def\bibname{Kirjallisuutta}%
  \def\chaptername{Luku}%
  \def\appendixname{Liite}%
  \def\contentsname{Sis\"alt\"o}%   /* Could be "Sis\"allys" as well */
  \def\listfigurename{Kuvat}%
  \def\listtablename{Taulukot}%
  \def\indexname{Hakemisto}%
  \def\figurename{Kuva}%
  \def\tablename{Taulukko}%
  \def\partname{Osa}%
  \def\enclname{Liitteet}%
  \def\ccname{Jakelu}%
  \def\headtoname{Vastaanottaja}%
  \def\pagename{Sivu}%
  \def\seename{katso}%
  \def\alsoname{katso my\"os}%
  \def\proofname{Todistus}%
  \def\glossaryname{Sanasto}%
  }%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\datefinnish}
%    The macro |\datefinnish| redefines the command |\today| to
%    produce Finnish dates.
% \changes{finnish-1.3e}{1994/07/12}{Added a`.' after the number of
%    the day}
% \changes{finnish-1.3k}{1997/10/01}{Use \cs{edef} to define \cs{today}
%    to save memory}
% \changes{finnish-1.3k}{1998/03/28}{use \cs{def} instead of \cs{edef}}
%    \begin{macrocode}
\def\datefinnish{%
  \def\today{\number\day.~\ifcase\month\or
    tammikuuta\or helmikuuta\or maaliskuuta\or huhtikuuta\or
    toukokuuta\or kes\"akuuta\or hein\"akuuta\or elokuuta\or
    syyskuuta\or lokakuuta\or marraskuuta\or joulukuuta\fi
    \space\number\year}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\extrasfinnish}
% \begin{macro}{\noextrasfinnish}
%    Finnish has many long words (some of them compound, some not).
%    For this reason hyphenation is very often the only solution in
%    line breaking. For this reason the values of |\hyphenpenalty|,
%    |\exhyphenpenalty| and |\doublehyphendemerits| should be
%    decreased. (In one of the manuals of style Matti Rintala noticed
%    a paragraph with ten lines, eight of which ended in a hyphen!)
%
%    Matti Rintala noticed that with these changes \TeX\ handles
%    Finnish very well, although sometimes the values of |\tolerance|
%    and |\emergencystretch| must be increased. However, I don't think
%    changing these values in \file{finnish.ldf} is appropriate, as
%    the looseness of the font (and the line width) affect the correct
%    choice of these parameters.
% \changes{finnish-1.3f}{1995/05/13}{Added the setting of more
%    hyphenation parameters, according to PR1027}
%    \begin{macrocode}
\addto\extrasfinnish{%
  \babel@savevariable\hyphenpenalty\hyphenpenalty=30%
  \babel@savevariable\exhyphenpenalty\exhyphenpenalty=30%
  \babel@savevariable\doublehyphendemerits\doublehyphendemerits=5000%
  \babel@savevariable\finalhyphendemerits\finalhyphendemerits=5000%
  }
\addto\noextrasfinnish{}
%    \end{macrocode}
%
%    Another thing |\extrasfinnish| needs to do is to ensure that
%    |\frenchspacing| is in effect.  If this is not the case the
%    execution of |\noextrasfinnish| will switch it of again.
% \changes{finnish-1.3f}{1995/05/15}{Added the setting of
%    \cs{frenchspacing}}
%    \begin{macrocode}
\addto\extrasfinnish{\bbl@frenchspacing}
\addto\noextrasfinnish{\bbl@nonfrenchspacing}
%    \end{macrocode}
%
%    For Finnish the \texttt{"} character is made active. This is
%    done once, later on its definition may vary. Other languages in
%    the same document may also use the \texttt{"} character for
%    shorthands; we specify that the finnish group of shorthands
%    should be used.
% \changes{finnish-1.3g}{1995/07/02}{Added the active double quote}
%    \begin{macrocode}
\initiate@active@char{"}
\addto\extrasfinnish{\languageshorthands{finnish}}
%    \end{macrocode}
%    Don't forget to turn the shorthands off again.
% \changes{finnish-1.3n}{1999/12/16}{Deactive shorthands ouside of Finnish}
%    \begin{macrocode}
\addto\extrasfinnish{\bbl@activate{"}}
\addto\noextrasfinnish{\bbl@deactivate{"}}
%    \end{macrocode}
%
%
%    The `umlaut' character should be positioned lower on \emph{all}
%    vowels in Finnish texts.
%    \begin{macrocode}
\addto\extrasfinnish{\umlautlow\umlautelow}
\addto\noextrasfinnish{\umlauthigh}
%    \end{macrocode}
%
%    First we define access to the low opening double quote and
%    guillemets for quotations,
% \changes{finnish-1.3k}{1997/04/03}{Removed empty groups after
%    double quote and guillemot characters}
% \changes{finnish-1.3m}{1999/04/13}{Added misisng closing brace}
%    \begin{macrocode}
\declare@shorthand{finnish}{"`}{%
  \textormath{\quotedblbase}{\mbox{\quotedblbase}}}
\declare@shorthand{finnish}{"'}{%
  \textormath{\textquotedblright}{\mbox{\textquotedblright}}}
\declare@shorthand{finnish}{"<}{%
  \textormath{\guillemotleft}{\mbox{\guillemotleft}}}
\declare@shorthand{finnish}{">}{%
  \textormath{\guillemotright}{\mbox{\guillemotright}}}
%    \end{macrocode}
%    then we define two shorthands to be able to specify hyphenation
%    breakpoints that behave a little different from |\-|.
% \changes{finnish-1.3p}{2001/11/13}{\texttt{"=} should also use
%    \cs{bbl@allowhyphens}}
%    \begin{macrocode}
\declare@shorthand{finnish}{"-}{\nobreak-\bbl@allowhyphens}
\declare@shorthand{finnish}{""}{\hskip\z@skip}
\declare@shorthand{finnish}{"=}{\hbox{-}\bbl@allowhyphens}
%    \end{macrocode}
%    And we want to have a shorthand for disabling a ligature.
%    \begin{macrocode}
\declare@shorthand{finnish}{"|}{%
  \textormath{\discretionary{-}{}{\kern.03em}}{}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
%  \begin{macro}{\-}
%
%    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, Finnish 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.
% \changes{finnish-1.3g}{1995/07/02}{Added change of \cs{-}}
% \changes{finnish-1.3n}{2000/09/19}{\cs{allowhyphens} should have
%    been \cs{bbl@allowhyphens}}
%    \begin{macrocode}
\addto\extrasfinnish{\babel@save\-}
\addto\extrasfinnish{\def\-{\bbl@allowhyphens
                          \discretionary{-}{}{}\bbl@allowhyphens}}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\finishhyphenmins}
%    The finnish hyphenation patterns can be used with |\lefthyphenmin|
%    set to~2 and |\righthyphenmin| set to~2.
% \changes{finnish-1.3f}{1995/05/13}{use \cs{finnishhyphenmins} to
%    store the correct values}
% \changes{finnish-1.3n}{2000/09/22}{Now use \cs{providehyphenmins} to
%    provide a default value}
%    \begin{macrocode}
\providehyphenmins{\CurrentOption}{\tw@\tw@}
%    \end{macrocode}
%  \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.
% \changes{finnish-1.3i}{1996/11/02}{Now use \cs{ldf@finish} to wrap up}
%    \begin{macrocode}
\ldf@finish{finnish}
%</code>
%    \end{macrocode}
%
% \Finale
%%
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%
\endinput

