`babel`——正在加载语言吗?

`babel`——正在加载语言吗?

如何获取 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}

在此处输入图片描述

相关内容