~ubuntu-branches/ubuntu/vivid/tesseract/vivid

« back to all changes in this revision

Viewing changes to doc/unicharset_extractor.1.html

  • Committer: Package Import Robot
  • Author(s): Jeff Breidenbach
  • Date: 2014-02-03 11:10:20 UTC
  • mfrom: (1.3.1) (19.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20140203111020-igquodd7pjlp3uri
Tags: 3.03.01-1
* New upstream release, includes critical fix to PDF rendering
* Complete leptonlib transition (see bug #735509)
* Promote from experimental to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
 
2
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 
3
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 
4
<head>
 
5
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 
6
<meta name="generator" content="AsciiDoc 8.5.2" />
 
7
<title>UNICHARSET_EXTRACTOR(1)</title>
 
8
<style type="text/css">
 
9
/* Debug borders */
 
10
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
 
11
/*
 
12
  border: 1px solid red;
 
13
*/
 
14
}
 
15
 
 
16
body {
 
17
  margin: 1em 5% 1em 5%;
 
18
}
 
19
 
 
20
a {
 
21
  color: blue;
 
22
  text-decoration: underline;
 
23
}
 
24
a:visited {
 
25
  color: fuchsia;
 
26
}
 
27
 
 
28
em {
 
29
  font-style: italic;
 
30
  color: navy;
 
31
}
 
32
 
 
33
strong {
 
34
  font-weight: bold;
 
35
  color: #083194;
 
36
}
 
37
 
 
38
tt {
 
39
  color: navy;
 
40
}
 
41
 
 
42
h1, h2, h3, h4, h5, h6 {
 
43
  color: #527bbd;
 
44
  font-family: sans-serif;
 
45
  margin-top: 1.2em;
 
46
  margin-bottom: 0.5em;
 
47
  line-height: 1.3;
 
48
}
 
49
 
 
50
h1, h2, h3 {
 
51
  border-bottom: 2px solid silver;
 
52
}
 
53
h2 {
 
54
  padding-top: 0.5em;
 
55
}
 
56
h3 {
 
57
  float: left;
 
58
}
 
59
h3 + * {
 
60
  clear: left;
 
61
}
 
62
 
 
63
div.sectionbody {
 
64
  font-family: serif;
 
65
  margin-left: 0;
 
66
}
 
67
 
 
68
hr {
 
69
  border: 1px solid silver;
 
70
}
 
71
 
 
72
p {
 
73
  margin-top: 0.5em;
 
74
  margin-bottom: 0.5em;
 
75
}
 
76
 
 
77
ul, ol, li > p {
 
78
  margin-top: 0;
 
79
}
 
80
 
 
81
pre {
 
82
  padding: 0;
 
83
  margin: 0;
 
84
}
 
85
 
 
86
span#author {
 
87
  color: #527bbd;
 
88
  font-family: sans-serif;
 
89
  font-weight: bold;
 
90
  font-size: 1.1em;
 
91
}
 
92
span#email {
 
93
}
 
94
span#revnumber, span#revdate, span#revremark {
 
95
  font-family: sans-serif;
 
96
}
 
97
 
 
98
div#footer {
 
99
  font-family: sans-serif;
 
100
  font-size: small;
 
101
  border-top: 2px solid silver;
 
102
  padding-top: 0.5em;
 
103
  margin-top: 4.0em;
 
104
}
 
105
div#footer-text {
 
106
  float: left;
 
107
  padding-bottom: 0.5em;
 
108
}
 
109
div#footer-badges {
 
110
  float: right;
 
111
  padding-bottom: 0.5em;
 
112
}
 
113
 
 
114
div#preamble {
 
115
  margin-top: 1.5em;
 
116
  margin-bottom: 1.5em;
 
117
}
 
118
div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
 
119
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
 
120
div.admonitionblock {
 
121
  margin-top: 1.0em;
 
122
  margin-bottom: 1.5em;
 
123
}
 
124
div.admonitionblock {
 
125
  margin-top: 2.0em;
 
126
  margin-bottom: 2.0em;
 
127
  margin-right: 10%;
 
128
  color: #606060;
 
129
}
 
130
 
 
131
div.content { /* Block element content. */
 
132
  padding: 0;
 
133
}
 
134
 
 
135
/* Block element titles. */
 
136
div.title, caption.title {
 
137
  color: #527bbd;
 
138
  font-family: sans-serif;
 
139
  font-weight: bold;
 
140
  text-align: left;
 
141
  margin-top: 1.0em;
 
142
  margin-bottom: 0.5em;
 
143
}
 
144
div.title + * {
 
145
  margin-top: 0;
 
146
}
 
147
 
 
148
td div.title:first-child {
 
149
  margin-top: 0.0em;
 
150
}
 
151
div.content div.title:first-child {
 
152
  margin-top: 0.0em;
 
153
}
 
154
div.content + div.title {
 
155
  margin-top: 0.0em;
 
156
}
 
157
 
 
158
div.sidebarblock > div.content {
 
159
  background: #ffffee;
 
160
  border: 1px solid silver;
 
161
  padding: 0.5em;
 
162
}
 
163
 
 
164
div.listingblock > div.content {
 
165
  border: 1px solid silver;
 
166
  background: #f4f4f4;
 
167
  padding: 0.5em;
 
168
}
 
169
 
 
170
div.quoteblock, div.verseblock {
 
171
  padding-left: 1.0em;
 
172
  margin-left: 1.0em;
 
173
  margin-right: 10%;
 
174
  border-left: 5px solid #dddddd;
 
175
  color: #777777;
 
176
}
 
177
 
 
178
div.quoteblock > div.attribution {
 
179
  padding-top: 0.5em;
 
180
  text-align: right;
 
181
}
 
182
 
 
183
div.verseblock > div.content {
 
184
  white-space: pre;
 
185
}
 
186
div.verseblock > div.attribution {
 
187
  padding-top: 0.75em;
 
188
  text-align: left;
 
189
}
 
190
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
 
191
div.verseblock + div.attribution {
 
192
  text-align: left;
 
193
}
 
194
 
 
195
div.admonitionblock .icon {
 
196
  vertical-align: top;
 
197
  font-size: 1.1em;
 
198
  font-weight: bold;
 
199
  text-decoration: underline;
 
200
  color: #527bbd;
 
201
  padding-right: 0.5em;
 
202
}
 
203
div.admonitionblock td.content {
 
204
  padding-left: 0.5em;
 
205
  border-left: 3px solid #dddddd;
 
206
}
 
207
 
 
208
div.exampleblock > div.content {
 
209
  border-left: 3px solid #dddddd;
 
210
  padding-left: 0.5em;
 
211
}
 
212
 
 
213
div.imageblock div.content { padding-left: 0; }
 
214
span.image img { border-style: none; }
 
215
a.image:visited { color: white; }
 
216
 
 
217
dl {
 
218
  margin-top: 0.8em;
 
219
  margin-bottom: 0.8em;
 
220
}
 
221
dt {
 
222
  margin-top: 0.5em;
 
223
  margin-bottom: 0;
 
224
  font-style: normal;
 
225
  color: navy;
 
226
}
 
227
dd > *:first-child {
 
228
  margin-top: 0.1em;
 
229
}
 
230
 
 
231
ul, ol {
 
232
    list-style-position: outside;
 
233
}
 
234
ol.arabic {
 
235
  list-style-type: decimal;
 
236
}
 
237
ol.loweralpha {
 
238
  list-style-type: lower-alpha;
 
239
}
 
240
ol.upperalpha {
 
241
  list-style-type: upper-alpha;
 
242
}
 
243
ol.lowerroman {
 
244
  list-style-type: lower-roman;
 
245
}
 
246
ol.upperroman {
 
247
  list-style-type: upper-roman;
 
248
}
 
249
 
 
250
div.compact ul, div.compact ol,
 
251
div.compact p, div.compact p,
 
252
div.compact div, div.compact div {
 
253
  margin-top: 0.1em;
 
254
  margin-bottom: 0.1em;
 
255
}
 
256
 
 
257
div.tableblock > table {
 
258
  border: 3px solid #527bbd;
 
259
}
 
260
thead, p.table.header {
 
261
  font-family: sans-serif;
 
262
  font-weight: bold;
 
263
}
 
264
tfoot {
 
265
  font-weight: bold;
 
266
}
 
267
td > div.verse {
 
268
  white-space: pre;
 
269
}
 
270
p.table {
 
271
  margin-top: 0;
 
272
}
 
273
/* Because the table frame attribute is overriden by CSS in most browsers. */
 
274
div.tableblock > table[frame="void"] {
 
275
  border-style: none;
 
276
}
 
277
div.tableblock > table[frame="hsides"] {
 
278
  border-left-style: none;
 
279
  border-right-style: none;
 
280
}
 
281
div.tableblock > table[frame="vsides"] {
 
282
  border-top-style: none;
 
283
  border-bottom-style: none;
 
284
}
 
285
 
 
286
 
 
287
div.hdlist {
 
288
  margin-top: 0.8em;
 
289
  margin-bottom: 0.8em;
 
290
}
 
291
div.hdlist tr {
 
292
  padding-bottom: 15px;
 
293
}
 
294
dt.hdlist1.strong, td.hdlist1.strong {
 
295
  font-weight: bold;
 
296
}
 
297
td.hdlist1 {
 
298
  vertical-align: top;
 
299
  font-style: normal;
 
300
  padding-right: 0.8em;
 
301
  color: navy;
 
302
}
 
303
td.hdlist2 {
 
304
  vertical-align: top;
 
305
}
 
306
div.hdlist.compact tr {
 
307
  margin: 0;
 
308
  padding-bottom: 0;
 
309
}
 
310
 
 
311
.comment {
 
312
  background: yellow;
 
313
}
 
314
 
 
315
.footnote, .footnoteref {
 
316
  font-size: 0.8em;
 
317
}
 
318
 
 
319
span.footnote, span.footnoteref {
 
320
  vertical-align: super;
 
321
}
 
322
 
 
323
#footnotes {
 
324
  margin: 20px 0 20px 0;
 
325
  padding: 7px 0 0 0;
 
326
}
 
327
 
 
328
#footnotes div.footnote {
 
329
  margin: 0 0 5px 0;
 
330
}
 
331
 
 
332
#footnotes hr {
 
333
  border: none;
 
334
  border-top: 1px solid silver;
 
335
  height: 1px;
 
336
  text-align: left;
 
337
  margin-left: 0;
 
338
  width: 20%;
 
339
  min-width: 100px;
 
340
}
 
341
 
 
342
 
 
343
@media print {
 
344
  div#footer-badges { display: none; }
 
345
}
 
346
 
 
347
div#toc {
 
348
  margin-bottom: 2.5em;
 
349
}
 
350
 
 
351
div#toctitle {
 
352
  color: #527bbd;
 
353
  font-family: sans-serif;
 
354
  font-size: 1.1em;
 
355
  font-weight: bold;
 
356
  margin-top: 1.0em;
 
357
  margin-bottom: 0.1em;
 
358
}
 
359
 
 
360
div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
 
361
  margin-top: 0;
 
362
  margin-bottom: 0;
 
363
}
 
364
div.toclevel2 {
 
365
  margin-left: 2em;
 
366
  font-size: 0.9em;
 
367
}
 
368
div.toclevel3 {
 
369
  margin-left: 4em;
 
370
  font-size: 0.9em;
 
371
}
 
372
div.toclevel4 {
 
373
  margin-left: 6em;
 
374
  font-size: 0.9em;
 
375
}
 
376
/* Overrides for manpage documents */
 
377
h1 {
 
378
  padding-top: 0.5em;
 
379
  padding-bottom: 0.5em;
 
380
  border-top: 2px solid silver;
 
381
  border-bottom: 2px solid silver;
 
382
}
 
383
h2 {
 
384
  border-style: none;
 
385
}
 
386
div.sectionbody {
 
387
  margin-left: 5%;
 
388
}
 
389
 
 
390
@media print {
 
391
  div#toc { display: none; }
 
392
}
 
393
 
 
394
/* Workarounds for IE6's broken and incomplete CSS2. */
 
395
 
 
396
div.sidebar-content {
 
397
  background: #ffffee;
 
398
  border: 1px solid silver;
 
399
  padding: 0.5em;
 
400
}
 
401
div.sidebar-title, div.image-title {
 
402
  color: #527bbd;
 
403
  font-family: sans-serif;
 
404
  font-weight: bold;
 
405
  margin-top: 0.0em;
 
406
  margin-bottom: 0.5em;
 
407
}
 
408
 
 
409
div.listingblock div.content {
 
410
  border: 1px solid silver;
 
411
  background: #f4f4f4;
 
412
  padding: 0.5em;
 
413
}
 
414
 
 
415
div.quoteblock-attribution {
 
416
  padding-top: 0.5em;
 
417
  text-align: right;
 
418
}
 
419
 
 
420
div.verseblock-content {
 
421
  white-space: pre;
 
422
}
 
423
div.verseblock-attribution {
 
424
  padding-top: 0.75em;
 
425
  text-align: left;
 
426
}
 
427
 
 
428
div.exampleblock-content {
 
429
  border-left: 3px solid #dddddd;
 
430
  padding-left: 0.5em;
 
431
}
 
432
 
 
433
/* IE6 sets dynamically generated links as visited. */
 
434
div#toc a:visited { color: blue; }
 
435
</style>
 
436
<script type="text/javascript">
 
437
/*<![CDATA[*/
 
438
window.onload = function(){asciidoc.footnotes();}
 
439
var asciidoc = {  // Namespace.
 
440
 
 
441
/////////////////////////////////////////////////////////////////////
 
442
// Table Of Contents generator
 
443
/////////////////////////////////////////////////////////////////////
 
444
 
 
445
/* Author: Mihai Bazon, September 2002
 
446
 * http://students.infoiasi.ro/~mishoo
 
447
 *
 
448
 * Table Of Content generator
 
449
 * Version: 0.4
 
450
 *
 
451
 * Feel free to use this script under the terms of the GNU General Public
 
452
 * License, as long as you do not remove or alter this notice.
 
453
 */
 
454
 
 
455
 /* modified by Troy D. Hanson, September 2006. License: GPL */
 
456
 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
 
457
 
 
458
// toclevels = 1..4.
 
459
toc: function (toclevels) {
 
460
 
 
461
  function getText(el) {
 
462
    var text = "";
 
463
    for (var i = el.firstChild; i != null; i = i.nextSibling) {
 
464
      if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
 
465
        text += i.data;
 
466
      else if (i.firstChild != null)
 
467
        text += getText(i);
 
468
    }
 
469
    return text;
 
470
  }
 
471
 
 
472
  function TocEntry(el, text, toclevel) {
 
473
    this.element = el;
 
474
    this.text = text;
 
475
    this.toclevel = toclevel;
 
476
  }
 
477
 
 
478
  function tocEntries(el, toclevels) {
 
479
    var result = new Array;
 
480
    var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
 
481
    // Function that scans the DOM tree for header elements (the DOM2
 
482
    // nodeIterator API would be a better technique but not supported by all
 
483
    // browsers).
 
484
    var iterate = function (el) {
 
485
      for (var i = el.firstChild; i != null; i = i.nextSibling) {
 
486
        if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
 
487
          var mo = re.exec(i.tagName);
 
488
          if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
 
489
            result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
 
490
          }
 
491
          iterate(i);
 
492
        }
 
493
      }
 
494
    }
 
495
    iterate(el);
 
496
    return result;
 
497
  }
 
498
 
 
499
  var toc = document.getElementById("toc");
 
500
  var entries = tocEntries(document.getElementById("content"), toclevels);
 
501
  for (var i = 0; i < entries.length; ++i) {
 
502
    var entry = entries[i];
 
503
    if (entry.element.id == "")
 
504
      entry.element.id = "_toc_" + i;
 
505
    var a = document.createElement("a");
 
506
    a.href = "#" + entry.element.id;
 
507
    a.appendChild(document.createTextNode(entry.text));
 
508
    var div = document.createElement("div");
 
509
    div.appendChild(a);
 
510
    div.className = "toclevel" + entry.toclevel;
 
511
    toc.appendChild(div);
 
512
  }
 
513
  if (entries.length == 0)
 
514
    toc.parentNode.removeChild(toc);
 
515
},
 
516
 
 
517
 
 
518
/////////////////////////////////////////////////////////////////////
 
519
// Footnotes generator
 
520
/////////////////////////////////////////////////////////////////////
 
521
 
 
522
/* Based on footnote generation code from:
 
523
 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
 
524
 */
 
525
 
 
526
footnotes: function () {
 
527
  var cont = document.getElementById("content");
 
528
  var noteholder = document.getElementById("footnotes");
 
529
  var spans = cont.getElementsByTagName("span");
 
530
  var refs = {};
 
531
  var n = 0;
 
532
  for (i=0; i<spans.length; i++) {
 
533
    if (spans[i].className == "footnote") {
 
534
      n++;
 
535
      // Use [\s\S] in place of . so multi-line matches work.
 
536
      // Because JavaScript has no s (dotall) regex flag.
 
537
      note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
 
538
      noteholder.innerHTML +=
 
539
        "<div class='footnote' id='_footnote_" + n + "'>" +
 
540
        "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
 
541
        n + "</a>. " + note + "</div>";
 
542
      spans[i].innerHTML =
 
543
        "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
 
544
        "' title='View footnote' class='footnote'>" + n + "</a>]";
 
545
      var id =spans[i].getAttribute("id");
 
546
      if (id != null) refs["#"+id] = n;
 
547
    }
 
548
  }
 
549
  if (n == 0)
 
550
    noteholder.parentNode.removeChild(noteholder);
 
551
  else {
 
552
    // Process footnoterefs.
 
553
    for (i=0; i<spans.length; i++) {
 
554
      if (spans[i].className == "footnoteref") {
 
555
        var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
 
556
        href = href.match(/#.*/)[0];  // Because IE return full URL.
 
557
        n = refs[href];
 
558
        spans[i].innerHTML =
 
559
          "[<a href='#_footnote_" + n +
 
560
          "' title='View footnote' class='footnote'>" + n + "</a>]";
 
561
      }
 
562
    }
 
563
  }
 
564
}
 
565
 
 
566
}
 
567
/*]]>*/
 
568
</script>
 
569
</head>
 
570
<body>
 
571
<div id="header">
 
572
<h1>
 
573
UNICHARSET_EXTRACTOR(1) Manual Page
 
574
</h1>
 
575
<h2>NAME</h2>
 
576
<div class="sectionbody">
 
577
<p>unicharset_extractor -
 
578
   extract unicharset from Tesseract boxfiles
 
579
</p>
 
580
</div>
 
581
</div>
 
582
<div id="content">
 
583
<h2 id="_synopsis">SYNOPSIS</h2>
 
584
<div class="sectionbody">
 
585
<div class="paragraph"><p><strong>unicharset_extractor</strong> <em>[-D dir]</em> <em>FILE</em>&#8230;</p></div>
 
586
</div>
 
587
<h2 id="_description">DESCRIPTION</h2>
 
588
<div class="sectionbody">
 
589
<div class="paragraph"><p>Tesseract needs to know the set of possible characters it can output.
 
590
To generate the unicharset data file, use the unicharset_extractor
 
591
program on the same training pages bounding box files as used for
 
592
clustering:</p></div>
 
593
<div class="literalblock">
 
594
<div class="content">
 
595
<pre><tt>unicharset_extractor fontfile_1.box fontfile_2.box ...</tt></pre>
 
596
</div></div>
 
597
<div class="paragraph"><p>The unicharset will be put into the file <em>dir/unicharset</em>, or simply
 
598
<em>./unicharset</em> if no output directory is provided.</p></div>
 
599
<div class="paragraph"><p>Tesseract also needs to have access to character properties isalpha,
 
600
isdigit, isupper, islower, ispunctuation. all of this auxilury data
 
601
and more is encoded in this file. (See unicharset(5))</p></div>
 
602
<div class="paragraph"><p>If your system supports the wctype functions, these values will be set
 
603
automatically by unicharset_extractor and there is no need to edit the
 
604
unicharset file. On some older systems (eg Windows 95), the unicharset
 
605
file must be edited by hand to add these property description codes.</p></div>
 
606
<div class="paragraph"><p><strong>NOTE</strong> The unicharset file must be regenerated whenever inttemp, normproto
 
607
and pffmtable are generated (i.e. they must all be recreated when the box
 
608
file is changed) as they have to be in sync. This is made easier than in
 
609
previous versions by running unicharset_extractor before mftraining and
 
610
cntraining, and giving the unicharset to mftraining.</p></div>
 
611
</div>
 
612
<h2 id="_see_also">SEE ALSO</h2>
 
613
<div class="sectionbody">
 
614
<div class="paragraph"><p>tesseract(1), unicharset(5)</p></div>
 
615
<div class="paragraph"><p><a href="http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3">http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3</a></p></div>
 
616
</div>
 
617
<h2 id="_history">HISTORY</h2>
 
618
<div class="sectionbody">
 
619
<div class="paragraph"><p>unicharset_extractor first appeared in Tesseract 2.00.</p></div>
 
620
</div>
 
621
<h2 id="_copying">COPYING</h2>
 
622
<div class="sectionbody">
 
623
<div class="paragraph"><p>Copyright (C) 2006, Google Inc.
 
624
Licensed under the Apache License, Version 2.0</p></div>
 
625
</div>
 
626
<h2 id="_author">AUTHOR</h2>
 
627
<div class="sectionbody">
 
628
<div class="paragraph"><p>The Tesseract OCR engine was written by Ray Smith and his research groups
 
629
at Hewlett Packard (1985-1995) and Google (2006-present).</p></div>
 
630
</div>
 
631
</div>
 
632
<div id="footnotes"><hr /></div>
 
633
<div id="footer">
 
634
<div id="footer-text">
 
635
Last updated 2012-02-09 09:19:05 PDT
 
636
</div>
 
637
</div>
 
638
</body>
 
639
</html>