![不支持 \ordinal 语言‘UKenglish’](https://linux22.com/image/270690/%E4%B8%8D%E6%94%AF%E6%8C%81%20%5Cordinal%20%E8%AF%AD%E8%A8%80%E2%80%98UKenglish%E2%80%99.png)
我收到此警告:
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
解决了警告。但显然,我想使用UKenglish
或british
设置。
答案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
缺少UKenglish
和british
语言,并且包在用语言替换之前会抛出警告english
。
这段代码添加了缺失的命令并修复了警告:
\let\@ordinalMUKenglish\@ordinalMenglish
\let\@ordinalFUKenglish\@ordinalFenglish
\let\@ordinalNUKenglish\@ordinalNenglish
(如果您在序言中而不是在包中定义这些命令,就像我一样,它还需要\makeatletter
/组合)\makeatother