\ordinalnum 的 datetime (fmtcount) 问题

\ordinalnum 的 datetime (fmtcount) 问题

我正在使用\ordinalnum带有datetime包装的(与包装相同fmtcount),但在法语中,使用的上标的高度和大小\ordinalnum与(例如)的不同\formatdate,或者使用经典的\up{}\ieme

我想使用类似于\ordinalnum个人命令的东西,因为它非常方便,但结果类似于\up{ème}不同于 1 的序数(法语:1er,2ème,3ème...):良好的高度,良好的上标大小和变音符号ème

因此,我想到两种解决方案:

  • 命令改变\ordinalnum这些标准的功能 (2ème)
  • 找到另一个方便的序数函数……

感谢您的帮助

% !TEX encoding = UTF-8 Unicode
\documentclass{scrbook}
\usepackage[frenchb]{babel}
\usepackage[quiet]{fontspec}                    
\usepackage[dayofweek]{datetime}        %\usepackage{fmtcount}
\setmainfont[Numbers={OldStyle}]{Adobe Garamond Pro}
\begin{document}
2\up{ème}, \ordinalnum{2}, \formatdate{1}{4}{2014}. 
\end{document}

在此处输入图片描述

答案1

\ordinalnum使用\textsuperscript;您可以轻松将其更改为\up使用。这也是一个错误,因为对于阳性序数词,应该使用“ème”,对于阴性序数词也是如此。

\documentclass{scrbook}
\usepackage[frenchb]{babel}
\usepackage[quiet]{fontspec}
\usepackage[dayofweek]{datetime}

% use \up instead of \textsuperscript
\renewcommand{\fmtord}[1]{\up{#1}}
\usepackage{etoolbox}
\makeatletter
% fix a glitch in `fmtcount` that has “eme”
% for masculine ordinals, instead of ème
\patchcmd{\@ordinalMfrench}{eme}{ème}{}{}
\makeatother

\setmainfont[Ligatures=TeX,Numbers={OldStyle}]{Linux Libertine O} 

\begin{document}
2\up{ème}, \ordinalnum{2}, \formatdate{1}{4}{2014}.
\end{document}

在此处输入图片描述

如果按照 Bernard 的建议,您想要缩写上标,只需设置相关选项。

\documentclass{scrbook}
\usepackage[frenchb]{babel}
\usepackage[quiet]{fontspec}
\usepackage[dayofweek]{datetime}

\fmtcountsetoptions{abbrv}

% use \up instead of \textsuperscript
\renewcommand{\fmtord}[1]{\up{#1}}
\usepackage{etoolbox}
\makeatletter
% fix a glitch in `fmtcount` that has “eme”
% for masculine ordinals, instead of ème
\patchcmd{\@ordinalMfrench}{eme}{ème}{}{}
\makeatother

\setmainfont[Ligatures=TeX,Numbers={OldStyle}]{Linux Libertine O}

\begin{document}
2\up{e}, \ordinalnum{2}, \formatdate{1}{4}{2014}.
\end{document}

在此处输入图片描述

相关内容