日期时间,语言不受支持

日期时间,语言不受支持

我想使用该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?

相关内容