Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Utiliser une police truetype .ttf (symboles de calculatrice) avec XeLaTeX

134 views
Skip to first unread message

Olivier V

unread,
Jun 25, 2017, 2:02:08 PM6/25/17
to
Bonjour,

Je cherche à utiliser avec XeLaTeX une fonte truetype (.ttf) qui
contient les "images" des touches d'une calculatrice Texas Instrument.

Voici la police :
https://education.ti.com/download/en/ed-tech/B1B863F270AB4381A836C38E88A94127/DA6E5D6CD1D749289793809BC52ABA5A/TI-83%20Premium%20CE%20Key%20Fonts.zip

J'ai mis la police dans mon ~/texmfhome :
/home/meloli/.texlive2016-texmfhome/fonts/truetype/perso_police_TI83PremiumCE/TI83PremiumCEKeys.ttf

Je ne sais ni charger cette police, ni ensuite appeler ces caractères.

Ci dessous un ECM qui ne fonctionne pas.

Pouvez-vous m'indiquer comment faire ?

Merci beaucoup.

Olivier_V

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[a4paper,11pt]{article}

\usepackage[tuenc]{fontspec}
\setmainfont[Ligatures=TeX]{CMU Serif} %needed for me to get
small-bold caps
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}
\usepackage[a4paper]{geometry}
\usepackage[french]{babel}

\usepackage{unicode-math} %works without this

\begin{document}

\fontspec{TI83PremiumCEKeys}

\end{document}

LOG %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "TI83PremiumCEKeys" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................

l.14 \fontspec{TI83PremiumCEKeys}

|'''''''''''''''''''''''''''''''''''''''''''''''
| A font might not be found for many reasons.
| Check the spelling, where the font is installed etc. etc.
|
| When in doubt, ask someone for help!
|...............................................

.................................................
. fontspec info: "no-scripts"
.
. Font TI83PremiumCEKeys does not contain any OpenType `Script' information.
.................................................
\g__fontspec_family_TI83PremiumCEKeys_int=\count133
.................................................
. fontspec info: "no-font-shape"
.
. Could not resolve font TI83PremiumCEKeys/BI (it probably doesn't exist).
.................................................
.................................................
. fontspec info: "no-font-shape"
.
. Could not resolve font TI83PremiumCEKeys/B (it probably doesn't exist).
.................................................
.................................................
. fontspec info: "no-font-shape"
.
. Could not resolve font TI83PremiumCEKeys/I (it probably doesn't exist).
.................................................

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "TI83PremiumCEKeys" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................

l.14 \fontspec{TI83PremiumCEKeys}

|'''''''''''''''''''''''''''''''''''''''''''''''
| A font might not be found for many reasons.
| Check the spelling, where the font is installed etc. etc.
|
| When in doubt, ask someone for help!
|...............................................


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "TI83PremiumCEKeys" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................

l.14 \fontspec{TI83PremiumCEKeys}

|'''''''''''''''''''''''''''''''''''''''''''''''
| A font might not be found for many reasons.
| Check the spelling, where the font is installed etc. etc.
|
| When in doubt, ask someone for help!
|...............................................

.................................................
. fontspec info: "defining-font"
.
. Font family 'TI83PremiumCEKeys(0)' created for font
'TI83PremiumCEKeys' with
. options [].
.
. This font family consists of the following NFSS series/shapes:
. - 'normal' (m/n) with NFSS spec.: <->"TI83PremiumCEKeys:"
. - 'small caps' (m/sc) with NFSS spec.: <->"TI83PremiumCEKeys:"
.................................................
! Font TU/TI83PremiumCEKeys(0)/m/n/10.95=TI83PremiumCEKeys: at 10.95pt
not load
able: Metric (TFM) file or installed font not found.
<to be read again>
relax
l.14 \fontspec{TI83PremiumCEKeys}

I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.

(./essai_police_TI83_ECM.aux) )
Here is how much of TeX's memory you used:
15237 strings out of 493589
298368 string characters out of 6143512
405094 words of memory out of 5000000
18573 multiletter control sequences out of 15000+600000
4344 words of font info for 37 fonts, out of 8000000 for 9000
1347 hyphenation exceptions out of 8191
43i,1n,68p,10441b,282s stack positions out of
5000i,500n,10000p,200000b,80000s

No pages of output.



François Patte

unread,
Jun 25, 2017, 5:32:12 PM6/25/17
to
Le 25/06/2017 à 20:02, Olivier V a écrit :
> Bonjour,
>
> Je cherche à utiliser avec XeLaTeX une fonte truetype (.ttf) qui
> contient les "images" des touches d'une calculatrice Texas Instrument.
>
> Voici la police :
> https://education.ti.com/download/en/ed-tech/B1B863F270AB4381A836C38E88A94127/DA6E5D6CD1D749289793809BC52ABA5A/TI-83%20Premium%20CE%20Key%20Fonts.zip
>
>
> J'ai mis la police dans mon ~/texmfhome :
> /home/meloli/.texlive2016-texmfhome/fonts/truetype/perso_police_TI83PremiumCE/TI83PremiumCEKeys.ttf
>
>
> Je ne sais ni charger cette police, ni ensuite appeler ces caractères.
>
> Ci dessous un ECM qui ne fonctionne pas.
>
> Pouvez-vous m'indiquer comment faire ?

Personnellement, après avoir lu dans des docs (issues du tug)
qu'installer des fontes dans ~moi/.texlive201* était quelque peu
hasardeux, j'installe mes fontes dans:
/opt/texlive/texmf-local
où j'ai recréé l'architecture de /opt/texlive/texlive201*

ie. pour les fontes truetype:

/opt/texlive/texmf-local/fonts/truetype/TI83PremiumCEKeys/

dans lequel j'installe la fonte ttf

Evidemment il faut avoir les droits de root....

Après avoir mis les bonnes permission (755 pour les répertoires et 644
pour les fichiers),

J'ai également créé un fichier

/etc/fonts/conf.d/05-texlive-local.conf

qui contient:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/opt/texlive/texmf-local/fonts/opentype</dir>
<dir>/opt/texlive/texmf-local/fonts/truetype</dir>
</fontconfig>


Une fois la fonte ajoutée dans

/opt/texlive/texmf-local/fonts/truetype/TI83PremiumCEKeys/

faire, en temps que root, fc-cache -fsv

Et vérifier que la fonte est prise en compte:

fc-list | grep TI83

Et la réponse, si tout s'est bien passé, est:

/opt/texlive/texmf-local/fonts/truetype/TI83PremiumCEKeys/TI83PremiumCEKeys.ttf:
TI83PremiumCEKeys:style=Regular

Après, il n'y a plus de problème pour compiler: la fonte est bien
trouvée par xelatex...

Reste à trouver comment saisir les bons caractères.... Le problème, si
on regarde le fichier TI83PremiumCEKeys.pdf fourni avec la fonte, est
que les numéros des glyphes ne correspondent pas avec ce que donne
xelatex si on appelle les glyphes avec la commande \char!

Par exemple, si on saisit \char"33 on obtient le glyphe 51 du tableau,
si on saisit \char"34, on obtient le glyphe 52, etc.

D'autres, plus savant que moi sur ces questions, donneront peut-être une
réponse.


Pour l'installation de la fonte, il est peut-être possible de
l'installer dans le répertoire ~/.fonts mais, je n'aime pas cette
solution est ne suis pas sûr que xelatex la trouvera spontanément...


--
François Patte
Université Paris Descartes

Olivier V

unread,
Jun 26, 2017, 2:00:46 AM6/26/17
to
Le 25/06/2017 à 23:32, François Patte a écrit :
>
> J'ai également créé un fichier
>
> /etc/fonts/conf.d/05-texlive-local.conf
>
> qui contient:
>
> <?xml version="1.0"?>
> <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
> <fontconfig>
> <dir>/opt/texlive/texmf-local/fonts/opentype</dir>
> <dir>/opt/texlive/texmf-local/fonts/truetype</dir>
> </fontconfig>
>
>
> Une fois la fonte ajoutée dans
>
> /opt/texlive/texmf-local/fonts/truetype/TI83PremiumCEKeys/
>
> faire, en temps que root, fc-cache -fsv
>
> Et vérifier que la fonte est prise en compte:
>
> fc-list | grep TI83

Bonjour,

Merci beaucoup !

J'avais oublié cet histoire de fichier
Le fichier /etc/fonts/conf.d/09-texlive.conf existait déjà pour d'autres
raison et j'y ai ajouté :
<dir>/home/meloli/.texlive2016-texmfhome/fonts/truetype</dir>
Çà fonctionne donc localement

La police est reconnue.

Pour avoir le glyphe correspondant au n° 33 du tableau la commande est :
\symbol{33}
ou bien
\char33 (sans le ")

Dernière question : peut-on charger uniquement localement un caractère
de la police, ou faut-il forcément utiliser deux "fontspec" ?

\fontspec{TI83PremiumCEKeys}

\char"33 %glyphe51
\char"34 %glyphe52
\char"35 %glyphe53

\fontspec{CMU Serif}

Essai

J'ai essayé ceci inspiré d'un autre exemple que j'avais :
\newcommand*{\policeTI}[1]{{\fontencoding{U}\fontfamily{TI83PremiumCEKeys}\selectfont\char#1}}
\newcommand*{\charTI}{\policeTI{51}}

\charTI

Mais l'encodage n'est pas U. Ni T1. Avez vous une idée ?

Merci.

François Patte

unread,
Jun 26, 2017, 5:14:06 AM6/26/17
to
Voir la sélection des fontes dans la doc de fontspec (on y a accès avec
la commande: texdoc fontspec) pp 11sq et il y a un exemple de ce que
vous cherchez (enfin, je pense...) page 15.

Olivier V

unread,
Jun 26, 2017, 6:17:22 AM6/26/17
to
Le 26/06/2017 à 11:14, François Patte a écrit :
> Voir la sélection des fontes dans la doc de fontspec (on y a accès avec
> la commande: texdoc fontspec) pp 11sq et il y a un exemple de ce que
> vous cherchez (enfin, je pense...) page 15.
>

Merci !

Solution :
\newfontfamily\policeTI{TI83PremiumCEKeys}
Essai : {\policeTI \char51}

Paul Gaborit

unread,
Jun 26, 2017, 8:29:04 AM6/26/17
to

À (at) Sun, 25 Jun 2017 23:32:10 +0200,
François Patte <francoi...@mi.parisdescartes.fr> écrivait (wrote):

> Par exemple, si on saisit \char"33 on obtient le glyphe 51 du tableau,
> si on saisit \char"34, on obtient le glyphe 52, etc.

52 = 3 * 16 + 4

Le " implique de l'hexadécimal...

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>

Thierry WYBRECHT

unread,
Jun 28, 2017, 4:32:28 AM6/28/17
to
On 2017-06-26 12:29:03 +0000, Paul Gaborit said:

> À (at) Sun, 25 Jun 2017 23:32:10 +0200,
> François Patte <francoi...@mi.parisdescartes.fr> écrivait (wrote):
>
>> Par exemple, si on saisit \char"33 on obtient le glyphe 51 du tableau,
>> si on saisit \char"34, on obtient le glyphe 52, etc.
>
> 52 = 3 * 16 + 4
>
> Le " implique de l'hexadécimal...

Bonjour,
personnellement j'ai un fichier TI.tex dans mon texmf perso dans lequel
sont définies des commandes pour chaque caractère. Exemple de
quelques lignes:

\newcommand{\tiFLD}{\fontspec{TI82STATSfr}\namedglyph{exclam}}
\newcommand{\tinuage}{\fontspec{TI82STATSfr}\namedglyph{quotedbl}}
\newcommand{\tihisto}{\fontspec{TI82STATSfr}\namedglyph{ampersand}}

Évidemment, au lieu des noms de glyphes, on peut utiliser leurs codages (enfin
je suppose, je n'ai pas essayé) et je l'appelle en préambule par
\input{TI.tex}.
Sûr, c'est bricolage, mais ça fonctionne.

Thierry

Olivier V

unread,
Jul 1, 2017, 5:20:14 AM7/1/17
to
Merci !

olivier...@gmail.com

unread,
Jul 28, 2017, 6:06:43 AM7/28/17
to
Bonjour,

Je relance le fil car je viens de m'apercevoir que dans certains cas le caractère n'apparaît pas.

La caractère est le n° 133 "stat".

Il s'agissait d'utiliser une police ttf avec xelatex. Voici la police concernée :
https://education.ti.com/download/en/ed-tech/B1B863F270AB4381A836C38E88A94127/DA6E5D6CD1D749289793809BC52ABA5A/TI-83%20Premium%20CE%20Key%20Fonts.zip

Comment récupérer ce caractère dans l'ECM ci-dessous ?

Merci beaucoup !

Olivier V

\documentclass[a4paper,11pt]{article}

\usepackage[tuenc]{fontspec}
\setmainfont[Ligatures=TeX]{CMU Serif} %needed for me to get small-bold caps
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}
\usepackage[a4paper]{geometry}
\usepackage[french]{babel}

\usepackage{unicode-math} %works without this

\newfontfamily\policeTIfont{TI83PremiumCEKeys}
\newcommand*{\policeTI}[1]{\bgroup\policeTIfont\char#1\egroup\xspace}

\begin{document}

Ici tout va bien :\par
{\policeTIfont \char51} ou {\policeTIfont \symbol{51}} ou \policeTI{51}

Mais là le caractère "stat" en n° 133 n'apparaît pas:\par
{\policeTIfont \char133} ou {\policeTIfont \symbol{133}} ou \policeTI{133}

\end{document}

Jean-Côme Charpentier

unread,
Jul 29, 2017, 9:33:24 AM7/29/17
to
Le 28/07/2017 à 12:06, ano...@free.fr a écrit :
> Bonjour,
>
> Je relance le fil car je viens de m'apercevoir que dans certains cas le caractère n'apparaît pas.
>
> La caractère est le n° 133 "stat".

C'est ce qui est effectivement indiqué dans le document pdf.

> Il s'agissait d'utiliser une police ttf avec xelatex. Voici la police concernée :
> [COUIC] > Comment récupérer ce caractère dans l'ECM ci-dessous ?
> [COUIC]

On ne peut pas... en tous cas pas avec la fonte ttf livrée puisque le
caractère 133 n'existe pas dans cette fonte. La seule conclusion est que
le fichier pdf n'a pas utilisée cette fonte pour être produit !

On aurait pu en rester là mais il se trouve que j'ai aussi une fonte
TI83 sur ma machine. Elle n'est pas Premium, il y a certains symboles
qui n'y sont pas par rapport à la fonte ttf mais en revanche, j'ai bien
un glyphe "STAT entouré" en position 133.

Ce n'est pas hyper propre chez TI on dirait :-)

Jean-Côme Charpentier

--
<Denis B.> Bah, comme diraient certain(e)s que je connais, même en
étant fétichiste, c'est pas facile de jouir avec (le) LaTeX...
<Jean-Jacques> Ben si on est manuel :-) Ok je sors.
<mpg> Tes insinuations sur ma vie privée sont totalement déplacées. Je
ne te permets pas.
-+- in fr.comp.text.tex -+-

Olivier V

unread,
Jul 29, 2017, 9:56:21 AM7/29/17
to
Le 29/07/2017 à 15:33, Jean-Côme Charpentier a écrit :
> On ne peut pas... en tous cas pas avec la fonte ttf livrée puisque le
> caractère 133 n'existe pas dans cette fonte. La seule conclusion est que
> le fichier pdf n'a pas utilisée cette fonte pour être produit !

Merci de la réponse.

Ce qui est étrange c'est que quand je clique sur le .ttf et que s'ouvre
l'afficheur de police de mon ubuntu, j'ai bien le "caractère" stat en
dernière ligne de cette capture d'écran :

http://imgur.com/a/xngnN

Il faut par contre que je mette "tous les caractères" dans l'aperçu.

> On aurait pu en rester là mais il se trouve que j'ai aussi une fonte
> TI83 sur ma machine. Elle n'est pas Premium, il y a certains symboles
> qui n'y sont pas par rapport à la fonte ttf mais en revanche, j'ai bien
> un glyphe "STAT entouré" en position 133.

Merci de l'information.
Je vais essayer de récupérer cette autre police.

Olivier V

Jean-Côme Charpentier

unread,
Jul 31, 2017, 7:31:05 AM7/31/17
to
Le 29/07/2017 à 15:56, Olivier V a écrit :
> Le 29/07/2017 à 15:33, Jean-Côme Charpentier a écrit :
>> On ne peut pas... en tous cas pas avec la fonte ttf livrée puisque
>> le caractère 133 n'existe pas dans cette fonte. La seule conclusion
>> est que le fichier pdf n'a pas utilisée cette fonte pour être produit !
>
> Merci de la réponse.

Mouais... j'aurai dû approfondir immédiatement.

> Ce qui est étrange c'est que quand je clique sur le .ttf et que s'ouvre
> l'afficheur de police de mon ubuntu, j'ai bien le "caractère" stat en
> dernière ligne de cette capture d'écran :

Le problème avec cet afficheur, c'est qu'il dit qu'il existe un
certain caractère mais il ne donne aucune indication sur sa position
exacte. On n'a même pas une position relative... Par exemple, le tout
premier caractère affiché sur votre exemple est la sorte de carré en
pointillés mais le caractère qui le précède immédiatement dans la fonte
est celui qui est affiché en tout dernier dans votre exemple (le nuage
de points) et celui qui précède celui-ci est affiché assez au milieu (il
s'agit de al flèche dirigée vers la droite.
Bref. Pas terrible. Je vous invite à installer fontforge : c'est plus
sérieux :-)

>> On aurait pu en rester là mais il se trouve que j'ai aussi une
>> fonte TI83 sur ma machine. Elle n'est pas Premium, il y a certains
>> symboles qui n'y sont pas par rapport à la fonte ttf mais en revanche,
>> j'ai bien un glyphe "STAT entouré" en position 133.
>
> Merci de l'information.
> Je vais essayer de récupérer cette autre police.

En fait, ce n'est pas la même. J'ai regardé un peu plus en détail le
fichier ttf et le symbole voulu est bien présent mais il est en position
267. Sauf qu'on entre dans une zone un peu chatouilleuse et qu'un appel
direct avec le code 267 ne fonctionnera pas. En regardant plus en détail
mon fonteforge, j'ai vu que le caractère voulu correspondait au
HORINZONTAL ELLIPSIS qui avait comme codage Unicode 2026 (en
hexadécimal). Et bingo !

-----%<----------%<----------%<----------%<----------%<-----
\documentclass[12pt]{article}

\usepackage{fontspec}
\setmainfont{DejaVu Serif}
\newfontfamily\policeTIfont{TI83PremiumCEKeys}
\newcommand*{\policeTI}[1]{\bgroup\policeTIfont\char#1\egroup\xspace}

\usepackage[a4paper, margin=1in]{geometry}
\usepackage[french]{babel}

\begin{document}

Ici tout va bien :\par
{\policeTIfont \char51} ou {\policeTIfont \symbol{51}} ou \policeTI{51}

Mais là le caractère "stat" en n° 133 n'apparaît pas:\par
{\policeTIfont \char133} ou {\policeTIfont \symbol{133}} ou \policeTI{133}

Ici le caractère "stat" en n° 267 (recodé Unicode) apparaît bien:\par
{\policeTIfont \char"2026} ou {\policeTIfont \symbol{"2026}} ou
\policeTI{"2026}

\end{document}
-----%<----------%<----------%<----------%<----------%<-----

Ça fonctionne comme ça chez vous ?

Jean-Côme Charpentier

--
<Thierry> Salut frérot, salut Mireille
<Jean-Côme> Mon frère s'appelle Xavier.
<Prof Méphisto> Et madame Charpentier demande « qui est Mireille ? »
-+- in fr.comp.text.tex -+-

Olivier V

unread,
Aug 1, 2017, 6:09:47 AM8/1/17
to
Le 31/07/2017 à 13:31, Jean-Côme Charpentier a écrit :
>
> Ça fonctionne comme ça chez vous ?

Oui, parfaitement !

Juste une question complémentaire : comment faire pour récupérer ce
code, si un cas similaire se présente ?

Merci.

Olivier V

Olivier V

unread,
Aug 1, 2017, 7:09:44 AM8/1/17
to
J'ai ouvert la police avec fontforge dont vous parliez plus haut.
Et en descendant j'ai trouvé mes caractères/codes associés.
J'y ai donc vu que mon caractère porte le code décimal 8230.

Y a-t-il une préférence à avoir entre le code décimal et le code
hexadecimal ?

Merci.

Olivier V

Jean-Côme Charpentier

unread,
Aug 1, 2017, 10:00:49 AM8/1/17
to
Le 01/08/2017 à 13:09, Olivier V a écrit :
> Le 01/08/2017 à 12:09, Olivier V a écrit :
>> Le 31/07/2017 à 13:31, Jean-Côme Charpentier a écrit :
>>>
>>> Ça fonctionne comme ça chez vous ?
>>
>> Oui, parfaitement !

Aaaah !

>> Juste une question complémentaire : comment faire pour récupérer ce
>> code, si un cas similaire se présente ?
>>
>> Merci.
>>
>> Olivier V
>
> J'ai ouvert la police avec fontforge dont vous parliez plus haut.
> Et en descendant j'ai trouvé mes caractères/codes associés.
> J'y ai donc vu que mon caractère porte le code décimal 8230.
>
> Y a-t-il une préférence à avoir entre le code décimal et le code
> hexadecimal ?

Peut-être que cela gagne (ou perd) quelques femtosecondes à la
compilation mais à part ça, je ne vois pas de critères nets de
préférence. Pour ma part, la plupart de mes documents traitant du code
Unicode sont en hexadécimal donc j'ai tendance à favoriser cette
notation (et puis je la trouve plus simple finalement) mais c'est assez
personnel. Donc faites comme vous voulez, l'importance est on ne peut
plus dérisoire... à moins que quelques uns aient des arguments plus
sérieux. On peut aussi attendre vendredi pour relancer la question, il y
aura plus de chance que cela réagisse :-)

Jean-Côme Charpentier


--
Ça pourrait se comprendre si tu avais l'intention de te faire des
roubignolles en jonc massif en publiant un livre avec cette FAQ, mais
comme je sais que c'est pas ton genre, je persiste à incompréhenser.
-+- Michel B. in fr.comp.text.tex -+-

Olivier V

unread,
Aug 1, 2017, 11:44:20 AM8/1/17
to
Le 01/08/2017 à 16:00, Jean-Côme Charpentier a écrit :
> Peut-être que cela gagne (ou perd) quelques femtosecondes à la
> compilation mais à part ça, je ne vois pas de critères nets de
> préférence. Pour ma part, la plupart de mes documents traitant du code
> Unicode sont en hexadécimal donc j'ai tendance à favoriser cette
> notation (et puis je la trouve plus simple finalement) mais c'est assez
> personnel. Donc faites comme vous voulez, l'importance est on ne peut
> plus dérisoire... à moins que quelques uns aient des arguments plus
> sérieux. On peut aussi attendre vendredi pour relancer la question, il y
> aura plus de chance que cela réagisse :-)

Merci des précisions !

Olivier V
0 new messages