Establecer el ancho de la columna tabular al ancho de los números tabulares

Establecer el ancho de la columna tabular al ancho de los números tabulares

Tome el siguiente 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}

ingrese la descripción de la imagen aquí

En este ejemplo, he definido el ancho de la columna izquierda (que está configurada como irregular hacia la izquierda) como el ancho de ocho números tabulares (es decir, monoespaciados) y un guión.

Pero lo que realmente quiero es establecer el ancho de la columna izquierda como se indica arriba, pero usar números proporcionales fuera de la primera columna. El siguiente ejemplo obviamente no funciona, ya que establecerá que todos los números del documento sean proporcionales:

\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}

ingrese la descripción de la imagen aquí

Entonces mi pregunta es: ¿Cómo puedo configurar el ancho de la primera columna para que se base en números tabulares y luego usar números tabulares en esa columna del documento, pero usar números proporcionales en otros lugares?

Si esto se hace mejor con fontspec, entonces estoy abierto a usarlo en su lugar.

Respuesta1

Puede definir un \tabfigcomando que elija dígitos de estilo antiguo en 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}

Tenga en cuenta el retraso de la medición después de que se haya emitido LaTeX \normalfont.

ingrese la descripción de la imagen aquí

información relacionada