Babel 的“of”关键字(例如“第 x 页,共 y 页”)

Babel 的“of”关键字(例如“第 x 页,共 y 页”)

我想在页脚中添加“第 X 页,共 Y 页”,但我还希望它能够灵活地用于其他语言。我知道我可以做到

\providecommand{\pagename}{Page}
\usepackage[german]{babel}
...
\pagename

因为 babel,所以会显示Seite而不是。我想要的是类似于 的内容,这样我就可以写:Pageof

\pagename \thepage{} of \pageref{LastPage}

使用适当的宏而不是of这样当我切换到德语(或任何其他语言)时,也会of切换到适当的语言。

梅威瑟:

\documentclass{article}
\usepackage{hyperref}
\usepackage{fancyhdr}
\usepackage{lastpage}
\providecommand{\pagename}{Page}
%\usepackage[german]{babel}

\fancypagestyle{custom}{%
    \fancyhf{}% clears the footer and header
    \fancyfoot[c]{\pagename \thepage{} of \pageref{LastPage}}
}%

\pagestyle{custom}

\begin{document}

foo baz baa, this is a document

\end{document}

答案1

有了,它既可用于重新定义现有标题babel,也可用于定义新标题。后缀会自动添加。\setlocalecaption\...namename

\documentclass{article}

\usepackage[english,italian,ngerman]{babel}

\setlocalecaption{english}{of}{of}
\setlocalecaption{italian}{of}{di}
\setlocalecaption{ngerman}{of}{von}

\begin{document}

\pagename\ 1 \ofname\ 4.

\selectlanguage{english}

\pagename\ 1 \ofname\ 4.

\selectlanguage{italian}

\pagename\ 1 \ofname\ 4.

\end{document}

这将打印:

第 1 页,共 4 页。
第 1 页,共 4
页。 1 至 4。

答案2

我定义了一个具有此属性的新宏\of::

\ExplSyntaxOn
\prop_new:N\g_of_text_prop
\prop_gset_from_keyval:Nn \g_of_text_prop
 {
   english   = {of},
   spanish   = {de},
   german    = {von},
   italian   = {di},
   norsk     = {av},
   nynorsk   = {av},
   swedish   = {av},
   danish    = {af},
   french    = {de},
   esperanto = {el}
 }
\newcommand{\of}
 {
   \prop_get:NVNTF \g_of_text_prop \languagename \l_tmpa_tl
     { \l_tmpa_tl }
     { \prop_item:Nn \g_of_text_prop {english} }
 }    
  
\ExplSyntaxOff

现在我可以写:

\pagename \thepage{} \of\ \pageref{LastPage}

当我使用时\usepackage[german]{babel} ,我得到了我想要的“Siete 1 von 1”。

相关内容