我正在创建一个mystyle.sty
设置背景、样式和简介的包。主 .tex 文件仅包含一些包加载和选项,当然还有正文。其中一个选项是
\setdefaultlanguage{finnish}
我需要的是,如果我将默认语言也更改为英语,则介绍部分(在包中)将更改为英语。因此问题是:
- 如果可能的话,我如何检测命令设置的语言
\setdefaultlanguage
? - 使用此信息来选择合适的介绍的最简单方法是什么?
对于第二个问题,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