如何更改日期时间的语言?

如何更改日期时间的语言?

更改标题页上的月份语言的条件不起作用。

如何根据选择编写条件来激活俄语或英语日期?

使用 XeLaTeX。

我的代码不起作用。梅威瑟:

\documentclass[10pt, oneside, a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage{polyglossia}

\setotherlanguage{russian}
\foreignlanguage{russian}

\usepackage{datetime}

\ifthenelse{\umruslang>0}
{ %rus
\newcommand{\rus}[1]{\foreignlanguage{russian}{#1}}
\newdateformat{docdatef}{\rus{\monthname\ \THEYEAR}}
}
{%eng
\newdateformat{docdatef}{\monthname\ \THEYEAR}
}

答案1

语言定义文件dt-russian.def(由 提供datetime)使用\cyrya月份名称等命令,而 XeLaTeX 并未提供这些命令。不过,datetime已被替换为datetime2以及相应的datetime2-russian模块(需要单独安装)提供 UTF-8 支持。

梅威瑟:

\documentclass{article}

\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage{russian}

\setmainfont{Liberation Serif}
\newfontfamily\cyrillicfont{Liberation Serif}

\usepackage[en-GB,russian]{datetime2}

\DTMlangsetup[en-GB,russian]{showdayofmonth=false}

\begin{document}
\today

\selectlanguage{russian}

\today

\end{document}

2018 年 1 月 2018 年 1 月

答案2

我同意这样datetime2更好,但你也可以用 来做到这一点datetime,只要你将\cyr?和的调用翻译\CYR?成它们的 Unicode 对应部分,这可以借助 来完成t2aenc.dfu

\documentclass[10pt, oneside, a4paper]{report}
\usepackage{polyglossia}

\setmainfont{Old Standard} % supports Cyrillic

\setmainlanguage{english}
\setotherlanguage{russian}

\usepackage{datetime}
\usepackage{expl3}

\newcommand{\rus}[1]{\foreignlanguage{russian}{#1}}
\newdateformat{docdatef}{\rus{\monthname\ \THEYEAR}}

%% convert \cyr? and \CYR? to unicode
\ExplSyntaxOn
\prg_generate_conditional_variant:Nnn \str_if_in:nn {xn} { T }
\group_begin:
\cs_set:Npn \DeclareUnicodeCharacter #1 #2
 {
  \tl_if_single:nT { #2 }
   {
    \str_if_in:xnT { \str_upper_case:f { \tl_to_str:n { #2 } } } { CYR }
     {
      \cs_gset:Npn #2 { \symbol{"#1} }
     }
   }
 }
\file_input:n { t2aenc.dfu }
\group_end:
\ExplSyntaxOff

\begin{document}

\today

{\docdatef\today}

\end{document}

在此处输入图片描述

相关内容