Prázdný znak - Whitespace character

V počítačovém programování je prázdný znak jakýkoli znak nebo řada znaků, které v typografii představují horizontální nebo vertikální prostor . Při vykreslování znak mezery neodpovídá viditelné značce, ale obvykle zabírá oblast na stránce. Například společný symbol mezer U+0020 SPACE (také ASCII 32) představuje v textu znak interpunkce prázdného místa , který se používá jako oddělovač slov v západních skriptech .  

Přehled

Relativní šířky různých mezer v Unicode

U mnoha rozložení klávesnice lze znak mezery zadat pomocí a spacebar. Horizontální mezery lze také zadat na mnoha klávesnicích pomocí Tab ↹klávesy, i když délka mezery se může lišit. Svislý prázdný prostor je trochu rozmanitější, pokud jde o způsob kódování, ale nejzjevnější při psaní je ↵ Entervýsledek, který v aplikačních programech vytváří sekvenci kódu „nového řádku“. Starší klávesnice by místo toho mohly říci Return, zkratka klávesnice psacího stroje znamená „Carriage-Return“, která generovala elektromechanický návrat na levou zarážku (kód CR v ASCII- hex & 0D;) a posun řádku nebo přesun na další řádek (kód LF v ASCII -hex & 0A;); v některých aplikacích byly tyto samostatně použity k kreslení displejů založených na textových buňkách na monitorech nebo k tisku na tiskárnách naváděných traktorem-které mohou také obsahovat sekvence opačných pohybů/polohovacích kódů, což umožňuje textovým výstupním zařízením dosáhnout sofistikovanějšího výstupu. Mnoho raných počítačových her používalo takové kódy k vykreslení obrazovky (např. Kingdom of Kroz ) a software pro zpracování textu by to používal k vytváření tištěných efektů, jako jsou tučné, podtržené a přeškrtnuté.

Termín „prázdné místo“ je založen na výsledném vzhledu na obyčejném papíře . Jsou však kódovány uvnitř aplikace, mezery lze zpracovat stejně jako jakýkoli jiný znakový kód a programy mohou provádět správnou akci definovanou pro kontext, ve kterém se vyskytují.

Definice a nejednoznačnost

Nejběžnější mezery lze zadat pomocí mezerníku nebo klávesy Tab . V závislosti na kontextu lze za mezeru také považovat zalomení řádku vygenerované klávesou return nebo enter .

Unicode

Níže uvedená tabulka uvádí dvacet pět znaků definovaných jako znaky mezer ("WSpace = Y", "WS") v databázi znaků Unicode . Sedmnáct používá definici mezer shodnou s algoritmem pro obousměrné psaní („obousměrný typ znaků = WS“) a jsou známé jako znaky „Bidi-WS“. Lze použít i zbývající znaky, ale nejsou tohoto typu „Bidi“.

Poznámka: V závislosti na prohlížeči a fontech použitých k zobrazení následující tabulky nemusí být všechny mezery zobrazeny správně.

název Bod kódu Šířka pole Může přestávka ? V
IDN ?
Skript Blok Obecná
kategorie
Poznámky
tabelace postav U+0009 9 Ano Ne Běžný Základní latina Jiné,
ovládání
HT, horizontální tab . HTML / XML jmenoval subjekt : 	, LaTeX : '\ tab'
line feed U+000A 10 Je zalomení řádku Běžný Základní latina Jiné,
ovládání
LF, Line feed . HTML/XML pojmenovaná entita:

řádková tabulka U+000B 11 Je zalomení řádku Běžný Základní latina Jiné,
ovládání
VT, svislá tab
krmivo U+000C 12 Je zalomení řádku Běžný Základní latina Jiné,
ovládání
FF, Form feed
návrat vozíku U+000D 13 Je zalomení řádku Běžný Základní latina Jiné,
ovládání
ČR, vrácení kočáru
prostor U+0020 32 Ano Ne Běžný Základní latina Oddělovač,
prostor
Nejběžnější (normální ASCII mezera)
další řádek U+0085 133 Je zalomení řádku Běžný
Dodatek Latin-1
Jiné,
ovládání
NEL, další řádek
prostor bez přerušení U+00A0 160   Ne Ne Běžný
Dodatek Latin-1
Oddělovač,
prostor
Prostor bez přerušení : identický s U+0020, ale není to bod, ve kterém může být čára přerušena. HTML/XML pojmenovaná entita  :, LaTeX: '\'
ogham mezera U+1680 5760 Ano Ne Ogham Ogham Oddělovač,
prostor
Používá se pro Interword oddělení v Ogham textu. Normálně svislá čára ve svislém textu nebo vodorovná čára v horizontálním textu, ale může to být také prázdné místo v písmech „bez stonků“. Vyžaduje písmo Ogham.
en quad U+2000 8192   Ano Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
Šířka jedné en . U+2002 je kánonicky ekvivalentní tomuto znaku; Upřednostňuje se U+2002.
em quad U+2001 8193 Ano Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
Také známý jako „skopová čtyřkolka“. Šířka jedné em . U+2003 je kánonicky ekvivalentní tomuto znaku; Upřednostňuje se U+2003.
en prostor U+2002 8194 Ano Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
Také známý jako „ořech“. Šířka jedné en . U+2000 En Quad je tomuto znaku kanonicky ekvivalentní; Upřednostňuje se U+2002. HTML/XML pojmenovaná entita  :, LaTeX: '\ enspace'
em prostor U+2003 8195 Ano Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
Také známý jako „skopové“. Šířka jedné em . U+2001 Em Quad je kánonicky ekvivalentní této postavě; Upřednostňuje se U+2003. HTML/XML pojmenovaná entita  :, LaTeX: '\ quad'
prostor pro tři osoby U+2004 8196 Ano Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
Také známý jako „tlustý prostor“. Jedna třetina šířky em. HTML/XML pojmenovaná entita: 
prostor pro čtyři osoby U+2005 8197 Ano Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
Také známý jako „střední prostor“. Jedna čtvrtina šířky em. HTML/XML pojmenovaná entita: 
prostor šest na em U+2006 8198 Ano Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
Jedna šestina šířky em. V počítačové typografii se někdy rovná U+2009.
figurový prostor U+2007 8199 Ne Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
Prostor obrázku . Ve fontech s číslicemi s mezerou rovnající se šířce jedné číslice. Entita pojmenovaná HTML/XML: 
interpunkční mezera U+2008 8200 Ano Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
Stejně široký jako úzká interpunkce v písmu, tj. Šířka záběru tečky nebo čárky. Entita pojmenovaná HTML/XML: 
tenký prostor U+2009 8201 Ano Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
Tenký prostor ; jedna pětina (někdy i šestina) šířky em. Doporučeno pro použití jako oddělovač tisíců pro opatření prováděná s jednotkami SI . Na rozdíl od U+2002 až U+2008 může být jeho šířka při sazbě upravena. HTML/XML pojmenovaná entita  :; LaTeX: '\,'
vlasový prostor U+200A 8202 Ano Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
Tenčí než tenký prostor. Entita pojmenovaná HTML/XML:  ( nefunguje ve všech prohlížečích)
oddělovač řádků U+2028 8232 Je zalomení řádku Běžný Obecná
interpunkce
Oddělovač,
linka
oddělovač odstavců U+2029 8233 Je zalomení řádku Běžný Obecná
interpunkce
Oddělovač,
odstavec
úzký prostor bez přerušení U+202F 8239 Ne Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
Úzký prostor bez přerušení . Funkce je podobná funkci U+00A0 Prostor bez přerušení. Při použití s ​​mongolštinou je jeho šířka obvykle jedna třetina normálního prostoru; v jiném kontextu se jeho šířka někdy podobá šířce Tenkého prostoru (U+2009).
střední matematický prostor U+205F 8287 Ano Ne Běžný Obecná
interpunkce
Oddělovač,
prostor
MMSP. Používá se v matematických vzorcích. Čtyři osmnáctiny em. V matematické typografii jsou šířky mezer obvykle uvedeny v celých násobcích osmnáctiny em a 4/18 em lze použít v několika situacích, například mezi a a + a mezi + a b v výraz a + b . HTML/XML pojmenovaná entita: 
ideografický prostor U+3000 12288   Ano Ne Běžný Symboly
a
interpunkce CJK
Oddělovač,
prostor
Široký jako buňka znaků CJK ( plná šířka ). Používá se například v tai tou .
 název  Bod kódu Šířka pole Může přestávka ? V
IDN ?
Skript Blok Obecná
kategorie
Poznámky
oddělovač mongolských samohlásek U+180E 6158 Ano Ne mongolský mongolský Jiné,
formát
MVS. Úzký prostorový znak, používaný v mongolštině k tomu, aby poslední dva znaky slova získaly různé tvary. V Unicode 6.3.0 již není klasifikován jako znak mezery (tj. V kategorii Zs), přestože to bylo v předchozích verzích standardu.
prostor s nulovou šířkou U+200B 8203 Ano Ne ? Obecná
interpunkce
Jiné,
formát
ZWSP, prostor s nulovou šířkou . Používá se k označení hranic slov systémům zpracování textu při použití skriptů, které nepoužívají explicitní mezery. Je to podobné jako měkká spojovník , s tím rozdílem, že ten se používá k označení hranic slabik a měl by zobrazit viditelnou spojovník, když se na ní čára zlomí. Entita pojmenovaná HTML/XML :​
bez spojky s nulovou šířkou U+200C 8204 Ano V závislosti na kontextu ? Obecná
interpunkce
Jiné,
formát
ZWNJ, bez spojky s nulovou šířkou . Když se umístí mezi dva znaky, které by jinak byly spojeny, ZWNJ způsobí, že budou vytištěny ve své konečné a počáteční podobě. HTML/XML pojmenovaná entita:‌
truhlář s nulovou šířkou U+200D 8205 Ano V závislosti na kontextu ? Obecná
interpunkce
Jiné,
formát
ZWJ, truhlář s nulovou šířkou . Při umístění mezi dva znaky, které by jinak nebyly spojeny, ZWJ způsobí, že budou vytištěny v jejich spojených formách. Lze také použít k izolovanému zobrazení spojovacích formulářů. V závislosti na tom, zda se ve výchozím nastavení očekává ligatura nebo konjunktura, může buď vyvolat (jako u emoji a v sinhálštině ), nebo potlačit (jako u Devanagari ) substituci jediným glyfem, přičemž stále umožňuje použití jednotlivých spojovacích forem (na rozdíl od ZWNJ). Entita pojmenovaná HTML/XML:‍
slovní truhlář U+2060 8288 Ne Ne ? Obecná
interpunkce
Jiné,
formát
WJ, spojař slov . Podobně jako U+200B, ale nejde o bod, ve kterém může být čára přerušena. HTML/XML pojmenovaná entita:⁠
neporušený prostor s nulovou šířkou U+FEFF 65279  Ne Ne ? Arabské
prezentační
formuláře-B
Jiné,
formát
Nerozbíjející se prostor s nulovou šířkou . Používá se především jako značka pořadí bajtů . Použití jako indikace neporušování je od Unicode 3.2 zastaralé; místo toho viz U+2060.

Náhradní obrázky

Unicode také poskytuje některé viditelné znaky, které lze použít k reprezentaci různých prázdných znaků v kontextech, kde musí být viditelný symbol zobrazen:

Prostorové znaky Unicode (viditelné)
Kód Desetinný název Blok Zobrazit Popis
U+00B7 183 Střední tečka Dodatek Latin-1 · Interpunct
Pojmenovaná entita:·
U+21A1 8609 Šipka se dvěma hlavami dolů Šipky Symbol ECMA-17 / ISO 2047 pro podávání formuláře (konec stránky)
U+2261 8810 Stejný jako Matematické
operátory
Mezi další použití patří symbol ECMA-17 / ISO 2047 pro podávání řádků
U+237D 9085 Otevřený box s rameny Různé technické Používá se k označení NBSP
U+23CE 9166 Symbol návratu Různé technické Symbol pro návratový klíč , který zadává zalomení řádku
U+2409 9225 Symbol pro horizontální tabulku Ovládání obrázků Nahrazuje znak tabulátoru
U+240A 9226 Symbol pro řádkový posuv Ovládání obrázků Náhrada za line feed
U+240B 9227 Symbol pro vertikální tabulku Ovládání obrázků Náhrada za svislou záložku (řádková záložka)
U+240C 9228 Symbol pro podávání formuláře Ovládání obrázků Náhrada za zdroj formuláře (konec stránky)
U+240D 9229 Symbol pro návrat vozíku Ovládání obrázků Náhrada za vrácení kočáru
U+2420 9248 Symbol pro prostor Ovládání obrázků Náhrada za ASCII prostor
U+2422 9250 Prázdný symbol Ovládání obrázků aka „náhradní prázdné místo“, používané v BCDIC , EBCDIC , ASCII-1963 atd. jako symbol pro oddělovač slov
U+2423 9251 Otevřít krabici Ovládání obrázků Používá se v tiskací písmeno rukopis přinejmenším od roku 1980, kdy je nutné explicitně označují počet mezer (například při programování s tužkou a papírem). Používá se v učebnici (publikoval 1982, 1984, 1985, 1988 od Springer-Verlag) o Modula-2 , programovacím jazyce, kde vesmírné kódy vyžadují explicitní označení. Také se používá v klávesnici s Texas Instruments TI-8 x řada z grafů kalkulaček .
Pojmenovaná entita:␣
U+2424 9252 Symbol pro nový řádek Ovládání obrázků Náhradníci za přerušení řádku
U+25B3 9651 Bílý trojúhelník směřující nahoru Geometrické tvary Mezi další použití patří symbol ECMA-17 / ISO 2047 pro prostor ASCII
U+2A5B 10843 Logický Nebo se středním představcem Doplňkové
matematické
operátory
Mezi další použití patří symbol ECMA-17 / ISO 2047 pro svislou záložku (řádková záložka)
U+2AAA 10922 Menší než Doplňkové
matematické
operátory
Mezi další použití patří symbol ECMA-17 / ISO 2047 pro návrat vozíku
U+2AAB 10923 Větší než Doplňkové
matematické
operátory
Mezi další použití patří symbol ECMA-17 / ISO 2047 pro znak tabulátoru
U+3037 12343 Ideographic Telegraph Line Feed
Separator Symbol
Symboly
a interpunkce CJK
Grafika použitá pro kód 9999 v čínském telegrafním kódu , představující řádkový posuv
  1. ^ Nad nulovým klíčem „0“ nebo záporným „( -)“.
Přesný prostor
  • Cambridge Z88 poskytuje speciální „Přesný prostor“ (bod kódu 160 aka 0xA0) (invokable pomocí klávesové zkratky + SPACE), zobrazí jako „...“ ovladačem zobrazení operačního systému. Proto byl ve spojení s BBC BASIC znám také jako „tečkovaný prostor“ .
  • Pod kódovým bodem 224 (0xE0) počítač také poskytl speciální symbol tříprostorových buněk SPACE „SPC“ (analogický s jednobuněčným U+2420 v Unicode).

Mezery bez mezer

  • Braille Vzory Unicode blok obsahuje U + 2800 v Braillově písmu vzorem, BLANK (HTML  ⠀), je : Braille vzorek bez tečky zvýší. Některá písma zobrazují znak jako prázdnou šířku, ale standard Unicode výslovně uvádí, že nepůsobí jako mezera.
  • Pokrytí korejské abecedy Unicode zahrnuje několik kódových bodů, které představují absenci napsaného písmene, a proto nezobrazují glyf:
    • Unicode obsahuje znak Hangul Filler v bloku Hangul Compatibility Jamo ( U+3164 HANGUL FILLER (HTML  ㅤ)). Toto je klasifikováno jako písmeno, ale je zobrazeno jako prázdné místo, jako blok Hangul bez jamo. Používá se v kombinačních sekvencích KS X 1001 Hangul, které je zavádějí nebo označují nepřítomnost písmena v pozici, ale ne v kombinačním systému jamo Unicode.
    • Systém Unicode kombinující jamo používá podobné znaky Hangul Choseong Filler a Hangul Jungseong Filler k označení nepřítomnosti písmene v počáteční nebo mediální poloze v bloku slabik, které jsou obsaženy v bloku Hangul Jamo ( U+115F HANGUL CHOSEONG FILLER (HTML  ᅟ) , U+1160 HANGUL JUNGSEONG FILLER (HTML  ᅠ)).
    • Navíc Poloviční šířka Hangul výplň je zahrnuta v formulářů Poloviční šířka a s plnou šířkou ( U + FFA0 Poloviční šířka KOREJSKÁ FILLER (HTML  ᅠ)), který se používá při mapování z kódování, které zahrnují znaky jak Johab (nebo Wansung ) a N-byte hangul ( nebo jeho protějšek EBCDIC ), jako je IBM-933, který obsahuje výplně Johab i EBCDIC.

Mezery a digitální typografie

Zobrazení na obrazovce

Textové editory , textové procesory a software pro publikování na ploše se liší v tom, jak představují prázdné znaky na obrazovce a jak představují mezery na koncích řádků delší než šířka obrazovky nebo sloupce. V některých případech jsou mezery zobrazeny jednoduše jako prázdné místo; v jiných případech mohou být zastoupeny interpunktem nebo jinými symboly. K vytvoření mezer lze použít mnoho různých znaků (popsaných níže) a mezery mohou ovlivnit i neznakové funkce (například okraje a nastavení karet).

Prostor pro obecné použití s ​​proměnnou šířkou

V kódování počítačových znaků existuje normální prostor pro obecné účely (znak Unicode U+0020), jehož šířka se bude lišit podle designu písma. Typické hodnoty se pohybují od 1/5 em do 1/3 em (v digitální typografii se em rovná nominální velikosti písma, takže u 10bodového písma bude prostor pravděpodobně mezi 2 a 3,3 body). Sofistikovaná písma mohou mít různě velké mezery pro tučné, kurzíva a malé písmena a skladatelé často šířku mezery ručně upraví v závislosti na velikosti a význačnosti textu.

Kromě tohoto univerzálního prostoru je možné zakódovat i prostor konkrétní šířky. Kompletní seznam najdete v tabulce níže.

Prostory kolem vlasů kolem pomlček

Pomlčky Em používané jako oddělovače závorek a pomlčky, pokud se používají jako spojky slov, jsou obvykle nastaveny jako souvislé s textem. Takovou pomlčku však lze volitelně obklopit prostorem pro vlasy , U+200A nebo tenkým prostorem , U+2009. Prostor na vlasy lze zapsat do HTML pomocí odkazů na číselné znaky  nebo  , nebo pomocí pojmenované entity  , ale v prohlížečích není od roku 2016 dosud univerzálně podporován. Tenký prostor je pojmenován jako entita  a číselné odkazy  nebo  . Tyto mezery jsou mnohem tenčí než normální prostor (kromě monospaced (neproporcionálního) písma ), přičemž prostor pro vlasy je tenčí ze dvou.

Normální prostor versus vlasy a tenké mezery (vykresleno vaším prohlížečem)
Normální prostor s pomlčkou em levý pravý
Tenký prostor s em dash vlevo - vpravo
Prostor na vlasy s em dash levý pravý
Žádné místo s em dash levý pravý

Výpočetní aplikace

Programovací jazyky

V syntaxi programovacího jazyka se mezery často používají k explicitnímu oddělení tokenů . Ve většině jazyků se s více mezerami zachází stejně jako s jedním znakem mezer (mimo uvozovky); těmto jazykům se říká volná forma . V několika jazycích, včetně Haskell , occam , ABC a Python , se pro syntaktické účely používají mezery a odsazení. V satirickém jazyce, který se nazývá prázdné znaky, jsou prázdné znaky jedinými platnými znaky pro programování, zatímco ostatní znaky jsou ignorovány.

Nadměrné používání mezer, zejména mezery na konci řádků, je považováno za obtěžování. Správné použití mezer však může usnadnit čtení kódu a pomoci logice související se skupinami.

Většina jazyků rozpoznává pouze znaky ASCII jako prázdné znaky nebo v některých případech také nové řádky Unicode, ale ne většinu výše uvedených znaků. Jazyk C definuje mezery jako „mezeru, vodorovnou záložku, novou řádku, svislou záložku a podávání formulářů“. HTTP protokol sítě vyžaduje různé typy bílé znaky, které mají být použity v různých částech protokolu, jako je například: pouze znak mezery ve stavovém řádku CRLF na konci řádku, a „lineární mezery“ v hodnotách záhlaví.

Uživatelská rozhraní příkazového řádku

V příkazech zpracovaných příkazovými procesory , např. Ve skriptech a zadaných, může znak mezery způsobovat problémy, protože má dvě možné funkce: jako součást příkazu nebo parametru nebo jako parametr nebo oddělovač názvů . Nejednoznačnosti lze zabránit buď zákazem vložených mezer, nebo uzavřením názvu vloženými mezerami mezi znaky uvozovek.

Značkovací jazyky

Některé značkovací jazyky, například SGML , zachovávají mezery jako zapsané.

Webové značkovací jazyky, jako je XML a HTML, zacházejí s praktickými znaky zvláště pro mezery, včetně mezer, pro pohodlí programátorů. Jeden nebo více znaků mezer načtených odpovídajícími procesory zobrazovacího času těchto značkovacích jazyků se sbalí na 0 nebo 1 mezeru, v závislosti na jejich sémantickém kontextu. Například dvojité (nebo více) mezery v textu jsou sbaleny do jedné mezery a mezery, které se objevují na obou stranách " =", které oddělují název atributu od jeho hodnoty, nemají žádný vliv na interpretaci dokumentu. Koncové značky prvků mohou obsahovat mezery na konci a značky prázdných prvků v XML mohou obsahovat mezery před " />". V těchto jazycích zbytečné mezery zvyšují velikost souboru, a tak mohou zpomalovat síťové přenosy. Na druhé straně zbytečné mezery mohou také nenápadně označovat kód, podobně jako, ale méně zřejmé než komentáře v kódu. To může být žádoucí k prokázání porušení licence nebo autorských práv, ke kterému došlo kopírováním a vkládáním .

V hodnotách atributů XML jsou sekvence prázdných znaků považovány za jednu mezeru, když je dokument načten analyzátorem. Analyzátor tímto způsobem nezmění mezery v obsahu elementu XML, ale aplikace přijímající informace z analyzátoru se může rozhodnout použít podobná pravidla na obsah elementu. Autor dokumentu XML může pomocí xml:space="preserve"atributu na prvku instruovat analyzátor, aby odradil následnou aplikaci od změny mezer v obsahu tohoto prvku.

Ve většině prvků HTML je sekvence mezer prázdných znaků považována za jeden oddělovač mezisloví , což se může projevovat jako jeden znak mezery při vykreslování textu v jazyce, který normálně vkládá takový prostor mezi slova. Vyhovující vykreslovače HTML jsou vyžadovány k použití více doslovného zpracování mezer v rámci několika předepsaných prvků, jako je preznačka a jakýkoli prvek, pro který byl CSS použit pro prezpracování mezer podobného typu. V takových prvcích nebudou mezerové znaky „sbaleny“ do mezislovných oddělovačů.

V XML i HTML není nepřerušovaný znak mezery spolu s dalšími „nestandardními“ mezerami považován za skládací „mezery“, takže nepodléhá výše uvedeným pravidlům.

Názvy souborů

Takové použití je podobné víceslovným názvům souborů psaných pro operační systémy a aplikace, které jsou zaměněny vloženými mezerami - takové názvy souborů místo toho používají podtržítko (_) jako oddělovač slov, as_in_this_phrase.

Dalším takovým symbolem byl U+2422 BLANK SYMBOL . To bylo použito v raných letech počítačového programování při psaní na kódovacích formulářích. Operátoři Keypunch okamžitě rozpoznali symbol jako „explicitní mezeru“. Byl použit v BCDIC , EBCDIC a ASCII-1963 .

Viz také

Reference

externí odkazy