Tulostumaton merkki
Tulostumaton merkki tai tyhjätilamerkki eli tyhjämerkki (myös tyhje tai tyhjemerkki[1]) on tietotekniikassa merkki, jolla ei tulostettaessa tai normaalissa tekstinäkymässä ole erityistä symbolia mutta joka muiden merkkien keskellä silti erottuu, koska se vie tilaa vaaka- tai pystysuunnassa.[2] Tyhjämerkkejä ovat välilyöntimerkit, sarkainmerkki sekä rivin- ja kappaleenvaihtomerkit.
Tyhjämerkkien lisäksi tietokonemerkistöihin sisältyy laitteiston ohjauskoodeja, jotka eivät yleensä näy edes epäsuorasti. Osa tyhjämerkeistäkin luokitellaan Unicode-merkistössä ohjauskoodeiksi,[3][4] toiset taas eräänlaisiksi välimerkeiksi.
Tulostumaton merkki on tarkkaan ottaen vain näkyvä symboli, joka voi joissain tilanteissa edustaa varsinaista tyhjämerkkiä sen paikan ja tarkoituksen havainnollistamiseksi. Erityisesti monessa tekstinkäsittelyohjelmassa tulostumattomat merkit ovat kytkettävissä näkyviin, jolloin niiden symbolit ilmaantuvat tavallisten merkkien lomaan laitteen näytössä mutta eivät kuitenkaan tulostu paperille. Tällöin välilyöntiä usein edustaa rivinkeskinen piste (·), sarkausta oikealle osoittava nuoli (→), rivinvaihtoa vasemmalle kääntyvä kulmanuoli (↵) ja kappaleenvaihtoa kappaleen merkki (¶).[5] Tulostumattomien merkkien symbolit voivat kuitenkin vaihdella sovellusohjelmasta riippuen.
Välilyöntimerkit
Välilyönti muodostaa tekstissä pienen tyhjän tilan, joka erottaa sanoja (tai muita merkkijonoja) toisistaan. Tavallisesti sanavälin kohdalla teksti voi myös jakautua eri riveille, jos se ei yhdelle riville mahdu. Niin sanottu sitova välilyönti ei kuitenkaan salli rivinvaihtoa. Sekä tavallisesta että sitovasta välilyönnistä on olemassa typografisia muunnelmia, jotka voivat (fontista ja tilanteesta riippuen) muodostaa tavallista välilyöntimerkkiä kapeamman tai leveämmän välin.
Peräkkäisillä välilyönneillä pyritään joskus muotoilemaan tekstin ulkoasua, mutta tulos voi olla epäluotettava, ja usein tällaisiin tarkoituksiin suositellaankin muita menetelmiä. Esimerkiksi HTML-sivujen merkkaukseen sisällytetyt peräkkäiset välilyönnit näyttävät selaimissa vain yhdeltä välilyönniltä.[6]
Tavallinen välilyönti kirjoitetaan painamalla tietokoneen välilyöntinäppäintä, joka on näppäimistön alarivissä sijaitseva leveä näppäin. Sitova välilyönti voidaan laajennettua suomalaista näppäinasettelua käytettäessä kirjoittaa pitämällä pohjassa AltGr-näppäintä, samalla kun painetaan välilyöntinäppäintä.
Sarkainmerkki
Sarkain- eli tabulaattorimerkki ohjaa kohdistimen siirtymään seuraavaan sarkainkohtaan,[7] jolloin tekstissä merkin perään muodostuu vaihtelevan levyinen tyhjä tila. Sarkainmääritysten avulla tekstiä voidaan muotoilla sarakkeiksi, jotka asemoituvat joka rivillä samaan kohtaan. Oletusarvoisesti tekstinkäsittelyohjelmat käyttävät omia sarkainmäärityksiään, mutta käyttäjä voi määrittää kunkin tekstikappaleen sarkainkohdat haluamallaan tavalla.[8] Sarkainmerkkiä seuraava teksti voi sarkainkohdan tyypistä riippuen asemoitua sarkainkohdan oikealle tai vasemmalle puolelle tai sen keskelle.
Sarkainmerkki (engl. horizontal tabulation ’vaakasuuntainen sarkaus’) on ASCII-perusmerkistöön sisältyvä ohjausmerkki, ja sen Unicode-tunnus on U+0009. Se kirjoitetaan sarkainnäppäimellä, joka sijaitsee näppäimistön vasemmassa laidassa. Tyypillisesti sarkainnäppäimessä on kuva pystyviivaan törmäävästä nuolesta (⇥) ja mahdollisesti teksti Tab. Joissain tilanteissa sarkainnäppäin toimii navigointinäppäimenä, jota painamalla voi siirtyä esimerkiksi taulukon solusta toiseen.
Rivin- ja kappaleenvaihtomerkit
Tietokoneella kirjoitettaessa ei tavallisesti tarvitse kiinnittää huomiota siihen, miten teksti jakautuu riveiksi, sillä jos se ei mahdu yhdelle riville, useimmat ohjelmistot osaavat välilyönnin jälkeen siirtää viimeisen sanan automaattisesti seuraavalle riville. Tämä ei kuitenkaan ollut itsestään selvää automaattisen tietojenkäsittelyn alkuaikoina, vaan järjestelmää piti ehkä erikseen ohjeistaa toteuttamaan rivinvaihto (samaan tapaan kuin kirjoituskoneella piti aina rivin täyttyessä varta vasten siirtyä uuden rivin alkuun). Siksi tekstiin lisättiin ohjausmerkki tai itse asiassa kaksi merkkiä, joista toinen ohjasi kohdistimen siirtymään rivin alkuun ja toinen seuraavalle riville. Myöhemmin ruvettiin ajattelemaan, että kahta erillistä merkkiä ei välttämättä tarvita, vaan rivinvaihdon voi ohjelmoida tapahtumaan yhdelläkin merkillä, mutta eri järjestelmissä päädyttiin erilaisiin ratkaisuihin.[3]
Kappaleenvaihto on tekstissä rivinvaihtoa merkittävämpi, rakenteellinen siirtymä, mitä tavallisesti osoitetaan jättämällä kappaleiden väliin tyhjä rivi tai hieman tyhjää tilaa seuraavan kappaleen ensimmäisen rivin alkuun. Tyhjä rivi voidaan yksinkertaisimmillaan tuottaa kahdella peräkkäisellä rivinvaihdolla (ja tämä onkin käytäntönä esimerkiksi sähköposteissa ja wiki-merkintäkielessä). Tekstinkäsittelyohjelmien kehittäjät keksivät kuitenkin, että koska tavalliset rivinvaihdot hoituvat tekstinkäsittelyssä automaattisesti, yksi varta vasten lisättävä rivinvaihto riittäisi tällaisissa yhteyksissä osoittamaan kappaleenvaihtoa. Myöhemmin tosin huomattiin, että joskus tekstin muotoilemiseksi tarvitaan myös erikseen kirjoitettavaa rivinvaihtoa, joka ei osoita kappaleen rajaa, ja koska alkuperäinen rivinvaihtomerkki oli jo omaksuttu kappaleenvaihdon merkiksi, tarvittiin vielä jokin muu merkki osoittamaan pelkkää rivinvaihtoa.[3]
Unicode | Nimi | Selite[3] |
---|---|---|
C0-ohjauskoodit ja latinalainen perusosa[9] (ASCII) | ||
U+000A | line feed (LF) | rivinsiirto, rivinvaihto tai kappaleenvaihto |
U+000B | vertical tabulation (VT) | pystysuuntainen sarkaus, rivinvaihto Microsoft Wordissä |
U+000C | form feed (FF) | sivunvaihto |
U+000D | carriage return (CR) | paluu rivin alkuun, rivinvaihto tai kappaleenvaihto |
C1-ohjauskoodit ja latinalaisen merkistön täydennys Latin 1:ksi[10] | ||
U+0085 | next line (NEL) | rivinvaihto tai kappaleenvaihto |
Yleisiä välimerkkejä[11] | ||
U+2028 | line separator (LS) | rivinvaihto |
U+2029 | paragraph separator (PS) | kappaleenvaihto |
Merkistötasolla on siis olemassa useita rivin- tai kappaleenvaihtomerkkejä, joiden käyttö erilaisissa tietokonejärjestelmissä ja -ohjelmistoissa ei historiallisista syistä ole yhdenmukaista. Jo ASCII-perusmerkistöönkin sisältyneistä rivinvaihtomerkeistä on Unix-tyyppisissä järjestelmissä (mukaan lukien Linux ja OS X) vanhastaan käytetty merkkiä U+000A (LF), vanhoissa Mac OS -järjestelmissä merkkiä U+000D (CR) ja Windows-järjestelmissä näiden kahden yhdistelmää (CRLF). Lisäksi Ebcdic-pohjaisissa järjestelmissä on ollut käytössä U+0085 (NEL). Käytäntöjen kirjavuus voi aiheuttaa huomattavia ongelmia, etenkin kun laitteet ovat verkon välityksellä yhteydessä toisiinsa, sillä ohjelmistojen pitäisi pystyä selvittämään, mitkä merkit tai merkkiyhdistelmät kussakin tiedostossa osoittavat rivin- tai kappaleenvaihtoja. Yhtenäisemmän käytännön mahdollistamiseksi Unicode määrittelee erikseen myös yksiselitteisen rivinvaihtomerkin U+2028 (LS) ja kappaleenvaihtomerkin U+2029 (PS).[3][4]
HTML-sivuilla ja XML-tallenteissa esiintyviä rivin- ja kappaleenvaihtoja ei tuoteta tyhjämerkeillä vaan rakenteelliseen tai esitykselliseen merkkaukseen perustuvilla elementeillä. Rivin- ja kappaleenvaihtomerkkejä voidaan tosin käyttää sivun koodauksessa, mutta selainten kuuluu tavallisesti esittää ne ikään kuin ne olisivat pelkkiä välilyöntimerkkejä tai jättää ne kokonaan huomioimatta.[3][12]
Tyypillisesti rivinvaihto tuotetaan painamalla tietokonenäppäimistön kirjainosan oikeassa laidassa sijaitsevaa palautusnäppäintä, jossa voi olla vasemmalle kääntyvän kulmanuolen kuva (↵) tai teksti Return tai Enter (joissain näppäimistömalleissa kirjainosan oikealla puolella on lisäksi erityinen numerosormio, jonka oikeassa alanurkassa oleva enter- eli syöttönäppäin toimii käytännössä samalla tavalla). Tilanteesta riippuen järjestelmä tulkitsee näppäilyn rivin- tai kappaleenvaihdoksi tai tiedonsyöttökomennoksi. Tekstinkäsittelyohjelmissa, joissa palautusnäppäin oletusarvoisesti tuottaa kappaleenvaihdon, pelkkä rivinvaihto voidaan kirjoittaa pitämällä samaan aikaan pohjassa vaihtonäppäintä ⇧ Shift.
Tulostumaton merkki ohjelmoinnissa
Python-kieli käyttää tulostumattomia merkkejä rivin alussa sisennykseen, jota käytetään lauseiden ryhmittelyyn.[13]
Tulostumattomilla merkeillä voidaan myös ohjelmoida Whitespace-ohjelmointikielessä: kieli käyttää vain tabulointi- ja välilyöntimerkkejä.[14] Esimerkiksi yhteenlasku suoritetaan kahdella välilyönnillä, vähennyslasku välilyönnillä ja tabuloinnilla.[14]
Lähteet
- Marko Grönroos: Linux-käännössanakirja 2004. Lokalisointi.org. Viitattu 3.5.2014.
- ”Tyhjätilamerkki”, ”tyhjämerkki”, MOT: Tietotekniikan liiton ATK-sanakirja. Viitattu 3.5.2014.
- Jukka Korpela: Rivinvaihdot ja kappaleet datan käsittelyssä jkorpela.fi. 16.2.2000, päivitetty viimeksi 21.11.2005. Viitattu 3.5.2014.
- Julie D. Allen ym. (toim.): Implementation Guidelines (PDF) (luku 5.8, ”Newline Guidelines”, s. 153–156) The Unicode Standard, Version 6.2 – Core Specification. 2012. Mountain View, CA: Unicode Consortium. Viitattu 3.5.2014.
- What are non-printing characters? Why should I see them? 27.6.2012. Cowirrie Commentary. Arkistoitu 5.5.2014. Viitattu 5.5.2014.
- Jukka Korpela: Välilyönnit Nykyajan kielenopas. Päivitetty viimeksi 29.4.2014. Viitattu 10.5.2014.
- ”Sarkainmerkki”, ”sarkainkohta”, MOT: Tietotekniikan liiton ATK-sanakirja. Viitattu 10.5.2014.
- Kirsti Leppämaa: Sisennys ja sarkain Tietokone. 1.1.2001. Arkistoitu 13.5.2014. Viitattu 10.5.2014.
- Unicode: C0 Controls and Basic Latin (PDF) 1991–2013. Unicode Consortium. Viitattu 3.5.2014.
- Unicode: C1 Controls and Latin-1 Supplement (PDF) 1991–2013. Unicode Consortium. Viitattu 3.5.2014.
- Unicode: General Punctuation (PDF) 1991–2013. Unicode Consortium. Viitattu 3.5.2014.
- Unicode & W3C: Unicode in XML and other markup languages 24.1.2013. W3C. Viitattu 3.5.2014.
- 2.1.7 Indentation docs.python.org. Viitattu 7.2.2020. (englanniksi)
- https://esolangs.org/wiki/Whitespace