我如何才能访问当前语言中的单词“页面”?我希望它在当前语言的标题中显示“页面”。
以下是 MWE:
\documentclass{article}
\usepackage{fancyhdr}
\usepackage[english,german,italian]{babel}
\fancypagestyle{mystyle}{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead{
\ifodd\value{page}
\else
\hfill page \thepage
\fi
}
}
\pagestyle{mystyle}
\usepackage{lipsum}
\begin{document}
\selectlanguage{german}
\lipsum[1-50]
\end{document}
\hfill page \thepage
我想要的是与切换\hfill <macro> \thepage
,其中<macro>
是一些依赖于语言的宏。
注意::解决方案需要能够在没有它的情况babel
下也能工作,因为它将在一个.cls
,因为它将在一个文件前导入了 babel。我也希望它在没有 babel 的情况下也能工作,就像\languagename
没有 babel 时一样。
我想一个解决方案是使用定义我自己的宏这个答案我只是想知道是否已经存在针对单词“page”的宏,因为这样就没有必要定义我自己的宏了。
答案1
为了比较,我们可以在 OpTeX 中执行以下操作:
\fontfam [lm]
\foreach
{en}{Page} {es}{Página} {de}{Seite} {it}{Pagina} {cs}{Strana}
\do
#1#2{\sdef{_mt:page:#1}{#2}}
\headline={\ifodd\pageno \else \hfil \_mtext{page} \the\pageno \fi}
\footline={}
%\eslang % select language what do you want
\delang
%\itlang
%\cslang
\lipsum[1-50]
\bye
答案2
这里有一个解决方案,创建一个新的宏\page
,用不同的语言打印单词“page”(对于其他语言,默认为英文“page”):
\documentclass{article}
\usepackage{fancyhdr}
\ExplSyntaxOn
\prop_new:N\g_vebjorn_text_prop
\prop_gset_from_keyval:Nn \g_vebjorn_text_prop
{
english = {Page},
spanish = {P\acute{a}gina},
german = {Seite},
italian = {Pagina}
}
\newcommand{\page}
{
\prop_get:NVNTF \g_vebjorn_text_prop \languagename \l_tmpa_tl
{ \l_tmpa_tl }
{ \prop_item:Nn \g_vebjorn_text_prop {english} }
}
\ExplSyntaxOff
\fancypagestyle{mystyle}{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead{
\ifodd\value{page}
\else
\hfill \page\ \thepage
\fi
}
}
\pagestyle{mystyle}
\usepackage{lipsum}
\usepackage[english,german,italian]{babel}
\begin{document}
\selectlanguage{german}
\lipsum[1-50]
\end{document}
这工作正常,但我想知道 babel 是否已经具有具有类似功能的东西。
答案3
我使用了\providecommand{\pagename}{Page}
一些“黑客手段”。如果导入了 babel,则命令会被重新定义(我猜?),如果没有,则它将返回到此定义。这样,它将适用于比我使用expl3
语法的原始答案更多的语言。
以下是 MWE:
\documentclass{article}
\usepackage{fancyhdr}
\providecommand{\pagename}{Page}
\fancypagestyle{mystyle}{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead{
\ifodd\value{page}
\else
\hfill \pagename\ \thepage
\fi
}
}
\pagestyle{mystyle}
\usepackage{lipsum}
\usepackage[english,german,italian]{babel}
\begin{document}
\selectlanguage{german}
\lipsum[1-50]
\end{document}