Unicharset — Incomplete properties

Hi,
I get some strange result when I try to train Tesseract.
Some part are very improved comparing to the default eng.tessdata, when some part are strangely added or modified, while the image quality is very good (24 become eat ???; uppercase letter become lowercase; some words are cut in two words; etc)
I think it may be cause by unicharset.
Indeed, when I try to generate a unicharset file with the following command :
unicharset_extractor eng.palladio-regular.exp8.box
I get an incomplete file. Here the result :
    115
    NULL 0 NULL 0
    Joined 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# Joined [4a 6f 69 6e 65 64 ]
    |Broken|0|1 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# Broken
    d 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# d [64 ]
    i 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# i [69 ]
    f 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# f [66 ]
    e 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# e [65 ]
    r 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# r [72 ]
    n 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# n [6e ]
    t 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# t [74 ]
    N 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# N [4e ]
    w 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# w [77 ]
    A 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# A [41 ]
    c 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# c [63 ]
    l 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# l [6c ]
    s 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# s [73 ]
    p 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# p [70 ]
    a 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# a [61 ]
    g 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# g [67 ]
    2 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# 2 [32 ]
    3 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# 3 [33 ]
    T 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# T [54 ]
    o 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# o [6f ]
    S 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# S [53 ]
    v 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# v [76 ]
    ~ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ~ [7e ]
    D 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# D [44 ]
    C 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# C [43 ]
    h 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# h [68 ]
    ' 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ' [27 ]
    7 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# 7 [37 ]
    « 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# « [ab ]
    : 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# : [3a ]
    # 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# # [23 ]
    1 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# 1 [31 ]
    Z 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# Z [5a ]
    _ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# _ [5f ]
    M 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# M [4d ]
    u 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# u [75 ]
    m 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# m [6d ]
    P 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# P [50 ]
    H 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# H [48 ]
    O 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# O [4f ]
    ( 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ( [28 ]
    ) 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ) [29 ]
    q 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# q [71 ]
    y 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# y [79 ]
    | 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# | [7c ]
    U 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# U [55 ]
    0 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# 0 [30 ]
    % 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# % [25 ]
    x 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# x [78 ]
    F 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# F [46 ]
    R 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# R [52 ]
    I 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# I [49 ]
    , 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# , [2c ]
    ! 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ! [21 ]
    E 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# E [45 ]
    b 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# b [62 ]
    \ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# \ [5c ]
    8 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# 8 [38 ]
    ? 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ? [3f ]
    & 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# & [26 ]
    ; 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ; [3b ]
    B 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# B [42 ]
    k 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# k [6b ]
    - 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# - [2d ]
    > 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# > [3e ]
    L 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# L [4c ]
    . 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# . [2e ]
    — 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# — [2014 ]
    4 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# 4 [34 ]
    » 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# » [bb ]
    € 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# € [20ac ]
    W 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# W [57 ]
    J 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# J [4a ]
    é 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# é [e9 ]
    9 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# 9 [39 ]
    ® 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ® [ae ]
    $ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# $ [24 ]
    5 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# 5 [35 ]
    } 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# } [7d ]
    [ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# [ [5b ]
    Y 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# Y [59 ]
    § 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# § [a7 ]
    " 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# " [22 ]
    { 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# { [7b ]
    ¢ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ¢ [a2 ]
    / 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# / [2f ]
    Q 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# Q [51 ]
    6 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# 6 [36 ]
    G 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# G [47 ]
    ” 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ” [201d ]
    ° 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ° [b0 ]
    K 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# K [4b ]
    ¥ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ¥ [a5 ]
    V 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# V [56 ]
    © 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# © [a9 ]
    z 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# z [7a ]
    + 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# + [2b ]
    = 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# = [3d ]
    £ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# £ [a3 ]
    < 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# < [3c ]
    ’ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ’ [2019 ]
    ‘ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ‘ [2018 ]
    j 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# j [6a ]
    X 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# X [58 ]
    ] 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ] [5d ]
    * 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# * [2a ]
    “ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# “ [201c ]
    @ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# @ [40 ]
    • 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# • [2022 ]
    – 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# – [2013 ]
    … 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# … [2026 ]
    ^ 0 0,255,0,255,0,0,0,0,0,0 NULL 0 0 0 	# ^ [5e ]

When I try to fix it with with set_unicharset_properties:
set_unicharset_properties --F font_properties -U unicharset -O output_unicharset --script_dir=/
I get these warnings :
    Loaded unicharset of size 115 from file unicharset
    Setting unichar properties
    Other case É of é is not in unicharset
    Warning: properties incomplete for index 3 = d
    Warning: properties incomplete for index 4 = i
    Warning: properties incomplete for index 5 = f
    Warning: properties incomplete for index 6 = e
    Warning: properties incomplete for index 7 = r
    Warning: properties incomplete for index 8 = n
    Warning: properties incomplete for index 9 = t
    Warning: properties incomplete for index 10 = N
    Warning: properties incomplete for index 11 = w
    Warning: properties incomplete for index 12 = A
    Warning: properties incomplete for index 13 = c
    Warning: properties incomplete for index 14 = l
    Warning: properties incomplete for index 15 = s
    Warning: properties incomplete for index 16 = p
    Warning: properties incomplete for index 17 = a
    Warning: properties incomplete for index 18 = g
    Warning: properties incomplete for index 19 = 2
    Warning: properties incomplete for index 20 = 3
    Warning: properties incomplete for index 21 = T
    Warning: properties incomplete for index 22 = o
    Warning: properties incomplete for index 23 = S
    Warning: properties incomplete for index 24 = v
    Warning: properties incomplete for index 25 = ~
    Warning: properties incomplete for index 26 = D
    Warning: properties incomplete for index 27 = C
    Warning: properties incomplete for index 28 = h
    Warning: properties incomplete for index 29 = '
    Warning: properties incomplete for index 30 = 7
    Warning: properties incomplete for index 31 = «
    Warning: properties incomplete for index 32 = :
    Warning: properties incomplete for index 33 = #
    Warning: properties incomplete for index 34 = 1
    Warning: properties incomplete for index 35 = Z
    Warning: properties incomplete for index 36 = _
    Warning: properties incomplete for index 37 = M
    Warning: properties incomplete for index 38 = u
    Warning: properties incomplete for index 39 = m
    Warning: properties incomplete for index 40 = P
    Warning: properties incomplete for index 41 = H
    Warning: properties incomplete for index 42 = O
    Warning: properties incomplete for index 43 = (
    Warning: properties incomplete for index 44 = )
    Warning: properties incomplete for index 45 = q
    Warning: properties incomplete for index 46 = y
    Warning: properties incomplete for index 47 = |
    Warning: properties incomplete for index 48 = U
    Warning: properties incomplete for index 49 = 0
    Warning: properties incomplete for index 50 = %
    Warning: properties incomplete for index 51 = x
    Warning: properties incomplete for index 52 = F
    Warning: properties incomplete for index 53 = R
    Warning: properties incomplete for index 54 = I
    Warning: properties incomplete for index 55 = ,
    Warning: properties incomplete for index 56 = !
    Warning: properties incomplete for index 57 = E
    Warning: properties incomplete for index 58 = b
    Warning: properties incomplete for index 59 = \
    Warning: properties incomplete for index 60 = 8
    Warning: properties incomplete for index 61 = ?
    Warning: properties incomplete for index 62 = &
    Warning: properties incomplete for index 63 = ;
    Warning: properties incomplete for index 64 = B
    Warning: properties incomplete for index 65 = k
    Warning: properties incomplete for index 66 = -
    Warning: properties incomplete for index 67 = >
    Warning: properties incomplete for index 68 = L
    Warning: properties incomplete for index 69 = .
    Warning: properties incomplete for index 70 = —
    Warning: properties incomplete for index 71 = 4
    Warning: properties incomplete for index 72 = »
    Warning: properties incomplete for index 73 = €
    Warning: properties incomplete for index 74 = W
    Warning: properties incomplete for index 75 = J
    Warning: properties incomplete for index 76 = é
    Warning: properties incomplete for index 77 = 9
    Warning: properties incomplete for index 78 = ®
    Warning: properties incomplete for index 79 = $
    Warning: properties incomplete for index 80 = 5
    Warning: properties incomplete for index 81 = }
    Warning: properties incomplete for index 82 = [
    Warning: properties incomplete for index 83 = Y
    Warning: properties incomplete for index 84 = §
    Warning: properties incomplete for index 85 = "
    Warning: properties incomplete for index 86 = {
    Warning: properties incomplete for index 87 = ¢
    Warning: properties incomplete for index 88 = /
    Warning: properties incomplete for index 89 = Q
    Warning: properties incomplete for index 90 = 6
    Warning: properties incomplete for index 91 = G
    Warning: properties incomplete for index 92 = ”
    Warning: properties incomplete for index 93 = °
    Warning: properties incomplete for index 94 = K
    Warning: properties incomplete for index 95 = ¥
    Warning: properties incomplete for index 96 = V
    Warning: properties incomplete for index 97 = ©
    Warning: properties incomplete for index 98 = z
    Warning: properties incomplete for index 99 = +
    Warning: properties incomplete for index 100 = =
    Warning: properties incomplete for index 101 = £
    Warning: properties incomplete for index 102 = <
    Warning: properties incomplete for index 103 = ’
    Warning: properties incomplete for index 104 = ‘
    Warning: properties incomplete for index 105 = j
    Warning: properties incomplete for index 106 = X
    Warning: properties incomplete for index 107 = ]
    Warning: properties incomplete for index 108 = *
    Warning: properties incomplete for index 109 = “
    Warning: properties incomplete for index 110 = @
    Warning: properties incomplete for index 111 = •
    Warning: properties incomplete for index 112 = –
    Warning: properties incomplete for index 113 = …
    Warning: properties incomplete for index 114 = ^

And this incomplete file :
    115
    NULL 0 Common 0
    Joined 7 0,255,0,255,0,0,0,0,0,0 Latin 1 0 1 Joined	# Joined [4a 6f 69 6e 65 64 ]a
    |Broken|0|1 f 0,255,0,255,0,0,0,0,0,0 Common 2 10 2 |Broken|0|1	# Broken
    d 3 0,255,0,255,0,0,0,0,0,0 Latin 26 0 3 d	# d [64 ]a
    i 3 0,255,0,255,0,0,0,0,0,0 Latin 54 0 4 i	# i [69 ]a
    f 3 0,255,0,255,0,0,0,0,0,0 Latin 52 0 5 f	# f [66 ]a
    e 3 0,255,0,255,0,0,0,0,0,0 Latin 57 0 6 e	# e [65 ]a
    r 3 0,255,0,255,0,0,0,0,0,0 Latin 53 0 7 r	# r [72 ]a
    n 3 0,255,0,255,0,0,0,0,0,0 Latin 10 0 8 n	# n [6e ]a
    t 3 0,255,0,255,0,0,0,0,0,0 Latin 21 0 9 t	# t [74 ]a
    N 5 0,255,0,255,0,0,0,0,0,0 Latin 8 0 10 N	# N [4e ]A
    w 3 0,255,0,255,0,0,0,0,0,0 Latin 74 0 11 w	# w [77 ]a
    A 5 0,255,0,255,0,0,0,0,0,0 Latin 17 0 12 A	# A [41 ]A
    c 3 0,255,0,255,0,0,0,0,0,0 Latin 27 0 13 c	# c [63 ]a
    l 3 0,255,0,255,0,0,0,0,0,0 Latin 68 0 14 l	# l [6c ]a
    s 3 0,255,0,255,0,0,0,0,0,0 Latin 23 0 15 s	# s [73 ]a
    p 3 0,255,0,255,0,0,0,0,0,0 Latin 40 0 16 p	# p [70 ]a
    a 3 0,255,0,255,0,0,0,0,0,0 Latin 12 0 17 a	# a [61 ]a
    g 3 0,255,0,255,0,0,0,0,0,0 Latin 91 0 18 g	# g [67 ]a
    2 8 0,255,0,255,0,0,0,0,0,0 Common 19 2 19 2	# 2 [32 ]0
    3 8 0,255,0,255,0,0,0,0,0,0 Common 20 2 20 3	# 3 [33 ]0
    T 5 0,255,0,255,0,0,0,0,0,0 Latin 9 0 21 T	# T [54 ]A
    o 3 0,255,0,255,0,0,0,0,0,0 Latin 42 0 22 o	# o [6f ]a
    S 5 0,255,0,255,0,0,0,0,0,0 Latin 15 0 23 S	# S [53 ]A
    v 3 0,255,0,255,0,0,0,0,0,0 Latin 96 0 24 v	# v [76 ]a
    ~ 0 0,255,0,255,0,0,0,0,0,0 Common 25 10 25 ~	# ~ [7e ]
    D 5 0,255,0,255,0,0,0,0,0,0 Latin 3 0 26 D	# D [44 ]A
    C 5 0,255,0,255,0,0,0,0,0,0 Latin 13 0 27 C	# C [43 ]A
    h 3 0,255,0,255,0,0,0,0,0,0 Latin 41 0 28 h	# h [68 ]a
    ' 10 0,255,0,255,0,0,0,0,0,0 Common 29 10 29 '	# ' [27 ]p
    7 8 0,255,0,255,0,0,0,0,0,0 Common 30 2 30 7	# 7 [37 ]0
    « 10 0,255,0,255,0,0,0,0,0,0 Common 31 10 72 «	# « [ab ]p
    : 10 0,255,0,255,0,0,0,0,0,0 Common 32 6 32 :	# : [3a ]p
    # 10 0,255,0,255,0,0,0,0,0,0 Common 33 4 33 #	# # [23 ]p
    1 8 0,255,0,255,0,0,0,0,0,0 Common 34 2 34 1	# 1 [31 ]0
    Z 5 0,255,0,255,0,0,0,0,0,0 Latin 98 0 35 Z	# Z [5a ]A
    _ 10 0,255,0,255,0,0,0,0,0,0 Common 36 10 36 _	# _ [5f ]p
    M 5 0,255,0,255,0,0,0,0,0,0 Latin 39 0 37 M	# M [4d ]A
    u 3 0,255,0,255,0,0,0,0,0,0 Latin 48 0 38 u	# u [75 ]a
    m 3 0,255,0,255,0,0,0,0,0,0 Latin 37 0 39 m	# m [6d ]a
    P 5 0,255,0,255,0,0,0,0,0,0 Latin 16 0 40 P	# P [50 ]A
    H 5 0,255,0,255,0,0,0,0,0,0 Latin 28 0 41 H	# H [48 ]A
    O 5 0,255,0,255,0,0,0,0,0,0 Latin 22 0 42 O	# O [4f ]A
    ( 10 0,255,0,255,0,0,0,0,0,0 Common 43 10 44 (	# ( [28 ]p
    ) 10 0,255,0,255,0,0,0,0,0,0 Common 44 10 43 )	# ) [29 ]p
    q 3 0,255,0,255,0,0,0,0,0,0 Latin 89 0 45 q	# q [71 ]a
    y 3 0,255,0,255,0,0,0,0,0,0 Latin 83 0 46 y	# y [79 ]a
    | 0 0,255,0,255,0,0,0,0,0,0 Common 47 10 47 |	# | [7c ]
    U 5 0,255,0,255,0,0,0,0,0,0 Latin 38 0 48 U	# U [55 ]A
    0 8 0,255,0,255,0,0,0,0,0,0 Common 49 2 49 0	# 0 [30 ]0
    % 10 0,255,0,255,0,0,0,0,0,0 Common 50 4 50 %	# % [25 ]p
    x 3 0,255,0,255,0,0,0,0,0,0 Latin 106 0 51 x	# x [78 ]a
    F 5 0,255,0,255,0,0,0,0,0,0 Latin 5 0 52 F	# F [46 ]A
    R 5 0,255,0,255,0,0,0,0,0,0 Latin 7 0 53 R	# R [52 ]A
    I 5 0,255,0,255,0,0,0,0,0,0 Latin 4 0 54 I	# I [49 ]A
    , 10 0,255,0,255,0,0,0,0,0,0 Common 55 6 55 ,	# , [2c ]p
    ! 10 0,255,0,255,0,0,0,0,0,0 Common 56 10 56 !	# ! [21 ]p
    E 5 0,255,0,255,0,0,0,0,0,0 Latin 6 0 57 E	# E [45 ]A
    b 3 0,255,0,255,0,0,0,0,0,0 Latin 64 0 58 b	# b [62 ]a
    \ 10 0,255,0,255,0,0,0,0,0,0 Common 59 10 59 \	# \ [5c ]p
    8 8 0,255,0,255,0,0,0,0,0,0 Common 60 2 60 8	# 8 [38 ]0
    ? 10 0,255,0,255,0,0,0,0,0,0 Common 61 10 61 ?	# ? [3f ]p
    & 10 0,255,0,255,0,0,0,0,0,0 Common 62 10 62 &	# & [26 ]p
    ; 10 0,255,0,255,0,0,0,0,0,0 Common 63 10 63 ;	# ; [3b ]p
    B 5 0,255,0,255,0,0,0,0,0,0 Latin 58 0 64 B	# B [42 ]A
    k 3 0,255,0,255,0,0,0,0,0,0 Latin 94 0 65 k	# k [6b ]a
    - 10 0,255,0,255,0,0,0,0,0,0 Common 66 3 66 -	# - [2d ]p
    > 0 0,255,0,255,0,0,0,0,0,0 Common 67 10 102 >	# > [3e ]
    L 5 0,255,0,255,0,0,0,0,0,0 Latin 14 0 68 L	# L [4c ]A
    . 10 0,255,0,255,0,0,0,0,0,0 Common 69 6 69 .	# . [2e ]p
    — 10 0,255,0,255,0,0,0,0,0,0 Common 70 10 70 -	# — [2014 ]p
    4 8 0,255,0,255,0,0,0,0,0,0 Common 71 2 71 4	# 4 [34 ]0
    » 10 0,255,0,255,0,0,0,0,0,0 Common 72 10 31 »	# » [bb ]p
    € 0 0,255,0,255,0,0,0,0,0,0 Common 73 4 73 €	# € [20ac ]
    W 5 0,255,0,255,0,0,0,0,0,0 Latin 11 0 74 W	# W [57 ]A
    J 5 0,255,0,255,0,0,0,0,0,0 Latin 105 0 75 J	# J [4a ]A
    é 3 0,255,0,255,0,0,0,0,0,0 Latin 76 0 76 é	# é [e9 ]a
    9 8 0,255,0,255,0,0,0,0,0,0 Common 77 2 77 9	# 9 [39 ]0
    ® 0 0,255,0,255,0,0,0,0,0,0 Common 78 10 78 ®	# ® [ae ]
    $ 0 0,255,0,255,0,0,0,0,0,0 Common 79 4 79 $	# $ [24 ]
    5 8 0,255,0,255,0,0,0,0,0,0 Common 80 2 80 5	# 5 [35 ]0
    } 10 0,255,0,255,0,0,0,0,0,0 Common 81 10 86 }	# } [7d ]p
    [ 10 0,255,0,255,0,0,0,0,0,0 Common 82 10 107 [	# [ [5b ]p
    Y 5 0,255,0,255,0,0,0,0,0,0 Latin 46 0 83 Y	# Y [59 ]A
    § 10 0,255,0,255,0,0,0,0,0,0 Common 84 10 84 §	# § [a7 ]p
    " 10 0,255,0,255,0,0,0,0,0,0 Common 85 10 85 "	# " [22 ]p
    { 10 0,255,0,255,0,0,0,0,0,0 Common 86 10 81 {	# { [7b ]p
    ¢ 0 0,255,0,255,0,0,0,0,0,0 Common 87 4 87 ¢	# ¢ [a2 ]
    / 10 0,255,0,255,0,0,0,0,0,0 Common 88 6 88 /	# / [2f ]p
    Q 5 0,255,0,255,0,0,0,0,0,0 Latin 45 0 89 Q	# Q [51 ]A
    6 8 0,255,0,255,0,0,0,0,0,0 Common 90 2 90 6	# 6 [36 ]0
    G 5 0,255,0,255,0,0,0,0,0,0 Latin 18 0 91 G	# G [47 ]A
    ” 10 0,255,0,255,0,0,0,0,0,0 Common 92 10 92 "	# ” [201d ]p
    ° 0 0,255,0,255,0,0,0,0,0,0 Common 93 4 93 °	# ° [b0 ]
    K 5 0,255,0,255,0,0,0,0,0,0 Latin 65 0 94 K	# K [4b ]A
    ¥ 0 0,255,0,255,0,0,0,0,0,0 Common 95 4 95 ¥	# ¥ [a5 ]
    V 5 0,255,0,255,0,0,0,0,0,0 Latin 24 0 96 V	# V [56 ]A
    © 0 0,255,0,255,0,0,0,0,0,0 Common 97 10 97 ©	# © [a9 ]
    z 3 0,255,0,255,0,0,0,0,0,0 Latin 35 0 98 z	# z [7a ]a
    + 0 0,255,0,255,0,0,0,0,0,0 Common 99 3 99 +	# + [2b ]
    = 0 0,255,0,255,0,0,0,0,0,0 Common 100 10 100 =	# = [3d ]
    £ 0 0,255,0,255,0,0,0,0,0,0 Common 101 4 101 £	# £ [a3 ]
    < 0 0,255,0,255,0,0,0,0,0,0 Common 102 10 67 <	# < [3c ]
    ’ 10 0,255,0,255,0,0,0,0,0,0 Common 103 10 103 '	# ’ [2019 ]p
    ‘ 10 0,255,0,255,0,0,0,0,0,0 Common 104 10 104 '	# ‘ [2018 ]p
    j 3 0,255,0,255,0,0,0,0,0,0 Latin 75 0 105 j	# j [6a ]a
    X 5 0,255,0,255,0,0,0,0,0,0 Latin 51 0 106 X	# X [58 ]A
    ] 10 0,255,0,255,0,0,0,0,0,0 Common 107 10 82 ]	# ] [5d ]p
    * 10 0,255,0,255,0,0,0,0,0,0 Common 108 10 108 *	# * [2a ]p
    “ 10 0,255,0,255,0,0,0,0,0,0 Common 109 10 109 "	# “ [201c ]p
    @ 10 0,255,0,255,0,0,0,0,0,0 Common 110 10 110 @	# @ [40 ]p
    • 10 0,255,0,255,0,0,0,0,0,0 Common 111 10 111 •	# • [2022 ]p
    – 10 0,255,0,255,0,0,0,0,0,0 Common 112 10 112 -	# – [2013 ]p
    … 10 0,255,0,255,0,0,0,0,0,0 Common 113 10 113 ...	# … [2026 ]p
    ^ 0 0,255,0,255,0,0,0,0,0,0 Common 114 10 114 ^	# ^ [5e ]

We can see that some parts are missing.
Here from the documentation to see the difference, so the "missing" part :
https://github.com/tesseract-ocr/tesseract/blob/a3ba11b030345d32829b1e8355afea5419978d82/doc/unicharset.5.asc
    EXAMPLE (v3.02)

    110
    NULL 0 NULL 0
    N 5 59,68,216,255,87,236,0,27,104,227 Latin 11 0 1 N
    Y 5 59,68,216,255,91,205,0,47,91,223 Latin 33 0 2 Y
    1 8 59,69,203,255,45,128,0,66,74,173 Common 3 2 3 1
    9 8 18,66,203,255,89,156,0,39,104,173 Common 4 2 4 9
    a 3 58,65,186,198,85,164,0,26,97,185 Latin 56 0 5 a
    . . .

script_dir in set_unicharset_properties should point to a directory that contains a *.unicharset file. For English and other Latin based scripts, the file is Latin.unicharset.
You can find the *.unicharset files here: https://github.com/tesseract-ocr/langdata

script_dir in set_unicharset_properties should point to a directory that contains a *.unicharset file.

This is the case, the file I get from unicharset_extractor is used as input file by set_unicharset_properties.

For English and other Latin based scripts, the file is Latin.unicharset.
You can find the *.unicharset files here: https://github.com/tesseract-ocr/langdata

I have some questions:

If I follow the documentation, I should use the unicharset file generate by unicharset_extractor, because it is adapted to the chosen font. Isn’t it?
What if I use the latin.unicharset that do not match the xheight of the chosen font?
Why set_unicharset_properties still complain when I use latin.unicharset? See below the output:

Is it normal?
    Loaded unicharset of size 3504 from file latin.unicharset
    Setting unichar properties
    Other case Ȿ of ȿ is not in unicharset
    Other case Ɀ of ɀ is not in unicharset
    Other case Ɐ of ɐ is not in unicharset
    Other case Ɒ of ɒ is not in unicharset
    Other case Ɜ of ɜ is not in unicharset
    Other case Ɡ of ɡ is not in unicharset
    Other case Ɥ of ɥ is not in unicharset
    Other case Ɦ of ɦ is not in unicharset
    Other case Ɬ of ɬ is not in unicharset
    Other case Ɱ of ɱ is not in unicharset
    Other case Ʇ of ʇ is not in unicharset
    Other case Ʞ of ʞ is not in unicharset
    Other case Μ of µ is not in unicharset
    Other case ϳ of Ϳ is not in unicharset
    Mirror ⧵ of ∕ is not in unicharset
    Mirror ⦸ of ⊘ is not in unicharset
    Mirror ⫞ of ⊦ is not in unicharset
    Mirror ⫤ of ⊨ is not in unicharset
    Mirror ⫣ of ⊩ is not in unicharset
    Mirror ⫥ of ⊫ is not in unicharset
    Warning: properties incomplete for index 1073 = ~
    Warning: properties incomplete for index 1081 = ¨
    Warning: properties incomplete for index 1087 = ¯
    Warning: properties incomplete for index 1090 = ²
    Warning: properties incomplete for index 1091 = ³
    Warning: properties incomplete for index 1092 = ´
    Warning: properties incomplete for index 1096 = ¸
    Warning: properties incomplete for index 1097 = ¹
    Warning: properties incomplete for index 1117 = ˆ
    Warning: properties incomplete for index 1118 = ˇ
    Warning: properties incomplete for index 1135 = ˘
    Warning: properties incomplete for index 1136 = ˙
    Warning: properties incomplete for index 1137 = ˚
    Warning: properties incomplete for index 1138 = ˛
    Warning: properties incomplete for index 1139 = ˜
    Warning: properties incomplete for index 1168 = ̀
    Warning: properties incomplete for index 1169 = ́
    Warning: properties incomplete for index 1170 = ̂
    Warning: properties incomplete for index 1171 = ̃
    Warning: properties incomplete for index 1172 = ̄
    Warning: properties incomplete for index 1173 = ̅
    Warning: properties incomplete for index 1174 = ̆
    Warning: properties incomplete for index 1175 = ̇
    Warning: properties incomplete for index 1176 = ̈
    Warning: properties incomplete for index 1177 = ̉
    Warning: properties incomplete for index 1178 = ̊
    Warning: properties incomplete for index 1179 = ̋
    Warning: properties incomplete for index 1180 = ̌
    Warning: properties incomplete for index 1181 = ̍
    Warning: properties incomplete for index 1182 = ̎
    Warning: properties incomplete for index 1183 = ̏
    Warning: properties incomplete for index 1184 = ̐
    Warning: properties incomplete for index 1185 = ̑
    Warning: properties incomplete for index 1186 = ̒
    Warning: properties incomplete for index 1187 = ̓
    Warning: properties incomplete for index 1188 = ̔
    Warning: properties incomplete for index 1189 = ̕
    Warning: properties incomplete for index 1194 = ̚
    Warning: properties incomplete for index 1195 = ̛
    Warning: properties incomplete for index 1201 = ̡
    Warning: properties incomplete for index 1202 = ̢
    Warning: properties incomplete for index 1203 = ̣
    Warning: properties incomplete for index 1204 = ̤
    Warning: properties incomplete for index 1205 = ̥
    Warning: properties incomplete for index 1211 = ̫
    Warning: properties incomplete for index 1212 = ̬
    Warning: properties incomplete for index 1213 = ̭
    Warning: properties incomplete for index 1214 = ̮
    Warning: properties incomplete for index 1216 = ̰
    Warning: properties incomplete for index 1217 = ̱
    Warning: properties incomplete for index 1218 = ̲
    Warning: properties incomplete for index 1219 = ̳
    Warning: properties incomplete for index 1220 = ̴
    Warning: properties incomplete for index 1221 = ̵
    Warning: properties incomplete for index 1222 = ̶
    Warning: properties incomplete for index 1223 = ̷
    Warning: properties incomplete for index 1224 = ̸
    Warning: properties incomplete for index 1228 = ̼
    Warning: properties incomplete for index 1229 = ̽
    Warning: properties incomplete for index 1230 = ̾
    Warning: properties incomplete for index 1231 = ̿
    Warning: properties incomplete for index 1233 = ́
    Warning: properties incomplete for index 1234 = ͂
    Warning: properties incomplete for index 1236 = ̈́
    Warning: properties incomplete for index 1240 = ͋
    Warning: properties incomplete for index 1248 = ͘
    Warning: properties incomplete for index 1252 = ͜
    Warning: properties incomplete for index 1253 = ͝
    Warning: properties incomplete for index 1254 = ͞
    Warning: properties incomplete for index 1255 = ͟
    Warning: properties incomplete for index 1256 = ͠
    Warning: properties incomplete for index 1257 = ͡
    Warning: properties incomplete for index 1258 = ͢
    Warning: properties incomplete for index 1294 = ً
    Warning: properties incomplete for index 1295 = ٌ
    Warning: properties incomplete for index 1296 = ٍ
    Warning: properties incomplete for index 1297 = َ
    Warning: properties incomplete for index 1298 = ُ
    Warning: properties incomplete for index 1299 = ِ
    Warning: properties incomplete for index 1300 = ّ
    Warning: properties incomplete for index 1301 = ْ
    Warning: properties incomplete for index 1302 = ٓ
    Warning: properties incomplete for index 1303 = ٔ
    Warning: properties incomplete for index 1304 = ٕ
    Warning: properties incomplete for index 1315 = ٰ
    Warning: properties incomplete for index 1317 = ॒
    Warning: properties incomplete for index 1386 = ⁄
    Warning: properties incomplete for index 1406 =
    Warning: properties incomplete for index 1407 =
    Warning: properties incomplete for index 1408 =
    Warning: properties incomplete for index 1409 =
    Warning: properties incomplete for index 1410 =
    Warning: properties incomplete for index 1411 =
    Warning: properties incomplete for index 3101 = ゙
    Warning: properties incomplete for index 3102 = ゚
    Warning: properties incomplete for index 3103 = ゛
    Warning: properties incomplete for index 3104 = ゜
    Writing unicharset to file output_unicharset

To follow up with #316 , I added the line
/home/ggdhines/github/tesseract/training/set_unicharset_properties -U unicharset -O new_unicharset --script_dir=/home/ggdhines/github/langdata/Latin.unicharset
then new_unicharset looks like:
1 8 0,255,0,255,0,0,0,0,0,0 Common 3 2 3 1      # 1 [31 ]0
2 8 0,255,0,255,0,0,0,0,0,0 Common 4 2 4 2      # 2 [32 ]0
9 8 0,255,0,255,0,0,0,0,0,0 Common 5 2 5 9      # 9 [39 ]0
(Only trying for 3 characters right now). This looks better than before (no null values) but I'm still getting the error:
Bad properties for index 3, char 1: 0,255 0,255 0,0 0,0 0,0
(Repeated for each character.)
@ne0zer0 's questions are good ones.

Also just realized that the example unicharset file in the Compute the Character Set of the official documents:
; 10 Common 46
b 3 Latin 59
W 5 Latin 40
7 8 Common 66
= 0 Common 93
appears to be out date (I think that's Tesseract version 2)

@ggdhines
Try this:
/home/ggdhines/github/tesseract/training/set_unicharset_properties -U unicharset -O new_unicharset --script_dir=/home/ggdhines/github/langdata

Since your unicharset file has glyphs which belong to the Common script I think you should also put the Common.unicharset in the script dir.
https://raw.githubusercontent.com/tesseract-ocr/langdata/master/Common.unicharset

appears  to be out of date (I think that's Tesseract version 2)

Yes, you should read unicharset(5) doc:
https://github.com/tesseract-ocr/tesseract/blob/a3ba11b030345d32829b1e8355afea5419978d82/doc/unicharset.5.asc
And for set_unicharset_properties, where I can find file listing font xheights for all my desired fonts? (Adobe Jenson too)
set_unicharset_properties --help
USAGE: set_unicharset_properties
  --debug_level  Level of Trainer debugging  (type:int default:0)
  --load_images  Load images with tr files  (type:int default:0)
  --clusterconfig_min_samples_fraction  Min number of samples per proto as % of total  (type:double default:0.625)
  --clusterconfig_max_illegal  Max percentage of samples in a cluster which have more than 1 feature in that cluster  (type:double default:0.05)
  --clusterconfig_independence  Desired independence between dimensions  (type:double default:1)
  --clusterconfig_confidence  Desired confidence in prototypes created  (type:double default:1e-06)
  --script_dir  Directory name for input script unicharsets/xheights  (type:string default:)
  --configfile  File to load more configs from  (type:string default:)
  --D  Directory to write output files to  (type:string default:)
  --F  File listing font properties  (type:string default:font_properties)
  --X  File listing font xheights  (type:string default:)
  --U  File to load unicharset from  (type:string default:unicharset)
  --O  File to write unicharset to  (type:string default:)
  --T  File to load trainer from  (type:string default:)
  --output_trainer  File to write trainer to  (type:string default:)
  --test_ch  UTF8 test character string  (type:string default:)

Or a way to compute these xheights for every kind of fonts?
Maybe, it is a problem with wctype functions on systems? As I read on the documentation:

If your system supports the wctype functions, these values will be set automatically by unicharset_extractor and there is no need to edit the unicharset file. On some very old systems (eg Windows 95), the unicharset file must be edited by hand to add these property description codes.

@ne0zer0
unicharset_extractor produce a unicharset file.
You need to pass this file to set_unicharset_properties.

-U unicharset

Download these files:
https://raw.githubusercontent.com/tesseract-ocr/langdata/master/Latin.unicharset
https://raw.githubusercontent.com/tesseract-ocr/langdata/master/Common.unicharset
Lets say you put these files in langdata directory located under /home/ne0zer0.
Now, run this:

set_unicharset_properties --F font_properties -U unicharset -O output_unicharset --script_dir=/home/ne0zer0/langdata

thanks @amitdo for the help. I'm a little confused though as to why we need to use Latin.unicharset and Common.unicharset. Shouldn't we be teaching Tesseract new fonts based on the actual examples (and box files). Using some preexisting unicharset file makes it seem as if we're not actually training Tesseract on the new font

unicharset_extractor produces a unicharset file.
You need to pass this file to set_unicharset_properties.
-U unicharset

It is exactly what I do.

Download these files:
https://raw.githubusercontent.com/tesseract-ocr/langdata/master/Latin.unicharset

Already done.

https://raw.githubusercontent.com/tesseract-ocr/langdata/master/Common.unicharset

Done after reading your post addressed to ggdhines

set_unicharset_properties --F font_properties -U unicharset -O output_unicharset --script_dir=/home/ne0zer0/langdata

What did and I wrote in the first post (current directory):

When I try to fix it with with set_unicharset_properties:
set_unicharset_properties --F font_properties -U unicharset -O output_unicharset --script_dir=/

where Common.unicharset is now put.
But if I put Latin.unicharset, what I get is not what is adapted for my fonts,
xheights can change per fonts:
https://raw.githubusercontent.com/tesseract-ocr/langdata/master/Latin.xheights
So how can I be sure that this default value is correct for my all fonts???
As says ggdhines, according to the documentation, we have to compute the actual size of our fonts:
https://github.com/tesseract-ocr/tesseract/blob/a3ba11b030345d32829b1e8355afea5419978d82/doc/unicharset.5.asc

CAVEATS
Although the unicharset reader maintains the ability to read unicharsets of older formats and will assign default values to missing fields, the accuracy will be degraded.

What you suggest is likely to produce such degraded result. (what I seem to experiment)
Always for the above link:

Further, most other data files are indexed by the unicharset file, so changing it without re-generating the others is likely to have dire consequences

So, as it is stated that "assign default values to missing fields, the accuracy will be degraded", and "is likely to have dire consequences", your proposition can not be accepted, because it lead to what I experiment if I do like you say: strange results.
Unless I did not understand anything, in which case, as I am not the only one, you have to review the documentation.

@amitdo
Here some output according to your recommendation:
tesseract training:
    tesseract -l eng2 eng.palladio-regular.exp9.tif eng.palladio-regular.exp9 box.train.stderr
    Tesseract Open Source OCR Engine v3.04.01 with Leptonica
    Page 1
    APPLY_BOXES:
       Boxes read from boxfile:    1583
       Found 1583 good blobs.
    Generated training data for 403 words
    Page 2
    APPLY_BOXES:
       Boxes read from boxfile:    1590
       Found 1590 good blobs.
    Generated training data for 380 words
    Page 3
    APPLY_BOXES:
       Boxes read from boxfile:    1577
       Found 1577 good blobs.
    Generated training data for 392 words
    Page 4
    APPLY_BOXES:
       Boxes read from boxfile:    1613
       Found 1613 good blobs.
    Generated training data for 363 words
    Page 5
    APPLY_BOXES:
       Boxes read from boxfile:    1435
       Found 1435 good blobs.
    Generated training data for 312 words
    Page 6
    APPLY_BOXES:
       Boxes read from boxfile:    1670
       Found 1670 good blobs.
    Generated training data for 367 words
    Page 7
    APPLY_BOXES:
       Boxes read from boxfile:    1684
       Found 1684 good blobs.
    Generated training data for 374 words
    Page 8
    APPLY_BOXES:
       Boxes read from boxfile:    1673
       Found 1673 good blobs.
    Generated training data for 365 words
    Page 9
    APPLY_BOXES:
       Boxes read from boxfile:    1639
       Found 1639 good blobs.
    Generated training data for 381 words
    Page 10
    APPLY_BOXES:
       Boxes read from boxfile:    1671
       Found 1671 good blobs.
    Generated training data for 369 words
    Page 11
    APPLY_BOXES:
       Boxes read from boxfile:    1723
       Found 1723 good blobs.
    Generated training data for 357 words
    Page 12
    FAIL!
    APPLY_BOXES: boxfile line 1058/1 ((1279,1540),(1321,1612)): FAILURE! Couldn't find a matching blob
    FAIL!
    APPLY_BOXES: boxfile line 1382/1 ((1287,742),(1330,814)): FAILURE! Couldn't find a matching blob
    APPLY_BOXES:
       Boxes read from boxfile:    1631
       Boxes failed resegmentation:       2
       Found 1629 good blobs.
    Generated training data for 303 words
    Page 13
    FAIL!
    APPLY_BOXES: boxfile line 75/1 ((1299,4479),(1342,4550)): FAILURE! Couldn't find a matching blob
    FAIL!
    APPLY_BOXES: boxfile line 321/1 ((1289,3814),(1332,3885)): FAILURE! Couldn't find a matching blob
    FAIL!
    APPLY_BOXES: boxfile line 475/1 ((1284,3415),(1327,3486)): FAILURE! Couldn't find a matching blob
    FAIL!
    APPLY_BOXES: boxfile line 629/1 ((1278,3016),(1321,3087)): FAILURE! Couldn't find a matching blob
    FAIL!
    APPLY_BOXES: boxfile line 937/1 ((1267,2218),(1310,2289)): FAILURE! Couldn't find a matching blob
    APPLY_BOXES:
       Boxes read from boxfile:    1727
       Boxes failed resegmentation:       5
       Found 1722 good blobs.
    Generated training data for 239 words
    Page 14
    APPLY_BOXES:
       Boxes read from boxfile:    1651
       Found 1651 good blobs.
    Generated training data for 350 words
    Page 15
    APPLY_BOXES:
       Boxes read from boxfile:    1619
       Found 1619 good blobs.
    Generated training data for 179 words
    Page 16
    APPLY_BOXES:
       Boxes read from boxfile:    1634
       Found 1634 good blobs.
    Generated training data for 238 words
    Page 17
    APPLY_BOXES:
       Boxes read from boxfile:    1677
       Found 1677 good blobs.
    Generated training data for 386 words
    Page 18
    APPLY_BOXES:
       Boxes read from boxfile:    1643
       Found 1643 good blobs.
    Generated training data for 401 words
    Page 19
    APPLY_BOXES:
       Boxes read from boxfile:    1659
       Found 1659 good blobs.
    Generated training data for 376 words
    Page 20
    APPLY_BOXES:
       Boxes read from boxfile:    1317
       Found 1317 good blobs.
    Generated training data for 304 words

set_unicharset_properties
    set_unicharset_properties --F font_properties --script_dir=/home/ne0zer0/Tesseract/Test2/langdata -U unicharset -O output_unicharsetLoaded unicharset of size 115 from file unicharset
    Setting unichar properties
    Other case É of é is not in unicharset
    Warning: properties incomplete for index 25 = ~
    Writing unicharset to file output_unicharset

shapeclustering
    shapeclustering -F font_properties -U output_unicharset eng.palladio-regular.exp9.tr
    Reading eng.palladio-regular.exp9.tr ...
    Bad properties for index 25, char ~: 91,229 135,255 73,174 0,41 0,200
    Building master shape table
    Computing shape distances...
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances...
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances...
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances...
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances...
    Stopped with 0 merged, min dist 999.000000
    Computing shape distances... 0 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 102 103 104 105 106 107 108 109 110 111
    Distance = 0.000000: Distance = 0.000000: Distance = 0.006410: Distance = 0.007353: Distance = 0.007463: Distance = 0.012427: Distance = 0.012987: Distance = 0.015045: Distance = 0.020725: Distance = 0.020841: Stopped with 10 merged, min dist 0.026087
    Master shape_table:Number of shapes = 102 max unichars = 3 number with multiple unichars = 7

mftraining
    mftraining -F font_properties -U output_unicharset -O eng.unicharset eng.palladio-regular.exp9.tr
    Read shape table shapetable of 102 shapes
    Reading eng.palladio-regular.exp9.tr ...
    Bad properties for index 25, char ~: 91,229 135,255 73,174 0,41 0,200
    Warning: no protos/configs for sh0099 in CreateIntTemplates()
    Warning: no protos/configs for sh0100 in CreateIntTemplates()
    Warning: no protos/configs for sh0101 in CreateIntTemplates()
    Done!

The result is as strange as before, but now I have this warning in mftraining:

Warning: no protos/configs for sh0101 in CreateIntTemplates()

And why these failure?

APPLY_BOXES: boxfile line 1382/1 ((1287,742),(1330,814)): FAILURE! Couldn't find a matching blob

https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract#shapeclustering-new-in-302

shapeclustering should not be used except for the Indic languages.

Yes I know,
At first, i tried without shapeclustering, but I finally say "what if".
Anyway, here the output:
    mftraining -F font_properties -U output_unicharset -O eng.unicharset eng.palladio-regular.exp9.tr
    Warning: No shape table file present: shapetable
    Reading eng.palladio-regular.exp9.tr ...
    Flat shape table summary: Number of shapes = 112 max unichars = 1 number with multiple unichars = 0
    Warning: no protos/configs for Joined in CreateIntTemplates()
    Warning: no protos/configs for |Broken|0|1 in CreateIntTemplates()
    Done!

For the same result…

FAIL!
APPLY_BOXES: boxfile line 937/1 ((1267,2218),(1310,2289)): FAILURE! Couldn't find a matching blob
APPLY_BOXES:

A few of these 'failures' are normal. It's probably due to ligatures.

  Boxes read from boxfile:    1727
  Boxes failed resegmentation:       5
  Found 1722 good blobs.

As long as the vast majority of the boxes are 'good', it's OK.

Warning: no protos/configs for Joined in CreateIntTemplates()
Warning: no protos/configs for |Broken|0|1 in CreateIntTemplates()

This is also normal.
Overall, the outputs of the commands look OK.

Thank you for your reply,
But what about theses questions:

But if I put Latin.unicharset, what I get is not what is adapted for my fonts,
xheights can change per fonts:
https://raw.githubusercontent.com/tesseract-ocr/langdata/master/Latin.xheights
So how can I be sure that this default value is correct for my all fonts???
As says ggdhines, according to the documentation, we have to compute the actual size of our fonts:
https://github.com/tesseract-ocr/tesseract/blob/a3ba11b030345d32829b1e8355afea5419978d82/doc/unicharset.5.asc
CAVEATS

Although the unicharset reader maintains the ability to read unicharsets of older formats and will assign default values to missing fields, the accuracy will be degraded.

What you suggest is likely to produce such degraded result. (what I seem to experiment)
Always for the above link:
Further, most other data files are indexed by the unicharset file, so changing it without re-generating the others is likely to have dire consequences

So, as it is stated that "assign default values to missing fields, the accuracy will be degraded", and "is likely to have dire consequences", your proposition can not be accepted, because it lead to what I experiment if I do like you say: strange results.
Unless I did not understand anything, in which case, as I am not the only one, you have to review the documentation.

https://github.com/tesseract-ocr/tesseract/blob/a3ba11b030345d32829b1e8355afea5419978d82/doc/unicharset.5.asc

CAVEATS
Although the unicharset reader maintains the ability to read unicharsets of older formats and will assign default values to missing fields, the accuracy will be degraded.

ne0zer0:

What you suggest is likely to produce such degraded result. (what I seem to experiment)

It's the opposite of what you said. You interpreting the above paragraph wrongly.
I'll give you more answers later.

The meaning of this 'CAVEAT':
Starting from version 3.02 the unicharset file should look like this:
110
NULL 0 NULL 0
N 5 59,68,216,255,87,236,0,27,104,227 Latin 11 0 1 N
Y 5 59,68,216,255,91,205,0,47,91,223 Latin 33 0 2 Y
1 8 59,69,203,255,45,128,0,66,74,173 Common 3 2 3 1
9 8 18,66,203,255,89,156,0,39,104,173 Common 4 2 4 9
a 3 58,65,186,198,85,164,0,26,97,185 Latin 56 0 5 a
...

If you will use the old format:
; 10 Common 46
b 3 Latin 59
W 5 Latin 40
7 8 Common 66
= 0 Common 93

the accuracy will be degraded, because the the training tool will assign default (suboptimal) values to missing fields.

0,255,0,255,0,0,0,0,0,0 is the default (suboptimal) values for glyph_metrics.

CAVEATS
Although the unicharset reader maintains the ability to read unicharsets of older formats and will assign default values to missing fields, the accuracy will be degraded.

What I understood is: incomplete  v3.02 unicharset format file (like what I get) will result, infine, to the old format (after all, some fields are zeroing). These 0 lead to default value.
As informations are missing, owing to the fact that 0 are put instead of actual value, the accuracy will be degraded.

@amitdo - why is this necessary at all? Shouldn't Tesseract being learning based on the training examples we provide? Pre-existing data isn't going to be helpful with new fonts.

@ggdhines :+1:

@ne0zer0
Again, you are completely wrong.
You should both be patient and wait for my further answers which may clear thing up for you.

Ok, I will wait.
Thanks for your patience.

When you run unicharset_extractor you get a unicharset file in which each line has these fields:
character properties glyph_metrics script other_case direction mirror normed_form.
In this stage all the fields accept the character field are set to their default values. We want to set these fields to their correct values!
So we run set_unicharset_properties (we will call it 'the tool'):
set_unicharset_properties -U unicharset -O new_unicharset -X xheights --script_dir=/home/myusername/tesseract-ocr/langdata

The tool will take our unicharset file and add new values in the various fields. We will get a new fixed 'new_unicharset` file.
More details:
First, the tool will call a few functions to fill the correct values to these fields:
properties script other_case direction mirror normed_form.
What left to fill are the 10 glyph_metrics fields' values.
Tesseract does not provide a training tool that generate the correct values for the glyph_metrics fields.
Instead, there is a pre-made unicharset file for each script (the unicharset files in the langdata repo) which contains "universal" glyph_metrics that have been set from a large number of fonts.
The tool will look for a few files in the directory you told it to search, /home/myusername/tesseract-ocr/langdata in this example.
The tool will scan the lines in the unicharset file, and for each character field in a line it will search the appropriate Scriptname.unicharset. For example, for the character 'C' it will read the Latin.unicharset and for the character '8' it will read the Common.unicharset. The tool will search a matching line in the Scriptname. unicharset that has the same character field as the 'current' line in the unicharset line. When it find such a match it will take the glyph_metrics values located in the same line as the character and implant them in the matching line as new glyph_metrics values in the the unicharset file line.
A second file that the tool will search is a Scriptname.xheights file.
Here is a link to the Latin.xheights file.
https://raw.githubusercontent.com/tesseract-ocr/langdata/master/Latin.unicharset
According to Ray Smith, the lead developer of Tesseract:

If the font you are using is not listed in this file, it will use the mean of the ones that are. IIRC these numbers are used to set up expectations for inter-character spacing. They are for a fixed, quite large size (32 pt??).

('using' = 'training')
The tool will process the info in Latin.xheights together  with the new values of the glyph_metrics and will output the result to a file, xheights in our example.

That's it. I did my best efforts to explain things you ask about. You can now respond... :)

Hi,
Thank you for this clarification.
I am somewhat disappointed, and I have more questions than before:

Why using default values, when we want to train for specific fonts, and we could get specific values?
Are not specific values better than default values??? Why not using default values "only" when we need it? For example, when there are no matching font?
It will be certainly less accurate to use default values; so we cannot get the best result for specific fonts? Unless to waste a lot of time in training Tesseract? For an "uncertain" result?
Why set_unicharset_properties does not compute such values? It would not be too difficult to develop such a functionality. And I think it would be better in a lot of way (result and time).
I cannot understand how these default values can be better. For example, theses default values are likely not to match Adobe Jenson Pro glyph metrics and other fonts. So I have to train again, again, and again, to get better result due to lack of specific values, owing to "missing functionality"?
You write:

set_unicharset_properties -U unicharset -O new_unicharset -X xheights --script_dir=/home/myusername/tesseract-ocr/langdata

but the xheights file generated is always blank, and the file Latin.xheights seems to do nothing (I already tried this), and I always get the same output_unicharset file, with or without Latin.xheights (located in langdata folder, or in the current directory).
What can be done with a filled (with default values) xheights file?
Thank you

It will be certainly less accurate to use default values; so we cannot get the best result for specific fonts? Unless to waste a lot of time in training Tesseract? For an "uncertain" result?

https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality

There are a variety of reasons you might not get good quality output from Tesseract. It's important to note that unless you're using a very unusual font or a new language retraining Tesseract is unlikely to help.

Why set_unicharset_properties does not compute such values? It would not be too difficult to develop such a functionality.

If you develop such a tool (or hire someone to do so) we can add a link in the wiki to your site...
My answer for your other questions:
This is the current situation and you should accept it...
Your last question - you probably did something wrong if you get an empty file. I will try to test it later.
Two last notes:
I and the other people responding most of the time here and in the mailing-list are volunteers.
Within free (not paid) open source projects, complaining would not help, kind request might help but it's not guaranteed.

the file Latin.xheights seems to do nothing... and I always get the same output_unicharset file, with or without Latin.xheights.

The Latin.xheights is not supposed to change anything in the output_unicharset.

You seem to think that / is the current directory, but it's not.
/ is your 'root' directory. ./ (or just .) is the current directory.

What can be done with a filled xheights file?
https://github.com/tesseract-ocr/tesseract/blob/master/doc/mftraining.1.asc

If you develop such a tool (or hire someone to do so) we can add a link in the wiki to your site...

Not enough time
Not enough money
The developers of Tesseract will do it faster, cleaner, and cheaper than me.

My answer for your other questions:
This is the current situation and you should accept it...

Indeed. In fact, I expected too much from Tesseract.

Your last question - you probably did something wrong if you get an empty file. I will try to test it later.

I will wait for your test.

Two last notes:
I and the other people responding most of the time here and in the mailing-list are volunteers.
Within free (not paid) open source projects, complaining would not help, kind request might help but it's not guaranteed.

Sorry, but I did not want to hurt anybody.

You seem to think that / is the current directory, but it's not.
/ is your 'root' directory. ./ (or just .) is the current directory.

No, just a mistake when I wrote.

What can be done with a filled xheights file?

https://github.com/tesseract-ocr/tesseract/blob/master/doc/mftraining.1.asc

Thanks for the link.
Anyway, thank you for everything.

I finally resolved my problem with xheights. I did a spelling mistake :s
Anyway, thanks for all.

Nick White had tried to build the tool you want.
See this old theard:
https://groups.google.com/forum/?hl=en#!searchin/tesseract-ocr/pango|sort:date/tesseract-ocr/QH09G5p1jGI/QcHIJvfzFaYJ

More recently I made the addmetrics and xheights tools, which are in the tools directory of the git repo https://ancientgreekocr.org/grctraining.git

Hi Nick!
Did you test the impact of using the output of these tools compared to the "universal" unicharset?

Pinging @nickjwhite ...


New Theme: EasyBook

Theme submission
Please make sure that you have read the theme submission guidelines before submitting a theme. The guidelines provide all relevant information and requirements that have to be fulfilled before the submission. Please tick the relevant boxes for your theme in the checklist below:
Link to my theme repository: https://github.com/Y4er/hugo-theme-easybook
I made sure that...

[x] the repository contains a good README.md describing my theme
[x] an open source license has been added to LICENSE.md
[x] all metadata have been added to theme.toml
[x] screenshots have been added in the images/ folder with the required dimensions
[x] in case I'm using a customized demo via the exampleSite folder that

[x] https://example.com is set as base url in exampleSite/config.{toml, yaml, json} to avoid the abuse of unused domains
[x] I tested that my theme's demo works with the content directory of gohugoio/HugoBasicExample

[x] I tested my theme against the gohugoio/HugoBasicExample

[x] I've checked the developer tools' console in my browser for error messages

[x] in case my theme is using Hugo Pipes features like toCSS and PostCSS that I have committed the /resources directory with all generated assets, for my theme to work in the basic version of Hugo

N.B. By submitting a theme to the Hugo Themes Showcase you understand that you need to maintain your theme. You will need to keep an eye on whether your theme's demo generates on the Hugo website, whenever there is a new release. We are a very small team and we just cannot keep up opening issues in the various theme repositories to notify authors. Whenever a theme demo breaks and remains broken then at some point it will be removed from the list without prior warning. If you no longer wish to maintain a theme please let us know.
Feel free to ask questions. We're glad to help.
If there is an error, please correct me. nice day! :)

notice：Passed below 0.55.6

Hello @Y4er
Thank you for the theme submission.
Your theme's demo generates fine when I test it with the Hugo Themes Build Script.
However I have noticed the following issues:

Please include the avatar that is referenced in line 38 of exampleSite/config.toml in the theme repo and give it a local reference. There is no need to have it as an extrenal asset.

As stated in the submission guidelines it is recommended that a theme is tested with the hugoBasicExample since theme demos hosted on the Hugo Themes website inherit their content from this repo.

The hugoBasicExample does not provide a Words section. So please remove lines 21-24 of exampleSite/config.toml.
Once you do the above please let me know so that I can review your theme further.

fixed it, please review.

Hello @Y4er
Thank you for the fixes.
However I have just noticed that the default README is in Chinese.
Since the Hugo Themes website is aimed at an international audience (many of whom do not know Chinese), please make the English README the default one:

Rename README_EN.MD to README.md  and the opposite (rename the existing Chinese README.MD to README-ZH.md -or similar).

Also note that it is preferable to use the lowercase extension .md and not .MD for the README.

Furthermore as stated in the theme submission guidelines:

If you add screenshots to the README please make use of absolute file paths instead of relative ones like /images/screenshot.png. Relative paths work great on GitHub but they don't correspond to the directory structure of themes.gohugo.io. Therefore, browsers will not be able to display screenshots on the theme site under the given (relative) path.

You need give the screenshot in line 7 of the README an absolute path like so:

https://raw.githubusercontent.com/Y4er/hugo-theme-easybook/master/images/screenshot.png

Once you do the above please let me know so that I can continue reviewing your theme.

fix, please check. : )

@Y4er
Thanks you. Please use lowercase in the file extension of the README :
README.MD ==> README.md

and let me know.

emmm, please check it again. anything else?

Wait, I found my readme file suffix changed to lowercase. After my git push, my repository file is still uppercase. i will check it, then i will let you konw. thinks : )

All right, it should be fine, please check it. If there are other problems, tell me.
Thank you very much! Happy :)

@Y4er
Thank you now everything looks fine on me end.
Once the tests for #753 succeed, I will add the theme to the Hugo website

@digitalcraftsman
This theme is a port of jekyll-theme-EasyBook

I've promoted your theme on Hugo's official Twitter account.


feat(curriculum): mention space requirement in steps 43&46 of cat photo app project

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #46146

Maybe something like this? so it mentions the step

I would argue that it's common practice to treat inline elements, like input, as part of the text, so the space is not just styling.

@ieahleen sorry it hasn't reached my brain.
Is it common for input to be treated like an anchor a as, they can be wrapped around text like in

Click here to view more cat photos.

but for labels?

Yes, input elements are inline elements, so they are like a word

ok, fine, the posts on the forum have convinced me - let's remove the space requirement.


[gtkmm] update to 4.10.0

Fixes #31121.

[x] Changes comply with the maintainer guide
[x] SHA512s are updated for each updated download
[x] The "supports" clause reflects platforms that may be fixed by this new version
[x] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

No feature needs to be tested.

Thanks for the update and the making-dependencies-crisp!


Entity component serialization

Hello！
I would like to ask a question.
if there are more components and you don't have to specify which specific component types to serialize, is there a way to serialize all the components

There is a way to iterate all storage classes in a registry. They also return their type id on request.
Therefore, if you're using a reflection system or just stored aside serialization functions, you can lookup the right call.

Closing as solved/starving issue. Feel free to continue the discussion here if this isn't the case.


Hadrian 7x slower than make for changing base C files

On Linux, ghc/ghc@07ac921f48baea84b40835b0b7c476806f7f63f6, when I change inputReady.c and recompile with Hadrian:
Build completed in 0:42m

hadrian/build.stack.sh -j --flavour=quickest inplace/bin/ghc-stage2  96.30s user 7.18s system 243% cpu 42.572 total

With make on the quick flavour:
make -j4 inplace/bin/ghc-stage2  6.09s user 1.13s system 113% cpu 6.378 total

Here make is 7x faster and makes iterating on the RTS much more pleasant.
The difference is that make seems to recompile only the changes while Hadrian seems to recompile all C files in the RTS.

make-output.txt
hadrian-output.txt

With the make build system I normally use cd rts; make fast -j8 to get really fast rebuilds, I really hope Hadrian can support that. It's a similar problem to make 2 and the other workflows we have for building a subset of the targets.

Fixed issue description; inputReady.c isn't actually in rts/, it's a C file in libraries/base.
I should also add, recompiling the same change this way is another 2x faster on make:
cd ghc
make -j4 2 FAST=YES  4.22s user 0.78s system 151% cpu 3.310 total

@nh2 Thanks for reporting!
As far as I understand, Hadrian rebuilds the right set of files (they all depend on the changes you made), but Make skips some of the rebuilds because of additional modes for building only subsets of files. Can you confirm that?

With the make build system I normally use cd rts; make fast -j8 to get really fast rebuilds, I really hope Hadrian can support that.

@simonmar Yes, we can support something like that. Would you like Hadrian to detect the current directory and make decisions based on it, just like Make? This sounds a bit fragile to me. What about adding a flag, for example --only=rts, that skips rebuilds everywhere outside a particular package?
Both approaches are not difficult to implement, but the second one seems a better fit for Hadrian.

As far as I understand, Hadrian rebuilds the right set of files (they all depend on the changes you made),

I'm not sure that this is true. Why should we need to recompile transformers after changing base/cbits/inputReady.c? I would have thought that at most we would need to re-link.

What about adding a flag, for example --only=rts, that skips rebuilds everywhere outside a particular package?

I don't mind what the flag is, provided we have a way to do this.  Things that I commonly want to rebuild using make FAST=YES stage=0 or make fast:

rts
ghc (stage 2)
libraries/base (any library in fact)
docs/users_guilde (just rebuilding the html takes a few seconds, really useful when you're iterating on the docs)

@bgamari Hmm, this may indeed be a bug then. I'll take care of this.
@simonmar Thanks! I've created a separate issue for this: #472.

@nh2 I've pushed a fix. Now if I edit inputReady.c then only the base library and executables are reuilt.
Could you please try again?

@snowleopard When upgrading and trying again, I got this:
% hadrian/build.stack.sh -j --flavour=quickest inplace/bin/ghc-stage2
shakeArgsWith    0.000s    0%
Function shake   0.185s    0%
Database read    0.001s    0%
With database    0.000s    0%
Running rules  156.680s   99%  =========================
Total          156.866s  100%
Error when running Shake build system:
* inplace/bin/ghc-stage2
* inplace/lib/bin/ghc-stage2
* OracleQ (KeyValue ("_build/stage1/libraries/array/package-data.mk","BUILD_GHCI_LIB"))
* _build/stage1/libraries/array/package-data.mk
* _build/stage1/libraries/array/package-data.mk _build/stage1/libraries/array/setup-config
* inplace/lib/package.conf.d/ghc-prim-<IP_ADDRESS>.conf
* _build/stage1/libraries/ghc-prim/inplace-pkg-config
* _build/stage1/libraries/ghc-prim/package-data.mk
* _build/stage1/libraries/ghc-prim/package-data.mk _build/stage1/libraries/ghc-prim/setup-config
* inplace/bin/ghc-stage1
* inplace/lib/bin/ghc-stage1
* _build/stage0/libraries/ghci/libHSghci-8.3.a
* _build/stage0/libraries/ghci/SizedSeq.o
* _build/stage0/libraries/ghci/SizedSeq.o _build/stage0/libraries/ghci/SizedSeq.hi
* OracleQ (KeyValues ("_build/stage0/libraries/ghci/.dependencies","_build/stage0/libraries/ghci/SizedSeq.o"))
* _build/stage0/libraries/ghci/.dependencies
* _build/stage0/libraries/ghci/GHCi/FFI.hs
* _build/stage0/utils/hsc2hs/hsc2hs
user error (Development.Shake.cmd, system command failed
Command: /raid/stack/programs/x86_64-linux/ghc-8.0.2/bin/ghc -Wall -hisuf hi -osuf o -hcsuf hc -static -hide-all-packages -no-user-package-db '-package-db /home/niklas/src/benaco-ssd/ghc/_build/stage0/bootstrapping.conf' '-package-id base-<IP_ADDRESS>' '-package-id containers-<IP_ADDRESS>' '-package-id directory-<IP_ADDRESS>' '-package-id filepath-<IP_ADDRESS>' '-package-id process-<IP_ADDRESS>' -i -i_build/stage0/utils/hsc2hs -i_build/stage0/utils/hsc2hs/build/hsc2hs/autogen -iutils/hsc2hs/. -Iincludes -I_build/generated -I_build/stage0/utils/hsc2hs -I/raid/stack/programs/x86_64-linux/ghc-8.0.2/lib/ghc-8.0.2/process-<IP_ADDRESS>/include -I/raid/stack/programs/x86_64-linux/ghc-8.0.2/lib/ghc-8.0.2/directory-<IP_ADDRESS>/include -I/raid/stack/programs/x86_64-linux/ghc-8.0.2/lib/ghc-8.0.2/unix-<IP_ADDRESS>/include -I/raid/stack/programs/x86_64-linux/ghc-8.0.2/lib/ghc-8.0.2/time-<IP_ADDRESS>/include -I/raid/stack/programs/x86_64-linux/ghc-8.0.2/lib/ghc-8.0.2/bytestring-<IP_ADDRESS>/include -I/raid/stack/programs/x86_64-linux/ghc-8.0.2/lib/ghc-8.0.2/base-<IP_ADDRESS>/include -I/raid/stack/programs/x86_64-linux/ghc-8.0.2/lib/ghc-8.0.2/integer-gmp-<IP_ADDRESS>/include -I/raid/stack/programs/x86_64-linux/ghc-8.0.2/lib/ghc-8.0.2/include -I_build/generated -optc-I_build/generated -optP-include -optP_build/stage0/utils/hsc2hs/build/hsc2hs/autogen/cabal_macros.h -optc-fno-stack-protector -odir _build/stage0/utils/hsc2hs -hidir _build/stage0/utils/hsc2hs -stubdir _build/stage0/utils/hsc2hs -no-auto-link-packages -rtsopts -optc-Werror=unused-but-set-variable -optc-Wno-error=inline _build/stage0/utils/hsc2hs/Main.o _build/stage0/utils/hsc2hs/C.o _build/stage0/utils/hsc2hs/Common.o _build/stage0/utils/hsc2hs/CrossCodegen.o _build/stage0/utils/hsc2hs/DirectCodegen.o _build/stage0/utils/hsc2hs/Flags.o _build/stage0/utils/hsc2hs/HSCParser.o _build/stage0/utils/hsc2hs/UtilsCodegen.o -o _build/stage0/utils/hsc2hs/hsc2hs -O0 -H64m -XHaskell2010
Exit code: 1
Stderr:
_build/stage0/utils/hsc2hs/Main.o: In function `s41n_info':
(.text+0x77): undefined reference to `Pathszuhsc2hs_version_closure'
_build/stage0/utils/hsc2hs/Main.o: In function `s430_info':
(.text+0x3a5c): undefined reference to `Pathszuhsc2hs_getDataFileName_closure'
_build/stage0/utils/hsc2hs/Main.o: In function `S46U_srt':
(.data.rel.ro+0x640): undefined reference to `Pathszuhsc2hs_version_closure'
_build/stage0/utils/hsc2hs/Main.o: In function `S46U_srt':
(.data.rel.ro+0x810): undefined reference to `Pathszuhsc2hs_getDataFileName_closure'
collect2: error: ld returned 1 exit status
`gcc' failed in phase `Linker'. (Exit code: 1)
)

This remains even after a hadrian/build.stack.sh clean, and also when I run it without specific output target (time hadrian/build.stack.sh -j --flavour=quickest).
That is on top of commit ghc/ghc@a1950e6dc03b560105903ad44050b1570f3bc24f.

Oops, forgot to pull submodules, will try again.

Oops, forgot to pull submodules, will try again.

OK, I also did some git clean and noticed that I should have called hadrian with --configure (I suspect that already the latter would have sufficed). It works now so sorry for the noise.

Could you please try again?

My output:
% time hadrian/build.stack.sh -j --flavour=quickest inplace/bin/ghc-stage2
| Run Cc FindCDependencies Stage1: libraries/base/cbits/inputReady.c => _build/stage1/libraries/base/c/cbits/inputReady.o.d
| Run Ghc CompileCWithGhc Stage1: libraries/base/cbits/inputReady.c => _build/stage1/libraries/base/c/cbits/inputReady.o
| Remove file _build/stage1/libraries/base/libHSbase-<IP_ADDRESS>.a
| Run Ar Pack Stage1: _build/stage1/libraries/base/c/cbits/DarwinUtils.o (and 244 more) => _build/stage1/libraries/base/libHSbase-<IP_ADDRESS>.a
/usr/bin/ar: creating _build/stage1/libraries/base/libHSbase-<IP_ADDRESS>.a
| Run Ld: _build/stage1/libraries/base/c/cbits/DarwinUtils.o (and 244 more) => _build/stage1/libraries/base/HSbase-<IP_ADDRESS>.o
/------------------------------------------------------------\
| Successfully built library 'base' (Stage1, way v).         |
| Library: _build/stage1/libraries/base/libHSbase-<IP_ADDRESS>.a |
| Library synopsis: Basic libraries.                         |
\------------------------------------------------------------/
| Run Ghc LinkHs Stage1: _build/stage1/ghc/c/hschooks.o (and 5 more) => inplace/lib/bin/ghc-stage2
/----------------------------------------------------------\
| Successfully built program 'ghc-bin' (Stage1).           |
| Executable: inplace/lib/bin/ghc-stage2                   |
| Program synopsis: The Glorious Glasgow Haskell Compiler. |
\----------------------------------------------------------/
| Make 'inplace/bin/ghc-stage2' executable.
| Successfully created wrapper for 'ghc-bin' (Stage1).
shakeArgsWith                        0.000s    0%
Function shake                       0.183s    3%  =
Database read                        0.040s    0%
With database                        0.092s    2%
Running rules                        4.233s   92%  =========================
Pool finished (2434 threads, 4 max)  0.001s    0%
Lint checking                        0.046s    1%
Total                                4.596s  100%
Build completed in 0:05m

hadrian/build.stack.sh -j --flavour=quickest inplace/bin/ghc-stage2  6.06s user 0.76s system 123% cpu 5.521 total

@snowleopard Thanks a lot, it's much better now. After changing inputReady.c, rebuilding now takes only 5.5 seconds, that is almost as fast as the 3.3 seconds of a fast make.

From my perspective, this can be closed, unless we want to tackle the remaining distance to make or the topics @simonmar mentioned as part of this ticket.

@hvr I responded here: https://github.com/snowleopard/hadrian/issues/472#issuecomment-346976802.


Add gtk_deprecated build tag

Optionally includes deprecated features in builds
See added documentation in the readme file how to use this. Please review & comment!
This is a straightforward change, but could have bad consequences if I missed anything.
@MJacred you have a special case with issue gotk3/gotk3#516. Read this to see how to adjust your build tags accordingly.
Fixes gotk3/gotk3#253
Closes gotk3/gotk3#475
Technical documentation, should be moved to the wiki if there are no objections to this change.
// Package main is an example-user of gotk3
package main

import "github.com/gotk3/gotk3/gtk"

func main() {
	gtk.dep_since_3_20()
	gtk.since_3_16()
}

// Filename: *_deprecated_since_3_20.go
// This file is compiled for all GTK versions below 3.20, and optionally with gtk_deprecated
// +build gtk_3_6 gtk_3_8 gtk_3_10 gtk_3_12 gtk_3_14 gtk_3_16 gtk_3_18 gtk_deprecated

package gtk

func dep_since_3_20() {
	println("< 3.20")
}

// Filename: *_since_3_16_deprecated_since_3_20.go
// This file is normally only compiled for GTK 3.16 and 3.18.
// Adding gtk_deprecated MUST NOT compile this file for GTK<=3.14,
// which requires a combined constraint "!gtk_3_6,!gtk_3_8,!gtk_3_10,!gtk_3_12,!gtk_3_14,gtk_deprecated"
// to specifically exclude all versions of GTK where this was NOT available.
// Do not add spaces in that constraint, only commas!
// +build !gtk_3_6,!gtk_3_8,!gtk_3_10,!gtk_3_12,!gtk_3_14,gtk_deprecated gtk_3_16 gtk_3_18

package main

func since_3_16() {
	println(">= 3.16, < 3_20")
}

Result:
go build -tags "gtk_3_22 gtk_deprecated"

will compile both files, but
go build -tags "gtk_3_14 gtk_deprecated"

will only compile the first.

version 3.18 is missing. it should be

// This file is normally only compiled for GTK 3.16, 3.18 and 3.20.

shouldn't it be

// This file is normally only compiled for GTK 3.16 and 3.18.

instead of

// This file is normally only compiled for GTK 3.16 and 3.20.

?

You are 100% correct, it should be 18 instead of 20. Will fix later.
On Wed, 12 Feb 2020, 10:15 MJacred<EMAIL_ADDRESS>wrote:

shouldn't it be
// This file is normally only compiled for GTK 3.16 and 3.18.
instead of
// This file is normally only compiled for GTK 3.16 and 3.20.
?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/gotk3/gotk3/pull/517?email_source=notifications&email_token=ABO2IIJWBYQMALMWDB6HYSDRCO44HA5CNFSM4KTJR6B2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELQAQXQ#issuecomment-585107550,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABO2IIJCS6V77LCOIXMAJZTRCO44HANCNFSM4KTJR6BQ
.

we merge this to v0.5.
now the v0.4 should be stabilized, without more functions

Sure, makes sense.


Scrolling in emoji list is not consistent

GIF shows it all:

rel: https://github.com/fourtf/chatterino2/issues/172


Fixed return type of multiple values to dict-like object

First pass at deprecating tuple return types. To keep things roughly backwards compatible, I am proposing that we leave in return_dict, but change the default to False.  Thus, if people want previous behavior, they just need to add a flag, rather than rewriting the code.
With return_dict=False, however, it will now give a user error that the feature will be removed in future releases.  I used UserWarning rather than DeprecationWarning, since the latter are only printed in developer types, and we want the users to know they should change the way they call it.
Currently, the return is STILL a dict, and the variable is return_dict. I could change return_dict to return_object or something like that, since we may change it into a dict-like object in the future, but I don't know if that is needed now.  We may just drop return_dict before we get around to replacing the dict with a dict-like object.
Still need to change the examples to remove the return_dict keyword, since they already use the new default.

Whoops, forgot that other files have return_dict as well as mbar.py.  Will add those now.

I need to double check all the uses, but this is on the right track! Do we want to warn people about the returns now, or just make the change since we are bumping the major version anyways?

Do we want to warn people about the returns now, or just make the change since we are bumping the major version anyways?

I guess it's best practices to warn before removing functionality?  Now, it breaks but they know what they need to do to fix it, rather than failing silently.

I guess it's best practices to warn before removing functionality?

Yes it is. But since we're doing the major bump, we may just want to commit to it now. What if we put the warning in now and then cut a minor revision in a 3.0.X+1? I don't think 4 is going to be done for a few months anyways, so it should have enough time to give people warning.

I'm with @lnaden: Let's just fix everything at this major version update, including fixing the API for PEP8. Let's aim for maintainable and a clean, usable API, rather than backwards compatibility.
Do we want to call this something other than pymbar?

Do we want to call this something other than pymbar?
Eh. no.  We have a lot of name recognition.  Just bump the version number, we can emphasize the 4 in release materials/documentation.

Do we want to call this something other than pymbar?

I'm with Michael on this one, keep the PyMBAR name.

Yes it is. But since we're doing the major bump, we may just want to commit to it now. What if we put the warning in now and then cut a minor revision in a 3.0.X+1? I don't think 4 is going to be done for a few months anyways, so it should have enough time to give people warning.

I think that the people whose code it's most likely to break will be people that wrote scripts a year or so ago, so a minor fix won't help much.
I'm OK with a full change.  We'll just need to emphasize it heavily in the release notes.

OK, did a full stripping, including examples and tests.

There's the question if the documentation displays correctly, but probably the documentation hasn't really been updated in 3 years, and I'm not sure even builds right now, which is probably something that should be done separately.

I'll go ahead and merge for now, then.


Badges in v4?

Are badges in v3 no longer available in v4. I've had a good luck in v4 documentation and found no mention.

Are you sure?

I've had a good luck in v4 documentation and found no mention.

it this ?

indeed, as @fchiumeo said

Dropped the .badge component as it was nearly identical to labels/tags. Use the .tag-pill modifier together with the label component instead for that rounded look.

.tag and .tag-pill do not seem to be in the .css file.

#20939

#20542, #21020, #21122: Rename .tag to .badge to avoid conflicts w/ WordPress.


Build docker image for amd64 and arm64

Hi,
this PR builds the docker image for amd64 and arm64 and fixes https://github.com/kutzilla/docker-hetzner-ddns/issues/19
Regards,
Fabian

The docker/metadata-action step automatically tags latest, see: https://github.com/docker/metadata-action#latest-tag


Enable NEAR_NEAR2MV compound mode.

Coverage decreased (-0.006%) to 81.829% when pulling 45efeb6ef98203e2163a5c1a68b9db98cb49ca6c on tdaede:near0c into 5f6345bbf6b53e36b6fad5ecf9862b1de175a8ad on xiph:master.


91 binary datasets

This pull request adds:

Generation of binary classification datasets from the visual_genome object detection dataset from a CLI taking config file as input.
Corresponding config file.

Todo:

[x] Tests.
[x] Remove notebook.
[x] Select objects to test on.

Small initial comment but could you add something to the readme about how to use the dataset generation commands etc.?

Also add a readme to the jan_24_configs dir to briefly explain what they were used for.

Could we include the actual top level binary configs in this too (not just the template) @eddableheath (I couldn't find them from a quick browse at least)

Could we include the actual top level binary configs in this too (not just the template) @eddableheath (I couldn't find them from a quick browse at least)?

They were generated, and you'll find them on this branch on Baskerville. I'll put them into the configs on the git though.

After a few git issues the binary dataset top level configs are now on the repo


[recorder] Has problems when URL contains single quotes

The recorder generates invalid JS when the URL contains ' for example, it generates this
.delete('/tableClientTestTokenCredentialnode(PartitionKey='P2_node',RowKey='R2')')

Which is invalid as the internal single quote close the external one, this should be using ` instead
.delete(`/tableClientTestTokenCredentialnode(PartitionKey='P2_node',RowKey='R2')`)

Updating nock version may fix this issue. PR to update: https://github.com/Azure/azure-sdk-for-js/pull/17465

I filed a bug with nock and they fixed the issue in the latest version, updating the version should fix the issue.

Closing since the new recorder would not have the same problem and since tables is being migrated


Rename Reapply_Type_All to Reapply_Type_Signal

What changed?

Rename Reapply_Type_All to Reapply_Type_Signal since Reapply_Type_Signal better describe the behvior

Is this currently used anywhere? Is it a breaking change?

the change is not released, so not an issue


Playground share link does not share execution time limit

Shared links always have a default execution time limit of 1000 milliseconds.

Resolved by #919 - to be merged.


Connection pool support for Oracle Cloud connections

@daust : look at WIP folder for credentials to test it.

https://github.com/oracle/oracle-db-examples/tree/master/java/jdbc/ConnectionSamples
https://medium.com/@FranckPachot/easy-oracle-cloud-wallet-location-in-the-jdbc-connection-string-c782d2011252
https://www.oracle.com/database/technologies/develop-java-apps-using-jdbc.html
https://www.oracle.com/database/technologies/java-connectivity-to-atp.html


fix: syncing with HLTB API changes

Based on following PRs:

https://github.com/SDH-Stewardship/hltb-for-deck/pull/17
https://github.com/ScrappyCocco/HowLongToBeat-PythonAPI/pull/35

Downloadable ZIP and TAR archives:

hltb-for-deck.tar.gz
hltb-for-deck.zip

You can try installing them via Developer Mode of Decky (proceed to Decky Settings -> General -> enable Developer Mode. Then in Settings go to Developer -> Install Plugin from ZIP File and select the ZIP archive. Or you can try directly installing from the link above. After installing go to Plugins in Settings, select HLTB for Deck settings and then Reload).

@morwy This fix no longer work (at least on my Deck)

I will publish future fixes under my fork: https://github.com/morwy/hltb-for-deck/releases.
It is simply more convenient for me rather than waiting for the PRs to approved and merged.


server/cache: add storesInfo

Add storesInfo and move stores management from clusterInfo to storesInfo.
Base on https://github.com/pingcap/pd/pull/365.

PTAL @qiuyesuifeng @siddontang @overvenus

LGTM


Usage info is dumped for errors that don't relate to usage

The "usage" info for the active CLI command is always dumped when an error is encountered. This should only be dumped for errors that stem from invalid syntax, not from functional errors executing the command.

This is a good suggestion. The reason it works the way it does is that any error returned from a Cobra RunE() will print usage by default. So we'll need to handle errors at the top level differently.

I can pickup this one.

Here's my finding: We need to suppress usage info for internal errors with cmd.SilenceUsage = true and not call the cobra.CheckErr() function here explicitly https://github.com/hyperledger/firefly-cli/blob/main/cmd/root.go#L85 as it results in printing the error message twice.