Kirjoittaja Aihe: Näkymättömät Merkit Tekstissä  (Luettu 3826 kertaa)

K-Veikko

  • Käyttäjä
  • Viestejä: 309
    • Profiili
Näkymättömät Merkit Tekstissä
« : 22.10.17 - klo:10.38 »
Olen tässä käytellyt Pandoc'ia tekstin muotoiluun. Nyt on tullut vastaan ongelma näkymättömien merkkien käsittelyssä. Esimerkiksi
- Unicode char \u8
Niitä on lukematon määrä, mutta havainnollistan tilannetta tavuviivalla, siis tavutusehdotuksella
- &-s-h-y-;

Olen löytänyt joitain ohjeita näiden merkkien poistamiseen, mutta ne poistavat liian paljon. Ainakin pitäisi säilyä "tavalliset kirjaimet" kaikilla (utf-8) kielillä
- åäöÅÄÖ
- venäläiset kirjaimet
- Ábcdêãçoàúü
- jne

ONGELMA.
Se mitä haluaisin, on että copy pastessa nuo näkymättömät merkit eivät seuraisi mukana.

Nyt kun copy-pastettaa alla olevia tekstejä eri ohjelmien välillä, siellä seuraa näitä näkymättömiä merkkejä mukana. Myöhemmin ne saattavat aiheuttaa ongelmia, joiden jäljittäminen on hankalaa.

Alkuperäinen teksti

Weli kulta weikkoseni, Kaunis kielikumppalini! Harwoin yhtehen yhymmä, Saanemma sanelemahan, Näillä raukoilla rajoilla, Polosilla Pohjan mailla; Pannos nyt käsi kätehen, Haka toisehen hakahan, Lauloaksemma hywiä, Parahia pannaksemma;

Sama teksti tavutettuna

We­li kul­ta weik­ko­se­ni, Kau­nis kie­li­kump­pa­li­ni! Har­woin yh­te­hen y­hym­mä, Saa­nem­ma sa­ne­le­ma­han, Näil­lä rau­koil­la ra­joil­la, Po­lo­sil­la Poh­jan mail­la; Pan­nos nyt kä­si kä­te­hen, Ha­ka toi­se­hen ha­ka­han, Lau­lo­ak­sem­ma hy­wi­ä, Pa­ra­hi­a pan­nak­sem­ma;

Tämän tavutetun tekstin kun copy-pastettaa esim geditiin, niin ikkunan leveyttä muuttamalla näkee tavuviivan paikat.

Vielä tavutettu teksti kuin cat --show-nonprinting sen antaa

WeM-BM--li kulM-BM--ta weikM-BM--koM-BM--seM-BM--ni, KauM-BM--nis kieM-BM--liM-BM--kumpM-BM--paM-BM--liM-BM--ni! ...

nm

  • Käyttäjä
  • Viestejä: 16428
    • Profiili
Vs: Näkymättömät Merkit Tekstissä
« Vastaus #1 : 22.10.17 - klo:15.32 »
Olen tässä käytellyt Pandoc'ia tekstin muotoiluun. Nyt on tullut vastaan ongelma näkymättömien merkkien käsittelyssä. Esimerkiksi
- Unicode char \u8
Niitä on lukematon määrä, mutta havainnollistan tilannetta tavuviivalla, siis tavutusehdotuksella

Hmm. Mitä muita näkymättömiä merkkejä teksteissäsi on?

Jos Pandoc oireilee Unicode-merkkien kanssa  ("inputenc Error: Unicode char \u8: ...") ja syöte on varmasti UTF-8:aa, oletko kokeillut pdflatexin sijaan xelatexia: --latex-engine xelatex?


ONGELMA.
Se mitä haluaisin, on että copy pastessa nuo näkymättömät merkit eivät seuraisi mukana.

Nyt kun copy-pastettaa alla olevia tekstejä eri ohjelmien välillä, siellä seuraa näitä näkymättömiä merkkejä mukana. Myöhemmin ne saattavat aiheuttaa ongelmia, joiden jäljittäminen on hankalaa.

Alkuperäinen teksti

Weli kulta weikkoseni, Kaunis kielikumppalini! Harwoin yhtehen yhymmä, Saanemma sanelemahan, Näillä raukoilla rajoilla, Polosilla Pohjan mailla; Pannos nyt käsi kätehen, Haka toisehen hakahan, Lauloaksemma hywiä, Parahia pannaksemma;

Sama teksti tavutettuna

We­li kul­ta weik­ko­se­ni, Kau­nis kie­li­kump­pa­li­ni! Har­woin yh­te­hen y­hym­mä, Saa­nem­ma sa­ne­le­ma­han, Näil­lä rau­koil­la ra­joil­la, Po­lo­sil­la Poh­jan mail­la; Pan­nos nyt kä­si kä­te­hen, Ha­ka toi­se­hen ha­ka­han, Lau­lo­ak­sem­ma hy­wi­ä, Pa­ra­hi­a pan­nak­sem­ma;

Tämän tavutetun tekstin kun copy-pastettaa esim geditiin, niin ikkunan leveyttä muuttamalla näkee tavuviivan paikat.

Vielä tavutettu teksti kuin cat --show-nonprinting sen antaa

WeM-BM--li kulM-BM--ta weikM-BM--koM-BM--seM-BM--ni, KauM-BM--nis kieM-BM--liM-BM--kumpM-BM--paM-BM--liM-BM--ni! ...

Jos haluat poistaa nuo Soft Hyphenit kokonaan, operaatio onnistuu vaikkapa säännöllisillä lausekkeilla. Esim. sedillä, jos syöte on UTF-8:aa:

Koodia: [Valitse]
echo "We­li kul­ta weik­ko­se­ni" | sed -e "s/\xc2\xad//g"
Lainaus
Weli kulta weikkoseni

Tai käsittele syötetiedosto in-place-moodissa:
Koodia: [Valitse]
sed -i -e "s/\xc2\xad//g" tiedosto.txt
Jos siellä on muita vastaavia merkkejä, jotka haluat pois, joudut määrittelemään ne yksitellen. Unicodessa on categorioita ja merkeille määriteltyjä propertyjä, mutta ei ole olemassa yleistä luokkaa, joka kattaisi kaikki näkymättömät merkit lukuun ottamatta tarpeellisia kontrollimerkkejä.

K-Veikko

  • Käyttäjä
  • Viestejä: 309
    • Profiili
Vs: Näkymättömät Merkit Tekstissä
« Vastaus #2 : 23.10.17 - klo:23.40 »
Kiitos vihjeistä.

> Hmm. Mitä muita näkymättömiä merkkejä
> teksteissäsi on?

Yleisin on tuo
- Unicode char \u8 (vissiin nollan pituinen väli)
Sitten on satunnaisia merkkejä. Ja nämä ovatkin hankalia löytää.
- Pitkää väliviivaakin – lienee ainakin kolmenlaista sorttia. Ei kuitenkaan ongelma.

Tavuviiva juuri nyt on kiinnostuksen aihe, koska ole tässä testaillut web-tekstin tavuttamista etukäteen.

> pdflatexin sijaan xelatexia

Kokeilin, mutta se kylmän viileästi poisti esim. venäläiset kirjaimet.

nm

  • Käyttäjä
  • Viestejä: 16428
    • Profiili
Vs: Näkymättömät Merkit Tekstissä
« Vastaus #3 : 24.10.17 - klo:00.09 »
Kiitos vihjeistä.

> Hmm. Mitä muita näkymättömiä merkkejä
> teksteissäsi on?

Yleisin on tuo
- Unicode char \u8 (vissiin nollan pituinen väli)

Tuo viittaa LaTeXin virheilmoitukseen Package inputenc Error: Unicode char \u8:­ not set up for use with LaTeX, jossa "\u8:" -kohdan jälkeen on jokin näkymätön merkki, joka ei siis näy myöskään virheilmoituksessa. Pitäisi tutkia syötetiedostoa heksaeditorilla, jotta selviäisi mikä merkki on kyseessä. \u8 tarkoittaa tuossa vain UTF-8-enkoodausta.


> pdflatexin sijaan xelatexia

Kokeilin, mutta se kylmän viileästi poisti esim. venäläiset kirjaimet.

Käske pandocia käyttämään fonttia, jossa on kyrilliset aakkoset:

Koodia: [Valitse]
pandoc --latex-engine=xelatex -V mainfont="Linux Libertine O"
« Viimeksi muokattu: 24.10.17 - klo:00.11 kirjoittanut nm »

ubpappa

  • Käyttäjä
  • Viestejä: 1469
    • Profiili
Vs: Näkymättömät Merkit Tekstissä
« Vastaus #4 : 26.10.17 - klo:07.33 »
Lainaus
Weli kulta weikkoseni, Kaunis kielikumppalini! Harwoin yhtehen yhymmä, Saanemma sanelemahan, Näillä raukoilla rajoilla, Polosilla Pohjan mailla; Pannos nyt käsi kätehen, Haka toisehen hakahan, Lauloaksemma hywiä, Parahia pannaksemma;
Tuli tästä mieleen seuraavaa omaperäistä käyttöä, mitä me täälä
"kehitysalueela" voisimma hyödyntää:
Weli kulta weikkoseni, Kaunis kielikumppalini!=käyttäjätunnus
Harwoin yhtehen yhymmä, Saanemma sanelemahan, Näillä raukoilla rajoilla, Polosilla Pohjan mailla; Pannos nyt käsi kätehen, Haka toisehen hakahan, Lauloaksemma hywiä, Parahia pannaksemma;= salasana

Näilä vaan sähköpostia tisillemma, tai sitten
pankkiin...niin availukulistat summuut vois
varmaan unohtaa...
Mahtais siinä W-kansa ym kahela meitä huuli pyöreenä...luulisin  ;)
xubuntu 18;rasberry
acer aspire XC,näyttönä Toshiba tv ja vga päte...
Ymmärtää epätäydellisesti vain
suomea...;)

Jos tiedät vastaa, jos luulet tietäväsi vastaa.
Jos et tiedä/ymmärrä...älä vastaa.vanhuus tullee muillennii :))

K-Veikko

  • Käyttäjä
  • Viestejä: 309
    • Profiili
Vs: Näkymättömät Merkit Tekstissä
« Vastaus #5 : 02.12.17 - klo:20.09 »
Mistä nuo kaikki "\xc2\xad" merkitkin sitten tietää ja muistaa. Helppo tapa olisi löytää ja kokeilla tuolla cat --show-nonprinting komennolla ohjata se sed komentoon, poistaa tai korvata merkki (tällä kertaa M-^V) ja palauttaa teksti takaisin tavalliseksi.

Mutta cat komennossa ei näy olevan mitään "reverse --show-nonprinting" optiota.
Miten tuon  cat --show-nonprinting tekstin saa käännettyä takaisin "tavalliseksi"?

Koodia: [Valitse]
echo "We­li kul­ta weik­ko­se­ni" | sed -e "s/\xc2\xad//g"