[voikko-devel] Sitova yhdysmerkki U+2011

Teemu Likonen tlikonen at iki.fi
Sat Aug 19 14:20:50 EEST 2006


Mietin hieman sitovan yhdysmerkin U+2011 toimintaa oikoluvussa. Se on 
kielen tasolla ihan vastaava kuin ns. oikeakin yhdysmerkki; sillä vain 
kerrotaan ohjelmalle, että sanaa ei saa jakaa eri riveille yhdysmerkin 
kohdalta. Voikko on helppo saada tunnistamaan myös U+2011:n sisältävät 
sanat, ja teinkin alla olevan lisäyksen libvoikkoon (ei SVN:ssä 
ainakaan vielä).

Tästä kuitenkin seuraa pari käytännön ongelmaa. OOo 2.0.3 ei katso 
U+2011:tä sanan osaksi, ja siten se lähettää yhdysmerkin kummallakin 
puolella olevat osat erikseen oikoluvulle. Esimerkiksi 
sanan "matemaattis-luonnontieteellinen" ensimmäinen osa on yksinään 
virheellinen.

Oletetaan, että tulevissa versioissa OOo katsoo myös sitovan yhdysmerkin 
osaksi sanaa. Pitäisikö OOo:n lähettää se oikoluvulle tavallisena 
yhdysmerkkinä (U+002D tai U+2010) vai sitovana (U+2011)? En ole varma, 
mutta oikoluvun kannalta tulee normalisointiin liittyvä ongelma tai 
pohdittava asia. Jos libvoikko muuttaa alla olevan diffin mukaisesti 
U+2011:n U+002D:ksi, niin mahdollisista korjausehdotuksista se katoaa, 
ja käyttäjä joutuu palauttamaan U+2011:n takaisin tekstiin.

Jos tullaan käytännön kielenkäytön maailmaan, niin sitovaa yhdysmerkkiä 
tarvitsee pääasiassa joissakin koodeissa ja lyhenteissä. Itse 
laittaisin esimerkiksi yhdyssanaan "UTF-8-koodaus" ensimmäiseksi 
yhdysmerkiksi sitovan, jotta merkistökoodauksen nimi säilyy aina 
samalla rivillä. Jälkimmäinen voi hyvin olla tavallinen yhdysmerkki.

Tarvitseeko asialle tehdä jotain? Lisäämmekö alla olevan muutoksen 
libvoikkoon?

(Tmispell ei osaa U+2011:tä eikä U+2019:ää, vaikka ne lisäisi 
asetustiedostoon.)



Index: src/voikko_charset.c
===================================================================
--- src/voikko_charset.c        (revision 366)
+++ src/voikko_charset.c        (working copy)
@@ -86,11 +86,12 @@
        L"Z\u030C" L"\u017D"  /* LATIN CAPITAL LETTER Z WITH CARON */
        L"z\u030C" L"\u017E"; /* LATIN SMALL LETTER Z WITH CARON */

-const int N_1TO1 = 2; /* Number of entries in this table */
+const int N_1TO1 = 3; /* Number of entries in this table */
 const wchar_t * CONV_1TO1 =
        /* General Punctuation --> Basic Latin */
        L"\u2019" L"'"  /* RIGHT SINGLE QUOTATION MARK <--> APOSTROPHE 
*/
-       L"\u2010" L"-"; /* HYPHEN <--> HYPHEN-MINUS */
+       L"\u2010" L"-"  /* HYPHEN <--> HYPHEN-MINUS */
+       L"\u2011" L"-"; /* NON-BREAKING HYPHEN <--> HYPHEN-MINUS */

 const int N_1TO2 = 3; /* Number of entries in this table */
 const wchar_t * CONV_1TO2 =



More information about the devel mailing list