我的语言(斯洛文尼亚语)使用不同的字母表,以 a、b、c、č、d 开头。我已正确babel
设置,但\alph{}
编号仍然显示为 a、b、c、d。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[slovene]{babel}
\renewcommand\thesection{\alph{section}}
\begin{document}
\section{}
\section{}
\section{}
\section{}
\end{document}
答案1
以下\alph
示例\Alph
根据斯洛文尼亚字母. 内部的原始定义\@alph
可以\@Alph
在 LaTeX 内核中找到 (源文档)。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[slovene]{babel}
\renewcommand\thesection{\alph{section}}
\makeatletter
\renewcommand*{\@alph}[1]{%
\ifcase#1\or a\or b\or c\or\v c\or
d\or e\or f\or g\or h\or i\or j\or
k\or l\or m\or n\or o\or p\or r\or s\or\v s\or
t\or u\or v\or w\or x\or
y\or z\or
\v z\else\@ctrerr\fi
}
\renewcommand*{\@Alph}[1]{%
\ifcase#1\or A\or B\or C\or\v C\or
D\or E\or F\or G\or H\or I\or J\or
K\or L\or M\or N\or O\or P\or R\or S\or\v S\or
T\or U\or V\or W\or X\or
Y\or Z\or\v Z\else\@ctrerr\fi
}
\makeatother
\begin{document}
\section{\Alph{section}}
\section{\Alph{section}}
\section{\Alph{section}}
\section{\Alph{section}}
\end{document}
评论:
而不是
č
使用 定义的形式\v c
,它被称为 LaTeX 内部字符表示 (LICR)。它的优点是它不依赖于输入编码。我建议
\usepackage[T1]{fontenc}
使用Computer Modern 字体\usepackage{lmodern}
代替旧的OT1
字体编码,其中重音字母由基本字符和重音符号构成。T1
编码包含重音字符的插槽,而 Latin Modern 字体将 Computer Modern 字体扩展为许多重音字符作为单个字形。
答案2
\alph
以下是\@alph
LaTeX 内核:
\def\alph#1{\expandafter\@alph\csname c@#1\endcsname}
\def\@alph#1{%
\ifcase#1\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\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}
\@alph
\ifcase
使用...语句对传递的计数器的值进行条件处理\fi
。您可以通过这种方式创建自己的计数器表示。我使用下面的\slalph
和来做到这一点\@slalph
(字母表取自维基百科的斯洛文尼亚字母):
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[slovene]{babel}
\makeatletter
\def\slalph#1{\expandafter\@slalph\csname c@#1\endcsname}
\def\@slalph#1{%
\ifcase#1\or a\or b\or c\or č\or d\or e\or f\or g\or h\or i\or j\or
k\or l\or m\or n\or o\or p\or r\or s\or š\or t\or u\or v\or
z\or ž\else\@ctrerr\fi}
\makeatother
\renewcommand\thesection{\slalph{section}}
\begin{document}
\section{}
\section{}
\section{}
\section{}
\end{document}
您可以对大写字母执行相同操作,并相应地定义(比如)\slAlph
(和\@slAlph
)。