[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