不支持 \ordinal 语言‘UKenglish’

不支持 \ordinal 语言‘UKenglish’

我收到此警告:

No support for \ordinal for language 'UKenglish' on input line xxx

输入行指的是生成的*.toc文件:

\contentsline {chapter}{Bibliography}{117}{hiddenchapter.2}

该文件中有很多类似的行,只有这一行(它是文件的最后一行)导致了警告。所以我不确定它是否直接由这一行引起,或者引用的输入行不正确...

我尝试在互联网上寻找线索,但没有找到有关此警告的任何详细信息。

那么,这个警告到底是什么意思?可能是什么原因造成的?我该如何预防呢?(我不喜欢有警告,所以如果可能的话,我真的很想摆脱它!)

触发警告的最小示例是:

\documentclass[UKenglish]{book}

\listfiles
\usepackage{babel,datetime,fancyhdr}
\fancyfoot[CO,CE]{\today}
\pagestyle{fancy}
\let\monthnameUKenglish\monthnameenglish
\let\dayofweeknameUKenglish\dayofweeknameenglish
\let\dayofweeknameidUKenglish\dayofweeknameidenglish

\begin{document}

\newpage
\today

\end{document}

\listfiles这个最小示例的输出是:

 *File List*
    book.cls    2007/10/19 v1.4h Standard LaTeX document class
    bk10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
   babel.sty    2013/05/16 v3.9f The Babel package
 english.ldf    2012/08/20 v3.3p English support from the babel system
datetime.sty    2010/09/21 v2.58 Date Time Package
fmtcount.sty    2012/10/24 v2.02
  ifthen.sty    2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
  keyval.sty    1999/03/16 v1.13 key=value parser (DPC)
etoolbox.sty    2011/01/03 v2.1 e-TeX tools for LaTeX
    etex.sty    1998/03/26 v2.0 eTeX basic definition package (PEB)
fcprefix.sty    2012/09/28
fcnumparser.sty    2012/09/28
  amsgen.sty    1999/11/30 v2.0
fc-english.def    2012/06/18
dt-UKenglish.def    2010/07/07
fancyhdr.sty    
fc-UKenglish.def    2012/06/18

pdfTeX 是版本3.1415926-2.5-1.40.14 (TeX Live 2013/Debian)

补充笔记:

  • 不使用该datetime包似乎可以消除警告..?
  • 指定语言\documentclass而不是\usepackage{babel} 使用english而不是UKenglish解决了警告。但显然,我想使用UKenglishbritish设置。

答案1

产生警告的最小示例是:

\documentclass[british]{book}

\usepackage{babel,datetime}

\begin{document}

\today

\end{document}

但是,请注意,它也能产生正确的输出。要隐藏警告,请在加载包后将以下两行添加到前言中datetime

\let\monthnamebritish\monthnameenglish
\let\dayofweeknamebritish\dayofweeknameenglish

当项目未针对给定语言进行定义时,该datetime包默认使用英语定义。对于这种情况,british这是可以的:进行了正确的设置,并且恢复到english默认单词是正确的行为。该包只是无法抑制警告。

原来的

这实际上是一条评论,但我无法通过这种方式发布足够的代码。

仍然很难知道你的问题出在哪里。你拥有最新的fmtcount。以下文档对我来说编译得很好:

\documentclass[british]{book}

\usepackage{babel,datetime,fancyhdr}
\fancyfoot[CO,CE]{Draft version, \author, \today}
\pagestyle{fancy}

\usepackage{blindtext} %To generate text of document

\begin{document}

\tableofcontents
\blinddocument

\end{document}

我指定了british和,babel因为您的错误消息指的是UKenglish

答案2

回答后安德鲁·斯旺,我清楚地发现该fmtcount软件包的多语言支持尚未(完全)完成。(我不太清楚)

因此,我查看了文档,发现\fc@multiling在执行检查某个命令(取决于给定的参数)是否可用后会抛出警告的命令。经过(某种)逆向工程后,我发现命令\@ordinal{gender}UKenglish缺少UKenglishbritish语言,并且包在用语言替换之前会抛出警告english

这段代码添加了缺失的命令并修复了警告:

\let\@ordinalMUKenglish\@ordinalMenglish
\let\@ordinalFUKenglish\@ordinalFenglish
\let\@ordinalNUKenglish\@ordinalNenglish

(如果您在序言中而不是在包中定义这些命令,就像我一样,它还需要\makeatletter/组合)\makeatother

相关内容