如何获取 babel 使用的语言的值?
我知道我可以使用,\@ifpackagewith{babel}{french}{<true>}{<false>}
但是这个命令会使我的代码变得非常丑陋,因为有几个嵌套的块,如下面的伪代码所示。
% French
\iflanguage{french}{
...
% English
}{
\iflanguage{english}{
...
% Unsupported
}{
...
}
}
我想使用switch
块而不是嵌套if
块。
答案1
这就是你要找的东西吗?
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french,italian,swedish,english]{babel}
\ExplSyntaxOn
\NewExpandableDocumentCommand{\langcase}{O{}m}
{
\str_case_e:nnF { \languagename } { #2 } { #1 }
}
\ExplSyntaxOff
\begin{document}
English:
\langcase[??Unsupported??]{
{english}{start}
{french}{début}
{italian}{inizio}
}
\selectlanguage{french}
Français:
\langcase[??Unsupported??]{
{english}{start}
{french}{début}
{italian}{inizio}
}
\selectlanguage{italian}
Italiano:
\langcase[??Unsupported??]{
{english}{start}
{french}{début}
{italian}{inizio}
}
\selectlanguage{swedish}
Svenska:
\langcase[??Unsupported??]{
{english}{start}
{french}{début}
{italian}{inizio}
}
\end{document}