Defina a largura da coluna tabular para a largura dos numerais tabulares

Defina a largura da coluna tabular para a largura dos numerais tabulares

Pegue o seguinte código:

\documentclass{article}
\usepackage[oldstyle, tabular]{libertine}
\usepackage{array}
\newlength{\period}
\settowidth{\period}{9999--9999}

\begin{document}
    \begin{tabular}{>{\raggedleft}p{\period}l}
        2002--2005 & Put some text and numbers 0123456789 here
    \end{tabular}
\end{document}

insira a descrição da imagem aqui

Neste exemplo, defini a largura da coluna esquerda (que está configurada para ser irregular à esquerda) como a largura de oito numerais tabulares (isto é, monoespaçados) e um hífen.

Mas o que eu realmente quero é definir a largura da coluna esquerda como acima, mas usar números proporcionais fora da primeira coluna. O exemplo abaixo obviamente não funciona, pois definirá todos os números do documento como proporcionais:

\documentclass{article}
\usepackage[oldstyle, proportional]{libertine} % <- change is here only
\usepackage{array}
\newlength{\period}
\settowidth{\period}{9999--9999}

\begin{document}
    \begin{tabular}{>{\raggedleft}p{\period}l}
        2002--2005 & Put some text and numbers 0123456789 here
    \end{tabular}
\end{document}

insira a descrição da imagem aqui

Portanto, minha pergunta é: como posso definir a largura da primeira coluna com base em numerais tabulares e, em seguida, usar numerais tabulares nessa coluna do documento, mas usar numerais proporcionais em outros lugares?

Se for melhor fazer isso com fontspec, então estou aberto a usá-lo.

Responder1

Você pode definir um \tabfigcomando que escolha dígitos antigos em formato tabular:

\documentclass{article}
\usepackage[
  oldstyle,
  proportional
]{libertine} 
\usepackage{array}
\newlength{\period}

\newcommand{\tabfig}{\fontfamily{LinuxLibertineT-TOsF}\selectfont}

\AtBeginDocument{\settowidth{\period}{\tabfig 0000--0000}}

\begin{document}

\begin{tabular}{>{\raggedleft\tabfig}p{\period}l}
2002--2005 & Put some text and numbers 0123456789 here
\end{tabular}

\end{document}

Observe o atraso da medição após a emissão do LaTeX \normalfont.

insira a descrição da imagem aqui

informação relacionada