ch08s07.html
13.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Inserting Unicode entities</title><link rel="stylesheet" type="text/css" href="manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.0"><link rel="home" href="index.html" title="JpGraph Manual"><link rel="up" href="ch08.html" title="Chapter 8. Text and font handling"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Inserting Unicode entities</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center">Chapter 8. Text and font handling</th><td width="20%" align="right"> </td></tr></table><hr></div><div class="sect1" title="Inserting Unicode entities"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.inserting-unicode"></a>Inserting Unicode entities</h2></div></div></div>
<p>One reason for using TTF fonts is the possibility to inserting unicode
character/entities. With this we mean characters from the extended range that are
not normally available on West european keyboards. This could for example be
classical Greek characters often used in mathematics, for example the symbol for
"pi". In order to make these and other commonly used "special" characters more
accessible the library provides a utility class that makes it easy to use these
characters without having to look up the corresponding unicode entities every
time.</p>
<p>In order to specify characters not available on the keyboard the normal way is to
specify there unicode code and included it in the text string with the prefix
"&#". For example the unicode for the character "pi" is "03C0" in hex so to
include this character in a text string you would have to write "This is pi
&#0960;" note that the code should be given in decimal encoding in the string
and always use 4 digits (pre-padded with 0:s as necessary). Since it is very tedious
to lookup and encode special characters the library offers a simpler way. The
<code class="code">SymChar</code> class. </p>
<p>
</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
<p>This section can be skipped at first reading without loss of
continuity.</p>
</div><p>
</p>
<div class="sect2" title='The utility class "SymChar"'><div class="titlepage"><div><div><h3 class="title"><a name="id2499171"></a>The utility class "SymChar"</h3></div></div></div>
<p>As described above it is tedious to have to lookup all the character codes. To
simplify this the SymChar class allows you to find these characters with the
english common name of these symbols instead. For example to create a string
with the Greek character "pi" one would have to write the code as shown
in.</p>
<div class="example"><a name="ex.sym-char-ex1"></a><p class="title"><b>Example 8.2. Using the SymChar class to display the Greek letter "pi"</b></p><div class="example-contents">
<div class="hl-main"><table class="hl-table" width="100%"><tr><td class="hl-gutter" align="right" valign="top"><pre>1
2
3
4
5
6
</pre></td><td class="hl-main" valign="top"><pre><span class="hl-inlinetags"><?php</span><span class="hl-code">
</span><span class="hl-comment">//</span><span class="hl-comment"> ...</span><span class="hl-comment"></span><span class="hl-code">
</span><span class="hl-var">$pi</span><span class="hl-code"> = </span><span class="hl-identifier">SymChar</span><span class="hl-code">::</span><span class="hl-identifier">Get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">pi</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$graph</span><span class="hl-code">-></span><span class="hl-identifier">title</span><span class="hl-code">-></span><span class="hl-identifier">Set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Test is pi</span><span class="hl-quotes">'</span><span class="hl-code">.</span><span class="hl-var">$pi</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-comment">//</span><span class="hl-comment"> ...</span><span class="hl-comment"></span><span class="hl-code">
</span><span class="hl-inlinetags">?></span></pre></td></tr></table></div>
</div></div><br class="example-break">
<p>All supported entities with there symbolic names are listed in <a class="xref" href="ch08s07.html#tab.sym-char-list" title="Table 8.3. Supported character entities in class SymChar">Table 8.3. Supported character entities in class SymChar</a>. The first argument to the static method
<code class="code">SymChar::Get()</code> should be the name of the entity and if the
second optional argument is true then the capital version (if it exists) of the
symbol should be returned.</p>
<p>
</p><div class="table"><a name="tab.sym-char-list"></a><p class="title"><b>Table 8.3. Supported character entities in class SymChar</b></p><div class="table-contents">
<table summary="Supported character entities in class SymChar" border="1"><colgroup><col class="c1"><col class="c2"><col class="c3"><col class="c4"></colgroup><thead><tr><th>Name</th><th>Unicode </th><th>Unicode capital</th><th>Comment</th></tr></thead><tbody><tr><td>"alpha"</td><td>03B1</td><td>0391</td><td>Greek character</td></tr><tr><td>"beta"</td><td>03B2</td><td>0392</td><td>Greek character</td></tr><tr><td>"gamma"</td><td>03B3</td><td>0393</td><td>Greek character</td></tr><tr><td>"delta"</td><td>03B4</td><td>0394</td><td>Greek character</td></tr><tr><td>"epsilon"</td><td>03B5</td><td>0395</td><td>Greek character</td></tr><tr><td>"zeta"</td><td>03B6</td><td>0396</td><td>Greek character</td></tr><tr><td>"ny"</td><td>03B7</td><td>0397</td><td>Greek character</td></tr><tr><td>"eta"</td><td>03B8</td><td>0398</td><td>Greek character</td></tr><tr><td>"theta"</td><td>03B8</td><td>0398</td><td>Greek character</td></tr><tr><td>"iota"</td><td>03B9</td><td>0399</td><td>Greek character</td></tr><tr><td>"kappa"</td><td>03BA</td><td>039A</td><td>Greek character</td></tr><tr><td>"lambda"</td><td>03BB</td><td>039B</td><td>Greek character</td></tr><tr><td>"mu"</td><td>03BC</td><td>039C</td><td>Greek character</td></tr><tr><td>"nu"</td><td>03BD</td><td>039D</td><td>Greek character</td></tr><tr><td>"xi"</td><td>03BE</td><td>039E</td><td>Greek character</td></tr><tr><td>"omicron"</td><td>03BF</td><td>039F</td><td>Greek character</td></tr><tr><td>"pi"</td><td>03C0</td><td>03A0</td><td>Greek character</td></tr><tr><td>"rho"</td><td>03C1</td><td>03A1</td><td>Greek character</td></tr><tr><td>"sigma"</td><td>03C3</td><td>03A3</td><td>Greek character</td></tr><tr><td>"tau"</td><td>03C4</td><td>03A4</td><td>Greek character</td></tr><tr><td>"upsilon"</td><td>03C5</td><td>03A5</td><td>Greek character</td></tr><tr><td>"phi"</td><td>03C6</td><td>03A6</td><td>Greek character</td></tr><tr><td>"chi"</td><td>03C7</td><td>03A7</td><td>Greek character</td></tr><tr><td>"psi"</td><td>03C8</td><td>03A8</td><td>Greek character</td></tr><tr><td>"omega"</td><td>03C9</td><td>03A9</td><td>Greek character</td></tr><tr><td>"euro"</td><td>20AC</td><td> </td><td>Monetary symbol</td></tr><tr><td>"yen"</td><td>00A5</td><td> </td><td>Monetary symbol</td></tr><tr><td>"pound"</td><td>20A4</td><td> </td><td>Monetary symbol</td></tr><tr><td>"approx"</td><td>2248</td><td> </td><td>Mathematical</td></tr><tr><td>"neq"</td><td>2260</td><td> </td><td>Mathematical</td></tr><tr><td>"not"</td><td>2310</td><td> </td><td>Mathematical</td></tr><tr><td>"def"</td><td>2261</td><td> </td><td>Mathematical</td></tr><tr><td>"inf"</td><td>221E</td><td> </td><td>Mathematical</td></tr><tr><td>"sqrt"</td><td>221A</td><td> </td><td>Mathematical</td></tr><tr><td>"int"</td><td>222B</td><td> </td><td>Mathematical</td></tr><tr><td>"copy"</td><td>00A9</td><td> </td><td>Misc symbols</td></tr><tr><td>"para"</td><td>00A7</td><td> </td><td>Misc symbols</td></tr><tr><td>"tm"</td><td>2122</td><td> </td><td>Misc symbols</td></tr><tr><td>"rtm"</td><td>00AE</td><td> </td><td>Misc symbols</td></tr></tbody></table>
</div></div><p><br class="table-break">
</p>
<p><a class="xref" href="ch08s07.html#fig.sym-char-list" title="Figure 8.6. Rendered symbol characters corresponding to">Figure 8.6. Rendered symbol characters corresponding to
</a> and <a class="xref" href="ch08s07.html#fig.sym-char-capital-list" title="Figure 8.7. Rendered capital symbol characters corresponding to Table 8.3. Supported character entities in class SymChar.">Figure 8.7. Rendered capital symbol characters corresponding to Table 8.3. Supported character entities in class SymChar. </a> shows how these symbol look when
they are rendered with the TTF font <span class="italic">Times Roman 14pt</span>. The symbols are in the same order
as in the table above and are visually grouped by there category as specified in
the column "Comment" in the table above.</p>
<p>
</p><div class="figure"><a name="fig.sym-char-list"></a><p class="title"><b>Figure 8.6. Rendered symbol characters corresponding to
</b></p><div class="figure-contents">
<div class="mediaobject"><img src="images/sym-char-list.png" alt="Rendered symbol characters corresponding to"></div>
</div></div><p><br class="figure-break">
</p>
<p>
</p><div class="figure"><a name="fig.sym-char-capital-list"></a><p class="title"><b>Figure 8.7. Rendered capital symbol characters corresponding to <a class="xref" href="ch08s07.html#tab.sym-char-list" title="Table 8.3. Supported character entities in class SymChar">Table 8.3. Supported character entities in class SymChar</a>. </b></p><div class="figure-contents">
<div class="mediaobject"><img src="images/sym-char-list-capital.png" alt="Rendered capital symbol characters corresponding to ."></div>
</div></div><p><br class="figure-break">
</p>
</div>
<div class="sect2" title="Graph example with Greek labels"><div class="titlepage"><div><div><h3 class="title"><a name="id2500148"></a>Graph example with Greek labels</h3></div></div></div>
<p>In <a class="xref" href="ch08s07.html#fig.manualtickex2" title="Figure 8.8. Specifying manual ticks as fraction of Pi. (manualtickex2.php)">Figure 8.8. Specifying manual ticks as fraction of Pi. <code class="uri"><a class="uri" href="example_src/manualtickex2.html" target="_top">(<code class="filename">manualtickex2.php</code>)</a></code> </a> we have used the previous discussed
<code class="code">SymChar</code> class to more readily insert "π" characters in the
X-axis label. We highlight some functionality that we haven't yet discussed in
detail</p>
<p>
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
<p>We use a utility class (<code class="code">FuncGenerator</code> available in
"<code class="filename">jpgraph_utils.inc.php</code>") to help create
plot values from a mathematical expression. This will help create a
set of (x,y) points that can later on be used as the base for a data
series.</p>
</li><li class="listitem">
<p>The x-axis labels and the position of the tick marks on the x-axis
are manually positioned and specified to be positioned at "even"
fractions of π.</p>
</li></ol></div><p>
</p>
<p>
</p><div class="figure"><a name="fig.manualtickex2"></a><p class="title"><b>Figure 8.8. Specifying manual ticks as fraction of Pi. <code class="uri"><a class="uri" href="example_src/manualtickex2.html" target="_top">(<code class="filename">manualtickex2.php</code>)</a></code> </b></p><div class="figure-contents"> <span class="inlinemediaobject"><img src="images/manualtickex2.png" alt="Specifying manual ticks as fraction of Pi. (manualtickex2.php)"></span> </div></div><p><br class="figure-break">
</p>
</div>
</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"><a accesskey="u" href="ch08.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>