<meta http-equiv='pics-label' content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline EN v2.0" l gen true for "http://interval.cz" r (nz 1 vz 1 lz 1 oz 1 cz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://interval.cz" r (n 0 s 0 v 0 l 0))' />
<p id='prepend'>Bez text∙ se neobejde ani XML jazyk pro grafiku a kreslenφ. Naopak, dß se dokonce °φci, ₧e nativnφ spojenφ grafiky a textovΘho obsahu, kter² je zpracovßvßn stejn²mi mechanismy jako grafika, je jednou z nejv∞tÜφch p°ednostφ Scalable Vector Graphic.</p>
<p>Mo₧nosti typografickΘho formßtovßnφ jsou v SVG velmi ÜirokΘ, vΦetn∞ nap°φklad umφst∞nφ textu na k°ivku nebo zßpisu japonsk²ch znak∙. Na druhΘ stran∞ SVG 1.1 nenφ p°φliÜ vhodnΘ pro zpracovßnφ velkΘho mno₧stvφ textu, to by m∞la vy°eÜit a₧ specifikace SVG 1.2. Zcela urΦit∞ ale jeÜt∞ chvφli potrvß, ne₧ se objevφ adekvßtnφ podpora v prohlφ₧eΦφch.</p>
<p>V tomto Φlßnku probereme textov² prvek dosti struΦn∞, uvidφte ovÜem p°i praktickΘm nasazenφ SVG, ₧e i takov² struΦn² popis pokr²vß v∞tÜinu b∞₧n²ch pot°eb.</p>
<h3>K≤dovßnφ textu</h3>
<p>Pro jinΘ ne₧ anglickΘ texty v°ele doporuΦuji k≤dovßnφ UTF-8, kterΘ by m∞ly um∞t vÜechny SVG prohlφ₧eΦe a nem∞li byste mφt problΘmy ani s editovßnφm takov²ch soubor∙. V²born∞ je zvlßdß nap°φklad pod MacOS editor BBEdit6+ nebo Linuxov² KWrite z KDE3+. HlaviΦka souboru by pak m∞la vypadat takto:</p>
<div class='sample'>
<?xml version="1.0" encoding="utf-8"?>
</div>
<h3>Element <code>text</code></h3>
<p>Zßkladnφm prvkem pro vklßdßnφ textu je element <code>text</code>. Pro formßtovßnφ se pou₧φvajφ atributy z normy CSS a takΘ mnoho dalÜφch, kterΘ zatφm pomineme.</p>
<div class='sample'>
<text x="250" y="150"
<br /> font-family="Helvetica" font-size="55"
<br /> fill="blue" >
<br /> pokus
<br /></text>
</div>
<p>Atributy elementu <code>text</code>:</p>
<div class='list'>
<ul>
<li><code>x</code>, <code>y</code> - poloha textu, m∞°eno k ·Φa°φ prvnφho znaku °et∞zce (·Φa°φ je zßkladnφ linka na kterΘ "sedφ" pφsmena)</li>
<li><code>font-family</code> - tento atribut nastavuje pou₧itΘ pφsmo podle pravidel obvykl²ch v CSS</li>
<p>Ka₧d² textov² element zp∙sobφ vykreslenφ jednoho textovΘho °et∞zce. Je t°eba zd∙raznit zßsadnφ odliÜnost od HTML - v SVG verze 1.1 neexistuje automatickΘ p°elΘvßnφ textu v rßmci vφce °ßdek. Efektu odstavce s vφce °ßdky se dosahuje tak, ₧e se p°edem urΦφ, kterß slova se vejdou na kter² °ßdek, a potom se slova z jednoho °ßdku uzav°ou zvlßÜ¥ do elementu <code>tspan</code> vno°enΘho v bloku <code>text</code>, kter² tak supluje textov² rßmeΦek. Ka₧d² <code>tspan</code> se musφ ruΦn∞ odsadit pomocφ atribut∙ "x", "y", "dx" a "dy". Ned∞ste se, grafickΘ editory toto provedou zcela automaticky, bez nutnosti manußlnφch zßsah∙.</p>
<div class='sample'>
<?xml version="1.0" standalone="no"?>
<br /><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
<br /><span class='comment'>Zobrazenφ odstavcovΘho textu (<a href='podklady/hejral/870/041.svg'>originßlnφ SVG, cca 1 kB</a>)</span>
</div>
<h3>Element <code>tspan</code></h3>
<p>Element <code>tspan</code> umo₧≥uje p°i°azenφ specifick²ch typografick²ch vlastnostφ ka₧dΘmu jednotlivΘmu znaku. K tomu vyu₧φvß nßsledujφcφ atributy:</p>
<div class='list'>
<dl>
<dt><code>dx</code> = (posun)+</dt>
<dd>Atribut udßvß dodateΦn² (relativnφ) posun znak∙ uvnit° aktußlnφho textovΘho prvku. M∙₧ete zde uvΘst i vφce hodnot ne₧ jen jednu. Ka₧dß dalÜφ (x.) hodnota odpovφdß ruΦnφmu kerningu (odsazenφ) mezi pφsmenem na pozici (x) a (x-1).</dd>
<dt><samp>dy</samp> = (posun)+</dt>
<dd>Tento atribut je p°esn∞ analogick² k chovßnφ atributu "dx", jenom posouvß znaky nahoru Φi dol∙ oproti jejich standardnφmu ·Φa°φ. M∙₧ete takto vytvo°it nap°φklad hornφ Φi dolnφ indexy a podobn∞.</dd>
<dt><samp>rotate</samp> = (·hel)+</dt>
<dd>DodateΦnΘ pootoΦenφ ka₧dΘho znaku v aktußlnφm textovΘm prvku. Op∞t m∙₧e obsahovat vφce hodnot, pak analogicky (n.) hodnota pootoΦφ (n.) znak.</dd>
</dl>
</div>
<p>Nßsledujφcφ k≤d zv∞tÜφ mezipφsmennΘ mezery ve slov∞ "Latin" a slovo "Hebrew" zobrazφ s p°evrßcen²m po°adφm pφsmen:</p>
<li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3476'>Kurz SVG - vypl≥ovßnφ I</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3479'>PPWizard - pokroΦilß makra, podmφnky a standardnφ definice</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3478'>Transformace dat z databßze pomocφ XSL v .NET jednoduÜe</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3481'>Strßnkovßnφ v ovlßdacφm prvku DataGrid bez pou₧itφ PostBack</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3477'>Zpracovßnφ databßzov²ch dat p°es XSLT v ASP</a></li>
</ul>
</div>
</div>
<div class='page-right-box cauldron'>
<h3>Diskuznφ kotel</h3>
<div class='page-right-box-in'>
<ul>
<li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3473' title='(25 komentß°∙)'>Sedφm na konßri a Φtu Computerworld</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3468' title='(23 komentß°∙)'>PPWizard - tvo°φme a spravujeme WWW strßnky</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3474' title='(22 komentß°∙)'>PφÜeme pro web - o sφle slov</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3464' title='(15 komentß°∙)'>Kurz SVG - grafickß primitiva</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3472' title='(10 komentß°∙)'>Cryptography v .NET - Symmetric a Asymmetric encryption</a></li>