我想使用该datetime
包获取月份的名称,但该包不支持我使用的语言之一。我正在编写一个模板(带有文件.sty
),所以我希望能够使用不同的语言。我的问题是:我如何定义不受支持的语言的月份名称?
以下是代码:
\documentclass[5p,a4paper]{elsarticle}
\usepackage[utf8]{inputenc}
\usepackage[english,nynorsk]{babel}
\usepackage{appendix}
\RequirePackage{datetime}
\RequirePackage{etoolbox}
% Commands for how a date is displayed:
\newdateformat{MonthYearDateFormat}{%
\monthname[\THEMONTH], \THEYEAR
}
\newdateformat{DayMonthYearDateFormat}{%
\THEDAY \ \monthname[\THEMONTH], \THEYEAR
}
\newdateformat{YearDateFormat}{%
\THEYEAR
}
\patchcmd{\MaketitleBox}{\footnotesize\itshape\elsaddress\par\vskip36pt}{\footnotesize\itshape\elsaddress\par\parbox[b][36pt]{\linewidth}{\vfill\hfill\textnormal{\today}\hfill\null\vfill}}{}{}%
\patchcmd{\pprintMaketitle}{\footnotesize\itshape\elsaddress\par\vskip36pt}{\footnotesize\itshape\elsaddress\par\parbox[b][36pt]{\linewidth}{\vfill\hfill\textnormal{\today}\hfill\null\vfill}}{}{}%
\begin{document}
\selectlanguage{nynorsk}
\begin{frontmatter}
\title{title}
\author[University]{O. Nordmann}
\address[University]{University}
% Date:
%------------------------------------
\newdate{dateName}{19}{04}{2022}
\renewcommand*{\today}{\MonthYearDateFormat\displaydate{dateName}}
% Options for displaying date: \MonthYearDateFormat, \DayMonthYearDateFormat or \YearDateFormat
%
\begin{abstract}
abs
\end{abstract}
\end{frontmatter}
\appendix
\section{A}
\end{document}
这会产生错误:
Package datetime Warning: No month names provided for language 'nynorsk' on input line 45.
与其他解决方案相比,我更喜欢使用 datetime 的解决方案。我尝试使用datetime2
,但我发现使用 更简单datetime
。有没有办法为 nynorsk 语言定义月份名称?
编辑:datetime
我使用而不是的原因datetime2
是因为datetime2
没有显示月份名称的命令现在选定的语言。因为我希望我的模板能够处理多种语言,所以我不能使用特定于某种语言的名称来定义日期格式。
此外,名称与语言选项中的名称基本相同norsk
(在 中运行良好datetime
)。但是,我希望文档的其余部分以 排版nynorsk
。因此,我欢迎使用 中的名称norsk
但以 排版文档其余部分的解决方案nynorsk
。
答案1
您可以通过修补 (Bokmål) Norsk 配置文件中的相关命令来自行添加 Nynorsk 支持datetime
。我检查了脚本源并且看起来只有星期几的名称需要改变。
\documentclass[5p,a4paper]{elsarticle}
\usepackage[english,nynorsk]{babel}
\usepackage{appendix}
\usepackage[norsk]{datetime}
\usepackage{etoolbox}
\NewCommandCopy{\monthnamenynorsk}{\monthnamenorsk}
\NewCommandCopy{\dayofweeknameidnynorsk}{\dayofweeknameidnorsk}
\NewCommandCopy{\shortdayofweeknameidnynorsk}{\shortdayofweeknameidnorsk}
\NewCommandCopy{\datenynorsk}{\datenorsk}
\patchcmd{\dayofweeknameidnynorsk}{Mandag}{Måndag}{}{}
\patchcmd{\dayofweeknameidnynorsk}{Tirsdag}{Tysdag}{}{}
\patchcmd{\dayofweeknameidnynorsk}{L\o{}rdag}{Laurdag}{}{}
\patchcmd{\shortdayofweeknameidnorsk}{Man}{Mån}{}{}
\patchcmd{\shortdayofweeknameidnorsk}{Tir}{Tys}{}{}
\patchcmd{\shortdayofweeknameidnorsk}{L\o{}r}{Lau}{}{}
% Commands for how a date is displayed:
\newdateformat{MonthYearDateFormat}{%
\monthname[\THEMONTH], \THEYEAR
}
\newdateformat{DayMonthYearDateFormat}{%
\THEDAY \ \monthname[\THEMONTH], \THEYEAR
}
\newdateformat{YearDateFormat}{%
\THEYEAR
}
\patchcmd{\MaketitleBox}
{\footnotesize\itshape\elsaddress\par\vskip36pt}
{\footnotesize\itshape\elsaddress\par
\parbox[b][36pt]{\linewidth}{\vfill\hfill\textnormal{\today}\hfill\null\vfill}}
{}{}
\patchcmd{\pprintMaketitle}
{\footnotesize\itshape\elsaddress\par\vskip36pt}
{\footnotesize\itshape\elsaddress\par
\parbox[b][36pt]{\linewidth}{\vfill\hfill\textnormal{\today}\hfill\null\vfill}}
{}{}
\begin{document}
\begin{frontmatter}
\title{title}
\author[University]{O. Nordmann}
\address[University]{University}
% Date:
%------------------------------------
\newdate{dateName}{19}{05}{2022}
\renewcommand*{\today}{\MonthYearDateFormat\displaydate{dateName}}
% Options for displaying date: \MonthYearDateFormat, \DayMonthYearDateFormat or \YearDateFormat
%
\begin{abstract}
abs
\begin{otherlanguage}{english}\today\end{otherlanguage}
\end{abstract}
\end{frontmatter}
\appendix
\section{A}
\end{document}
(我将四月改为五月以更好地显示差异)。
答案2
datetime
已过时,已被 取代datetime2
,因此我建议您使用它。语言和区域支持由独立维护和安装的模块提供。还有一个用于“Norsk”的模块(可能是 Bokmål,当然,但使用起来应该不太难):https://ctan.org/pkg/datetime2-norsk
答案3
运行你的 MWE 我得到
Package datetime warning: no month names provided for language 'nynorsk' on input line 48.
我将您的 MWE 更改为使用datetime2
包(实际上是的替换datetime
)并收到(以及许多其他消息)
Package datetime2 Warning: Date-Time Language module 'nynorsk' not installed on input line 1913.
如果你对此一无所知,datetime
我觉得最好向作者 Nicola IC Talbot 寻求帮助http://www.dickimaw-books.com他通常反应很好。nynorsk 语言和其他北欧语言有什么区别?也许你可以制作一个数据时间语言模块 nynorsk?