\selectlanguage 不会改变 itemize 样式

\selectlanguage 不会改变 itemize 样式

我在使用 LaTeXbabel软件包时遇到了一些问题。您可能知道,根据语言的不同,例如frenchenglish,列表的显示样式不同是正常的itemize(法语样式更紧凑,使用破折号而不是项目符号)。例如,

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\begin{document}
Blah. Blah blah!
\begin{itemize}
\item Item;
\item Other item.
\end{itemize}
To be continued\dots
\end{document}

产量

英文排版

而用 替换englishfrench我们会得到

法式排版

很好。但是现在,假设我已经为 加载了两种语言babelenglish最后加载,并且我想通过 命令获得法语字体\selectlanguage,即我编写以下代码:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french,english]{babel}
\begin{document}
\selectlanguage{french}
Blah. Blah blah!
\begin{itemize}
\item Item;
\item Other item.
\end{itemize}
To be continued\dots
\end{document}

然后,我期望得到与之前相同的结果。但事实并非如此:虽然感叹号和分号前或点后的空格工作正常,但 itemize 样式仍然像英语一样!

列举问题

这一事实该如何解释?(是软件包中的错误吗babel?...)。当然,有没有人有好的解决方案(*)来避免这种令人讨厌的行为?

(*)当然,我可以在我的itemize环境内部进行破解,以强制使用法语 itemize 样式(分别是之后的英语 itemize 样式\selectlanguage{english});但我的目标是通过单个命令使一切正常\selectlanguage{...}......(此外,我希望获得一个可直接移植到任何语言的解决方案)。

PS:实际上我的目标是编写一个支持多种语言的包,根据用户希望使用的语言,行为会略有不同。因此,我必须在编写时加载所有可能的语言\RequirePackage[...]{babel},然后使用\selectlanguage...但是我遇到了上面解释的问题,这让我很烦恼! :-(

答案1

根据文档:

从 2.2a 版开始,仅当法语为“主要语言”时,frenchb 才会改变列表、脚注和章节第一段的缩进的布局)[...] 否则 frenchb 不会改变有关列表、脚注和段落缩进的任何内容。

它还规定,如果法语是主要语言,那么列表的布局就会被修改各种语言

\frenchbsetup提供了全局包选项(使用 进行设置):

  1. StandardLayout=true如果法语是主要语言,则强制 frenchb 不修改列表的布局。

  2. GlobalLayoutFrench=false如果法语是主要语言,则对列表进行修改仅有的在文件的部分内容中使用法语。

\frenchbsetup是(在 LaTeX 风格中,经常出现“可前缀化”的想法,这可能不是一个好主意,并且很难混合不同的文档;也因为没有可用的“撤消对 foo 包的加载”)一个preamble-only命令。

我没有在文档中看到命令来切换文档中途的列表自定义,可能有一些内部命令可用但我没有检查。因此,似乎您应该选择french作为主要语言(上次加载的选项babel),并且可能2.选择上方,具体取决于您希望列表在其他语言的文档部分中如何显示。

相关内容