Settowidth, 4 chiffres

Bonjour, Je veux fixer une longueur \truc en faisant:

\settowidth{\truc}{xyztu}

où x,y,z,t,u peuvent être tous les chiffres possibles (donc dans 0..9). Pour quelle valeurs de x,y,z,t,u cette longueur est elle maximale ? Ça doit dépendre de la police utilisée, chez moi c’est eb-garamond , mais ça peut changer.

merci,

t.d.

Bonjour,

Dans la plupart des polices les chiffres existent en plusieurs variantes :

  • chasse fixe (tabular, tnum) / chasse variable (proportional, pnum),
  • majuscule (lining, lnum) / minuscule (oldstyle, onum)

Ebgaramond a les quatre combinaisons, si tu choisis chasse fixe (option tabular) \settowidth{\truc}{11111} ou \settowidth{\truc}{22222} donneront à \truc la même valeur mais celle-ci dépendra du choix lining ou oldstyle.

Si tu utilises \usepackage{ebgaramond} sans option, tu obtiens proportional + oldstyle donc chasse variable. En ouvrant EBGaramond-Regular.otf avec fontforge, je constate que

  • en oldstyle le chiffre le plus large est le 4 , donc \settowidth{\truc}{44444}.
  • en lining le chiffre le plus large est le 2, donc \settowidth{\truc}{22222}.

Le package eqparbox peut servir ici.

Voici un exemple d’utilisation (les noms numwidthLarge et \mybox sont choisis arbitrairement) :

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{eqparbox}
\AtBeginDocument{
  \bgroup
  \Large
  \newsavebox{\mybox}
  \eqsavebox{\mybox}[numwidthLarge]{0000}
  \eqsavebox{\mybox}[numwidthLarge]{1111}
  \eqsavebox{\mybox}[numwidthLarge]{2222}
  \eqsavebox{\mybox}[numwidthLarge]{3333}
  \eqsavebox{\mybox}[numwidthLarge]{4444}
  \eqsavebox{\mybox}[numwidthLarge]{5555}
  \eqsavebox{\mybox}[numwidthLarge]{6666}
  \eqsavebox{\mybox}[numwidthLarge]{7777}
  \eqsavebox{\mybox}[numwidthLarge]{8888}
  \eqsavebox{\mybox}[numwidthLarge]{9999}
  \egroup
}
\begin{document}
\eqboxwidth{numwidthLarge}
\end{document}
1 « J'aime »