Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: intikka - 26.08.18 - klo:00.26

Otsikko: Xubuntu 18.04, TeXLive, XeLaTeX ja sanojen tavutus
Kirjoitti: intikka - 26.08.18 - klo:00.26
Uusimmassa Xubuntussa TeXLive/XeLaTeX osaa tavuttaa sanat, joissa on
yhdysviiva, vain sen kohdalta, 16.04:ssä myös muualta. Miten sen
toiminnon saa takaisin?

Joo, tiedän, että tavutuksen voi määritellä komennolla \-
esim. ko\-ko\nais\-pin\ta-\-ala, mutta aiemmin se toimi
autoaagisesti.
Otsikko: Vs: Xubuntu 18.04, TeXLive, XeLaTeX ja sanojen tavutus
Kirjoitti: SuperOscar - 26.08.18 - klo:12.37
Onko todella *buntu 16.04:ssä TeXin suomenkielinen tavutus siis toiminut niin, että myös yhdysmerkilliset sanat on tavutettu? En ole *buntuja hetkeen käyttänyt työkäyttöön, joten en tiedä.

TeX itsessäänhän määrittelee niin, että tällaisia sanoja ei rivitetä kuin (kovan) yhdysmerkin kohdalta, koska (a) se on englannin typografisten sääntöjen mukaista ja koska (b) Donald Knuth niin päätti.

Pikaisella haulla löysin pari englanninkielistä keskustelua aiheesta.

Ensimmäinen ratkaisu, joka ilmeisesti toimii vain pdflatexissa, ei kokeiluni perusteella XeLaTeXissa, on määritellä:

Koodia: [Valitse]
\hyphenchar\font=\string"7F
XeLaTeXissa tuo merkki 0x7F tuottaa vain ”rastineliön”, mutta ehkä tämäkin ratkaisu toimisi oikealla merkkikoodilla. Ratkaisu esitettiin tässä keskustelussa:

https://tex.stackexchange.com/questions/63232/why-can-words-with-hyphen-char-not-be-hyphenated

Toinen yleisesti käytetty vaihtoehto tuntuu olevan ladata ylimääräinen paketti, joko extdash tai hyphenat, ja kirjoittaa kova yhdysmerkki tekstiin jollakin muulla tapaa (esim. ”kokonaispinta\hyp ala”). Tätä ratkaisua suosittiin tässä keskustelussa:

https://stackoverflow.com/questions/2193307/how-do-i-get-latex-to-hyphenate-a-word-that-contains-a-dash

Itse olen tyytynyt vain ajamaan TeXin (yleensä \sloppy-komentoa käyttäen) ja korjaamaan tavuttamattomat yhdysmerkilliset sanat erikseen pehmein tavutusvihjein (\-) yksi kerrallaan.
Otsikko: Vs: Xubuntu 18.04, TeXLive, XeLaTeX ja sanojen tavutus
Kirjoitti: intikka - 27.08.18 - klo:10.35
Lainaus
Onko todella *buntu 16.04:ssä TeXin suomenkielinen tavutus siis toiminut niin, että myös yhdysmerkilliset sanat on tavutettu?

Niin minä muistelin sillloin, kun kirjoitin viestini, mutta ehkä minulle ei vain ole sattunut tavutettavaksi yhdysmerkillistä sanaa.  8)
Otsikko: Vs: Xubuntu 18.04, TeXLive, XeLaTeX ja sanojen tavutus
Kirjoitti: SuperOscar - 27.08.18 - klo:16.51
Tuli taas tänään tekstiä kirjoitellessa tämä ongelma itsellekin vastaan. Huomasin hyväksi puoleksi sen, että yksikin tavutusvihje riittää kertomaan TeXille, että sanaa saa tavuttaa – siis muualtakin kuin kovan yhdysmerkin tai tämän malliksi annetun tavutusvihjeen kohdalta.

Toinen yhdysmerkkeihin liittyvä ongelma muuten kohtaa niitä, jotka XeLaTeXin myötä siirtyvät Babelin käytöstä Polyglossiaan. Jälkimmäisessä ei ilmeisesti ole joitakin Babelille ominaisia erikoismerkintöjä.

Esimerkiksi jos tekstissä on näin:

Koodia: [Valitse]
sananalkuinen ja -loppuinen
…tuo saatetaan rivittää yhdysmerkin kohdalta, jolloin rivin loppuun jää yksinäinen ”tavuviiva” ja kaikki muu siirtyy seuraavalle riville, koska TeX pitää yhdysmerkkiä aina rivityskohtana riippumatta siitä, onko sen edellä mitään. Babelissa piti vain kirjoittaa näin:

Koodia: [Valitse]
sananalkuinen ja "-loppuinen
…mutta Polyglossiassapa tuo ei enää toimi.

Muoks: Korjattu nolo kirjoitusvirhe ;)
Otsikko: Vs: Xubuntu 18.04, TeXLive, XeLaTeX ja sanojen tavutus
Kirjoitti: intikka - 28.08.18 - klo:07.25
Lainaus
Babelissa piti vain kirjoittaa näin:

sananalkuinen ja "-loppuinen

Niin, ja Babelissa tavuviivalliset sanat sai muistaakseni tavutetuksi näin:

kokonaispinta"=ala (vai oliko se näin: kokonaispinta"-ala)?
Otsikko: Vs: Xubuntu 18.04, TeXLive, XeLaTeX ja sanojen tavutus
Kirjoitti: SuperOscar - 28.08.18 - klo:09.53
Itse asiassa nyt kun muistutit: huomasin joskus Polyglossian ohjeista, että saksassa on mahdollista ottaa Babel-apukomennot käyttöön käyttämällä babelshorthands-valintaa pakettia ladattaessa.

Asia mainitaan s. 10 Polyglossia-dokkarissa, joka ainakin tältä openSUSE-koneelta löytyy kansiosta /usr/share/texmf/doc/latex/polyglossia.

Itse ”oikotiet” taas määritellään saksan osalta tiedostossa /usr/share/texmf/tex/latex/polyglossia/gloss-german.ldf näin:

Koodia: [Valitse]
  \declare@shorthand{german}{"-}{\nobreak\-\nobreak\hskip\z@skip}%
  \declare@shorthand{german}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}%
  \declare@shorthand{german}{""}{\hskip\z@skip}%
  \declare@shorthand{german}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
  \declare@shorthand{german}{"=}{\penalty\@M-\hskip\z@skip}%

Luultavasti nyt ei tarvitsisi kuin keksiä keino napata nuo oikealla tavalla tuosta suomen määrittelytiedostoon gloss-finnish.ldf, ja homma olisi sillä selvä. Viime kerralla jaksoin hetken kokeilla, mutten saanut toimimaan – löytyisikö etevämpiä TeX-tuntijoita jostakin? ::)
Otsikko: Vs: Xubuntu 18.04, TeXLive, XeLaTeX ja sanojen tavutus
Kirjoitti: intikka - 28.08.18 - klo:19.22
Lainaus
Luultavasti nyt ei tarvitsisi kuin keksiä keino napata nuo oikealla tavalla tuosta suomen määrittelytiedostoon gloss-finnish.ldf, ja homma olisi sillä selvä.

Kiitos vihjeestä. Tuntuu toimivan. Kysyin Polyglossian ylläpitäjältä GitHubissa haluaako se päivitetyn tiedoston gloss-finnish.ldf.
Otsikko: Vs: Xubuntu 18.04, TeXLive, XeLaTeX ja sanojen tavutus
Kirjoitti: SuperOscar - 28.08.18 - klo:19.27
Kiitos vihjeestä. Tuntuu toimivan. Kysyin Polyglossian ylläpitäjältä GitHubissa haluaako se päivitetyn tiedoston gloss-finnish.ldf.

Heittäisitkö minullekin? Voisin koeajaa ;D
Otsikko: Vs: Xubuntu 18.04, TeXLive, XeLaTeX ja sanojen tavutus
Kirjoitti: intikka - 29.08.18 - klo:19.01
Ennen koeajoa on syytä kopioida alkuperäinen tiedostoturvalliseen paikkaan  :)

Koodia: [Valitse]
\ProvidesFile{gloss-finnish.ldf}[polyglossia: module for finnish]
\PolyglossiaSetup{finnish}{
  hyphennames={finnish},
  hyphenmins={2,2},\documentclass[a4paper,12pt]{article}
\usepackage[babelshorthands]{polyglossia}
\setdefaultlanguage[babelshorthands=true]{finnish}
\hyphenrules{finnish}
\begin{document}
xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx
kokonaispinta"-ala.
\end{document}

  frenchspacing=true,
  fontsetup=true,
}


\define@boolkey{finnish}[finnish@]{babelshorthands}[true]{}
\ifsystem@babelshorthands
  \setkeys{finnish}{babelshorthands=true}
\else
  \setkeys{finnish}{babelshorthands=false}
\fi
\ifcsundef{initiate@active@char}{%
\input{babelsh.def}%
\initiate@active@char{"}%
}{}

\def\finnish@shorthands{%
  \bbl@activate{"}%
  \def\language@group{finnish}%
  \declare@shorthand{finnish}{"-}{\nobreak-\bbl@allowhyphens}
  \declare@shorthand{finnish}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}%
  \declare@shorthand{finnish}{""}{\hskip\z@skip}%
  \declare@shorthand{finnish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
  \declare@shorthand{finnish}{"=}{\penalty\@M-\hskip\z@skip}%
}

\def\nofinnish@shorthands{%
  \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}%
}


\def\captionsfinnish{%
   \def\refname{Viitteet}%
   \def\abstractname{Tiivistelmä}%
   \def\bibname{Kirjallisuutta}%
   \def\prefacename{Esipuhe}%
   \def\chaptername{Luku}%
   \def\appendixname{Liite}%
   \def\contentsname{Sisältö}%
   \def\listfigurename{Kuvat}%
   \def\listtablename{Taulukot}%
   \def\indexname{Hakemisto}%
   \def\figurename{Kuva}%
   \def\tablename{Taulukko}%
   %\def\thepart{}%
   \def\partname{Osa}%
   \def\pagename{Sivu}%
   \def\seename{katso}%
   \def\alsoname{katso myös}%
   \def\enclname{Liitteet}%
   \def\ccname{Jakelu}%
   \def\headtoname{Vastaanottaja}%
   \def\proofname{Todistus}%
   \def\glossaryname{Sanasto}%
   }
\def\datefinnish{%
   \def\today{\number\day.~\ifcase\month\or
    tammikuuta\or helmikuuta\or maaliskuuta\or huhtikuuta\or
    toukokuuta\or kesäkuuta\or heinäkuuta\or elokuuta\or
    syyskuuta\or lokakuuta\or marraskuuta\or joulukuuta\fi
    \space\number\year}}

\def\noextras@finnish{%
  \nofinnish@shorthands%
}

\def\blockextras@finnish{%
  \iffinnish@babelshorthands\finnish@shorthands\fi%
}

\def\inlineextras@finnish{%
  \iffinnish@babelshorthands\finnish@shorthands\fi%
}

\endinput

% TODO ? this is set in babel:
\gappto\blockextrasfinnish{%
  \babel@savevariable\hyphenpenalty\hyphenpenalty=30%
  \babel@savevariable\exhyphenpenalty\exhyphenpenalty=30%
  \babel@savevariable\doublehyphendemerits\doublehyphendemerits=5000%
  \babel@savevariable\finalhyphendemerits\finalhyphendemerits=5000%
  }
$ cat /media/hannu/KINGSTON/koe.tex
\documentclass[a4paper,12pt]{article}
\usepackage[babelshorthands]{polyglossia}
\setdefaultlanguage[babelshorthands=true]{finnish}
\hyphenrules{finnish}
\begin{document}
xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx
kokonaispinta"-ala.
\end{document}
$ cat /media/hannu/KINGSTON/gloss-finnish.ldf
\ProvidesFile{gloss-finnish.ldf}[polyglossia: module for finnish]
\PolyglossiaSetup{finnish}{
  hyphennames={finnish},
  hyphenmins={2,2},
  frenchspacing=true,
  fontsetup=true,
}


\define@boolkey{finnish}[finnish@]{babelshorthands}[true]{}
\ifsystem@babelshorthands
  \setkeys{finnish}{babelshorthands=true}
\else
  \setkeys{finnish}{babelshorthands=false}
\fi
\ifcsundef{initiate@active@char}{%
\input{babelsh.def}%
\initiate@active@char{"}%
}{}

\def\finnish@shorthands{%
  \bbl@activate{"}%
  \def\language@group{finnish}%
  \declare@shorthand{finnish}{"-}{\nobreak-\bbl@allowhyphens}
  \declare@shorthand{finnish}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}%
  \declare@shorthand{finnish}{""}{\hskip\z@skip}%
  \declare@shorthand{finnish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
  \declare@shorthand{finnish}{"=}{\penalty\@M-\hskip\z@skip}%
}

\def\nofinnish@shorthands{%
  \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}%
}


\def\captionsfinnish{%
   \def\refname{Viitteet}%
   \def\abstractname{Tiivistelmä}%
   \def\bibname{Kirjallisuutta}%
   \def\prefacename{Esipuhe}%
   \def\chaptername{Luku}%
   \def\appendixname{Liite}%
   \def\contentsname{Sisältö}%
   \def\listfigurename{Kuvat}%
   \def\listtablename{Taulukot}%
   \def\indexname{Hakemisto}%
   \def\figurename{Kuva}%
   \def\tablename{Taulukko}%
   %\def\thepart{}%
   \def\partname{Osa}%
   \def\pagename{Sivu}%
   \def\seename{katso}%
   \def\alsoname{katso myös}%
   \def\enclname{Liitteet}%
   \def\ccname{Jakelu}%
   \def\headtoname{Vastaanottaja}%
   \def\proofname{Todistus}%
   \def\glossaryname{Sanasto}%
   }
\def\datefinnish{%
   \def\today{\number\day.~\ifcase\month\or
    tammikuuta\or helmikuuta\or maaliskuuta\or huhtikuuta\or
    toukokuuta\or kesäkuuta\or heinäkuuta\or elokuuta\or
    syyskuuta\or lokakuuta\or marraskuuta\or joulukuuta\fi
    \space\number\year}}

\def\noextras@finnish{%
  \nofinnish@shorthands%
}

\def\blockextras@finnish{%
  \iffinnish@babelshorthands\finnish@shorthands\fi%
}

\def\inlineextras@finnish{%
  \iffinnish@babelshorthands\finnish@shorthands\fi%
}

\endinput

% TODO ? this is set in babel:
\gappto\blockextrasfinnish{%
  \babel@savevariable\hyphenpenalty\hyphenpenalty=30%
  \babel@savevariable\exhyphenpenalty\exhyphenpenalty=30%
  \babel@savevariable\doublehyphendemerits\doublehyphendemerits=5000%
  \babel@savevariable\finalhyphendemerits\finalhyphendemerits=5000%
  }

Ja esimerkki:

Koodia: [Valitse]
\documentclass[a4paper,12pt]{article}
\usepackage[babelshorthands]{polyglossia}
\setdefaultlanguage[babelshorthands=true]{finnish}
\hyphenrules{finnish}
\begin{document}
xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx
kokonaispinta"-ala.
\end{document}
Otsikko: Vs: Xubuntu 18.04, TeXLive, XeLaTeX ja sanojen tavutus
Kirjoitti: SuperOscar - 30.08.18 - klo:10.06
Ennen koeajoa on syytä kopioida alkuperäinen tiedostoturvalliseen paikkaan  :)

Ilman muuta :) Kuten sanottu, olen itsekin yrittänyt joskus saada vastaavan aikaan, mutta jotakin meni pieleen eikä homma toiminut. (Muistaakseni pääsin pisteeseen, jossa babelshorthands-valinta ei enää aiheuttanut virheilmoitusta, mutta mitään vaikutusta sen asettamisella ei ollut.)

Muoks: Heps! Luultavasti jonkin onnettomasti päättyneen leikepöytätoimenpiteen seurauksena ylempi koodinpätkäsi sisältää nyt myös alemman keskellä koodia.

gloss-finnish.ldf:n tarkoitettu sisältö lienee tämä:

Koodia: [Valitse]
\ProvidesFile{gloss-finnish.ldf}[polyglossia: module for finnish]
\PolyglossiaSetup{finnish}{
  hyphennames={finnish},
  hyphenmins={2,2},
  frenchspacing=true,
  fontsetup=true,
}


\define@boolkey{finnish}[finnish@]{babelshorthands}[true]{}
\ifsystem@babelshorthands
  \setkeys{finnish}{babelshorthands=true}
\else
  \setkeys{finnish}{babelshorthands=false}
\fi
\ifcsundef{initiate@active@char}{%
\input{babelsh.def}%
\initiate@active@char{"}%
}{}

\def\finnish@shorthands{%
  \bbl@activate{"}%
  \def\language@group{finnish}%
  \declare@shorthand{finnish}{"-}{\nobreak-\bbl@allowhyphens}
  \declare@shorthand{finnish}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}%
  \declare@shorthand{finnish}{""}{\hskip\z@skip}%
  \declare@shorthand{finnish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
  \declare@shorthand{finnish}{"=}{\penalty\@M-\hskip\z@skip}%
}

\def\nofinnish@shorthands{%
  \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}%
}


\def\captionsfinnish{%
   \def\refname{Viitteet}%
   \def\abstractname{Tiivistelmä}%
   \def\bibname{Kirjallisuutta}%
   \def\prefacename{Esipuhe}%
   \def\chaptername{Luku}%
   \def\appendixname{Liite}%
   \def\contentsname{Sisältö}%
   \def\listfigurename{Kuvat}%
   \def\listtablename{Taulukot}%
   \def\indexname{Hakemisto}%
   \def\figurename{Kuva}%
   \def\tablename{Taulukko}%
   %\def\thepart{}%
   \def\partname{Osa}%
   \def\pagename{Sivu}%
   \def\seename{katso}%
   \def\alsoname{katso myös}%
   \def\enclname{Liitteet}%
   \def\ccname{Jakelu}%
   \def\headtoname{Vastaanottaja}%
   \def\proofname{Todistus}%
   \def\glossaryname{Sanasto}%
   }
\def\datefinnish{%
   \def\today{\number\day.~\ifcase\month\or
    tammikuuta\or helmikuuta\or maaliskuuta\or huhtikuuta\or
    toukokuuta\or kesäkuuta\or heinäkuuta\or elokuuta\or
    syyskuuta\or lokakuuta\or marraskuuta\or joulukuuta\fi
    \space\number\year}}

\def\noextras@finnish{%
  \nofinnish@shorthands%
}

\def\blockextras@finnish{%
  \iffinnish@babelshorthands\finnish@shorthands\fi%
}

\def\inlineextras@finnish{%
  \iffinnish@babelshorthands\finnish@shorthands\fi%
}

\endinput

% TODO ? this is set in babel:
\gappto\blockextrasfinnish{%
  \babel@savevariable\hyphenpenalty\hyphenpenalty=30%
  \babel@savevariable\exhyphenpenalty\exhyphenpenalty=30%
  \babel@savevariable\doublehyphendemerits\doublehyphendemerits=5000%
  \babel@savevariable\finalhyphendemerits\finalhyphendemerits=5000%
  }
$ cat /media/hannu/KINGSTON/koe.tex
\documentclass[a4paper,12pt]{article}
\usepackage[babelshorthands]{polyglossia}
\setdefaultlanguage[babelshorthands=true]{finnish}
\hyphenrules{finnish}
\begin{document}
xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx
kokonaispinta"-ala.
\end{document}
$ cat /media/hannu/KINGSTON/gloss-finnish.ldf
\ProvidesFile{gloss-finnish.ldf}[polyglossia: module for finnish]
\PolyglossiaSetup{finnish}{
  hyphennames={finnish},
  hyphenmins={2,2},
  frenchspacing=true,
  fontsetup=true,
}


\define@boolkey{finnish}[finnish@]{babelshorthands}[true]{}
\ifsystem@babelshorthands
  \setkeys{finnish}{babelshorthands=true}
\else
  \setkeys{finnish}{babelshorthands=false}
\fi
\ifcsundef{initiate@active@char}{%
\input{babelsh.def}%
\initiate@active@char{"}%
}{}

\def\finnish@shorthands{%
  \bbl@activate{"}%
  \def\language@group{finnish}%
  \declare@shorthand{finnish}{"-}{\nobreak-\bbl@allowhyphens}
  \declare@shorthand{finnish}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}%
  \declare@shorthand{finnish}{""}{\hskip\z@skip}%
  \declare@shorthand{finnish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
  \declare@shorthand{finnish}{"=}{\penalty\@M-\hskip\z@skip}%
}

\def\nofinnish@shorthands{%
  \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}%
}


\def\captionsfinnish{%
   \def\refname{Viitteet}%
   \def\abstractname{Tiivistelmä}%
   \def\bibname{Kirjallisuutta}%
   \def\prefacename{Esipuhe}%
   \def\chaptername{Luku}%
   \def\appendixname{Liite}%
   \def\contentsname{Sisältö}%
   \def\listfigurename{Kuvat}%
   \def\listtablename{Taulukot}%
   \def\indexname{Hakemisto}%
   \def\figurename{Kuva}%
   \def\tablename{Taulukko}%
   %\def\thepart{}%
   \def\partname{Osa}%
   \def\pagename{Sivu}%
   \def\seename{katso}%
   \def\alsoname{katso myös}%
   \def\enclname{Liitteet}%
   \def\ccname{Jakelu}%
   \def\headtoname{Vastaanottaja}%
   \def\proofname{Todistus}%
   \def\glossaryname{Sanasto}%
   }
\def\datefinnish{%
   \def\today{\number\day.~\ifcase\month\or
    tammikuuta\or helmikuuta\or maaliskuuta\or huhtikuuta\or
    toukokuuta\or kesäkuuta\or heinäkuuta\or elokuuta\or
    syyskuuta\or lokakuuta\or marraskuuta\or joulukuuta\fi
    \space\number\year}}

\def\noextras@finnish{%
  \nofinnish@shorthands%
}

\def\blockextras@finnish{%
  \iffinnish@babelshorthands\finnish@shorthands\fi%
}

\def\inlineextras@finnish{%
  \iffinnish@babelshorthands\finnish@shorthands\fi%
}

\endinput

% TODO ? this is set in babel:
\gappto\blockextrasfinnish{%
  \babel@savevariable\hyphenpenalty\hyphenpenalty=30%
  \babel@savevariable\exhyphenpenalty\exhyphenpenalty=30%
  \babel@savevariable\doublehyphendemerits\doublehyphendemerits=5000%
  \babel@savevariable\finalhyphendemerits\finalhyphendemerits=5000%
  }
Otsikko: Vs: Xubuntu 18.04, TeXLive, XeLaTeX ja sanojen tavutus
Kirjoitti: intikka - 30.08.18 - klo:11.45
Uusi yritys

Koodia: [Valitse]
\ProvidesFile{gloss-finnish.ldf}[polyglossia: module for finnish]
\PolyglossiaSetup{finnish}{
  hyphennames={finnish},
  hyphenmins={2,2},
  frenchspacing=true,
  fontsetup=true,
}


\define@boolkey{finnish}[finnish@]{babelshorthands}[true]{}
\ifsystem@babelshorthands
  \setkeys{finnish}{babelshorthands=true}
\else
  \setkeys{finnish}{babelshorthands=false}
\fi
\ifcsundef{initiate@active@char}{%
\input{babelsh.def}%
\initiate@active@char{"}%
}{}

\def\finnish@shorthands{%
  \bbl@activate{"}%
  \def\language@group{finnish}%
  \declare@shorthand{finnish}{"-}{\nobreak-\bbl@allowhyphens}
  \declare@shorthand{finnish}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}%
  \declare@shorthand{finnish}{""}{\hskip\z@skip}%
  \declare@shorthand{finnish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
  \declare@shorthand{finnish}{"=}{\penalty\@M-\hskip\z@skip}%
}

\def\nofinnish@shorthands{%
  \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}%
}


\def\captionsfinnish{%
   \def\refname{Viitteet}%
   \def\abstractname{Tiivistelmä}%
   \def\bibname{Kirjallisuutta}%
   \def\prefacename{Esipuhe}%
   \def\chaptername{Luku}%
   \def\appendixname{Liite}%
   \def\contentsname{Sisältö}%
   \def\listfigurename{Kuvat}%
   \def\listtablename{Taulukot}%
   \def\indexname{Hakemisto}%
   \def\figurename{Kuva}%
   \def\tablename{Taulukko}%
   %\def\thepart{}%
   \def\partname{Osa}%
   \def\pagename{Sivu}%
   \def\seename{katso}%
   \def\alsoname{katso myös}%
   \def\enclname{Liitteet}%
   \def\ccname{Jakelu}%
   \def\headtoname{Vastaanottaja}%
   \def\proofname{Todistus}%
   \def\glossaryname{Sanasto}%
   }
\def\datefinnish{%
   \def\today{\number\day.~\ifcase\month\or
    tammikuuta\or helmikuuta\or maaliskuuta\or huhtikuuta\or
    toukokuuta\or kesäkuuta\or heinäkuuta\or elokuuta\or
    syyskuuta\or lokakuuta\or marraskuuta\or joulukuuta\fi
    \space\number\year}}

\def\noextras@finnish{%
  \nofinnish@shorthands%
}

\def\blockextras@finnish{%
  \iffinnish@babelshorthands\finnish@shorthands\fi%
}

\def\inlineextras@finnish{%
  \iffinnish@babelshorthands\finnish@shorthands\fi%
}

\endinput

% TODO ? this is set in babel:
\gappto\blockextrasfinnish{%
  \babel@savevariable\hyphenpenalty\hyphenpenalty=30%
  \babel@savevariable\exhyphenpenalty\exhyphenpenalty=30%
  \babel@savevariable\doublehyphendemerits\doublehyphendemerits=5000%
  \babel@savevariable\finalhyphendemerits\finalhyphendemerits=5000%
  }