从多语言中检测主要/默认语言

从多语言中检测主要/默认语言

我正在创建一个mystyle.sty设置背景、样式和简介的包。主 .tex 文件仅包含一些包加载和选项,当然还有正文。其中一个选项是

\setdefaultlanguage{finnish}

我需要的是,如果我将默认语言也更改为英语,则介绍部分(在包中)将更改为英语。因此问题是:

  1. 如果可能的话,我如何检测命令设置的语言\setdefaultlanguage
  2. 使用此信息来选择合适的介绍的最简单方法是什么?

对于第二个问题,introtext 命令存储到,例如\introinfinnish\introinenglish。不同语言的数量不限于两种。

一个最小的 XeLaTeX 示例 ( main.tex):

\documentclass[12pt,a4paper]{memoir}

\usepackage{fontspec}

\usepackage{polyglossia}
\setdefaultlanguage{finnish} % (english)
\setotherlanguage{english}

\usepackage{mystyle}

\begin{document}
  \intropage % from mystyle
  \clearpage

  Something in finnish % (english)
\end{document}

和包 ( mystyle.sty)

\ProvidesPackage{mystyle}
\newcommand{\introinfinnish}{Text in finnish...}
\newcommand{\introinenglish}{Text in english...}

% some commands that selects the correct introtext and stores it into \introtext

\newcommand{\intropage}{ % just a sketch
  \@date
  \vfill
  \introtext
}

答案1

主要语言存储在中\xpg@main@language,因此类似下面的操作就可以了。

\ProvidesPackage{mystyle}
\newcommand{\introinfinnish}{Text in finnish...}
\newcommand{\introinenglish}{Text in english...}

% some commands that selects the correct introtext and stores it into \introtext

\newcommand{\intropage}{% just a sketch
  \@date
  \vfill
  \@ifundefined{introin\xpg@main@language}
    {\PackageWarningNoLine{mystyle}{No introduction for `\xpg@main@language'}%
     \introinenglish}
    {\@nameuse{introin\xpg@main@language}}
}

如您所见,您可以使用任何您想要的语言,只要您给出定义\introin<language>

请使用\setmainlanguage而不是弃用的\setdefaultlanguage

相关内容