
次のコードを見てください。
\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}
この例では、左の列の幅 (左揃えに設定) を、8 つの表形式 (つまり、等幅) の数字とハイフンの幅に定義しました。
しかし、私が実際に望んでいるのは、左の列の幅を上記のように設定し、最初の列の外側で比例した数字を使用することです。以下の例は明らかに機能しません。これは、ドキュメント内のすべての数字が比例するように設定されるためです。
\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}
そこで質問です。最初の列の幅を表形式の数字に基づいて設定し、ドキュメント内のその列では表形式の数字を使用し、他の場所では比例した数字を使用するにはどうすればよいでしょうか。
これを で行うのが最適であればfontspec
、代わりに を使用することも検討します。
答え1
\tabfig
表形式で古いスタイルの数字を選択するコマンドを定義できます。
\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}
LaTeX が発行された後の測定の遅延に注意してください\normalfont
。