从Ⅰ到Ⅻ

从Ⅰ到Ⅻ

我正在通过 libertine-legacy 包和 pdftex 使用 Linux Libertine 字体。此字体包含罗马数字的漂亮连字,例如,\LibertineGlyph{tworoman}给出 ii。现在我想在计数器出现的地方使用这些字形,例如,前言中的页码和part编号。最后,我希望有一个类似于 的字形\roman,比如\ligroman,我可以将其输入到\pagenumberstyle等。

答案1

从Ⅰ到Ⅻ

浪荡子和\libertineGlyph

在我的例子中我使用 XeLaTeX 和libertineotf它提供了\libertineGlyph和字形。正如我在评论中所说,这应该与...合作libertine-legacy, 也。新的libertine-type1不再biolinum-type1支持这个。

这提供了两个宏:

  • \libertineRoman{<countername>}大写字母,以及
  • \libertineroman{<countername>}表示小写罗马数字。

此方法仅将 1 到 12 之间的数字转换为特殊的罗马数字字形。

代码

\documentclass{article}
\usepackage{libertineotf}% replace with libertine-legacy
%\usepackage[T1]{fontenc}% use with pdfLaTeX
\newcommand*{\libertineRoman}[1]{%
    \def\Romantemp{}%
    \ifnum\value{#1}>0\relax%
        \ifnum\value{#1}<13\relax%
            \edef\Romantemp{\ifcase\value{#1}\or One\or Two\or Three\or Four\or Five\or Six\or Seven\or Eight\or Nine\or Ten\or Eleven\or Twelve\fi}%
            \libertineGlyph{\Romantemp roman}%
        \else\Roman{#1}\fi%
    \else\Roman{#1}\fi%
}
\newcommand*{\libertineroman}[1]{%
    \def\Romantemp{}%
    \ifnum\value{#1}>0\relax%
        \ifnum\value{#1}<13\relax%
            \edef\Romantemp{\ifcase\value{#1}\or one\or two\or three\or four\or five\or six\or seven\or eight\or nine\or ten\or eleven\or twelve\fi}%
            \libertineGlyph{\Romantemp roman}%
        \else\roman{#1}\fi%
    \else\roman{#1}\fi%
}
\begin{document}
\newcounter{testRoman}
\setcounter{testRoman}{13}
\loop\ifnum\value{testRoman}>1\relax\addtocounter{testRoman}{-1}
    \thetestRoman: \roman{testRoman} \Roman{testRoman} \libertineroman{testRoman} \libertineRoman{testRoman} \par
\repeat
\end{document}

输出

在此处输入图片描述

Unicode(仅限 Xe-/LuaLaTeX)

使用 Unicode 整个罗马数字范围的解决方案是已经可用

相关内容