枚举 - 不要使用本地化字母

枚举 - 不要使用本地化字母

我有一个enumerate定义为的环境:

\begin{enumerate}[\hspace{0.5cm} a)]
    \item blablabla
\end{enumerate}

并且按照预期,它使用字母进行枚举。但是,由于我的文档是西班牙语,因此n它使用(语音上的“eɲe”或“énye”)进行枚举ñ。我希望它使用标准字母表(ñ在我们的文化中通常不用于枚举)。我真的不想使用它,\stepcounter{enumi}因为它是机器生成的 tex 代码。

答案1

一种方法是抓取\let原始\@alph宏,然后babel重新定义,\@alph根据西班牙语的字母提供具体的补充。

在环境开始时,enumerate可​​以将其改回原始版本(babel 之前)。但是,这也会改变任何的出现\@alph

\documentclass{article}

\makeatletter

\let\@alphorig\@alph
\makeatother
\usepackage{etoolbox}
\usepackage{enumerate}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}


\makeatletter
\AtBeginEnvironment{enumerate}{%
  \let\@alph\@alphorig
}
\makeatother



\begin{document}
\begin{enumerate}[\hspace{0.5cm} a)]
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
    \item blablabla
\end{enumerate}

\end{document}

在此处输入图片描述

答案2

一个粗略的解决方案是添加选项es-nolayout,这也会改变其他印刷方面(参见texdoc spanish)。

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish,es-nolayout]{babel}

\begin{document}

\begin{enumerate}
\item Outer
  \begin{enumerate}
  \item Inner
  \item b
  \setcounter{enumii}{12} % just to keep it short
  \item m
  \item n
  \item o
  \item p
  \item q
  \end{enumerate}
\item Outer
\end{enumerate}

\end{document}

更有针对性的方法是从字母编号中删除“ñ”和“Ñ”即可etoolbox

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{etoolbox}

\makeatletter
\patchcmd{\@alph}{\~n\or}{}{}{}
\patchcmd{\@Alph}{\~N\or}{}{}{}
\makeatother

\begin{document}

\begin{enumerate}
\item Outer
  \begin{enumerate}
  \item Inner
  \item b
  \setcounter{enumii}{12} % just to keep it short
  \item m
  \item n
  \item o
  \item p
  \item q
  \end{enumerate}
\item Outer
\end{enumerate}

\end{document}

这也适用于enumitemenumerate功能(我建议使用前一个包,它更加强大和灵活)。

在此处输入图片描述

向 的维护者 Javier Bezos 提出功能请求是一个好主意babel-spanish

答案3

在下面enumitem您可以定义枚举标签。例如,使用\noNalph如下定义:

在此处输入图片描述

\documentclass{article}

\usepackage[spanish]{babel}
\usepackage{enumitem}

\DeclareRobustCommand{\noNalph}[1]{\ifnum\value{#1}=15 \refstepcounter{#1}\fi \alph{#1}}

\begin{document}

\begin{enumerate}[label={\noNalph{enumi})}]
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
\end{enumerate}

\end{document}

在更一般的设置中,您还可以手动定义枚举序列:

\documentclass{article}

\usepackage[spanish]{babel}
\usepackage{enumitem}

\makeatletter
\DeclareRobustCommand{\noNalph}[1]{\ifcase\value{#1}% 0
  %   1    2    3    4    5    6    7    8    9   10   11   12   13
  \or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m%
  %  14   15   16   17   18   19   20   21   22   23   24   25   26
  \or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z%
  \else\@ctrerr\fi}
\makeatother

\begin{document}

\begin{enumerate}[label={\noNalph{enumi})}]
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
  \item blablabla
\end{enumerate}

\end{document}

相关内容