如果我使用带有 babel 的 algorithmic,同时使用希伯来语和英语,行号就会丢失。使用 MikTeX 2.9。
\documentclass{article}
\usepackage[hebrew,english]{babel}
\usepackage{algorithm}
\usepackage{algorithmic}
\begin{document}
\begin{algorithm}
\caption{A caption}
\begin{algorithmic}[1]
\STATE{A line which should be numbered.}
\end{algorithmic}
\end{algorithm}
\end{document}
答案1
Joseph Wright 已经提到了问题的原因和可能的解决方案。我在页面中找到了另一种方法LaTeX 中的希伯来语。 在标题之下算法学您可以找到 的修改版本algorithmic.sty
。您可以下载此文件并以不同的名称(heb-algorithmic.sty
例如 )保存它(TeX 可以找到它的地方),然后在文档的序言中加载修改后的版本:
\usepackage{heb-algorithmic}
我用以下文件做了测试:
\documentclass{article}
\usepackage[hebrew,english]{babel}
\usepackage{heb-algorithmic}
\begin{document}
\begin{algorithmic}[1]
\STATE{A line which should be numbered.}
\end{algorithmic}
\end{document}
一切按预期进行;行号又回来了。
答案2
你可以将最小示例简化为
\documentclass{article}
\usepackage[hebrew,english]{babel}
\usepackage{algorithmic}
\begin{document}
\begin{algorithmic}[1]
\STATE{A line which should be numbered.}
\end{algorithmic}
\end{document}
IE包algorithm
与此无关。根本问题似乎是重新定义hebrew
的选项无法扩展。这导致一些内部测试失败,因此没有打印任何数字。恢复原始定义可以解决这个问题babel
\@arabic
\documentclass{article}
\usepackage[hebrew,english]{babel}
\usepackage{algorithmic}
\begin{document}
\makeatletter
\def\@arabic#1{\number#1}
\makeatother
\begin{algorithmic}[1]
\STATE{A line which should be numbered.}
\end{algorithmic}
\end{document}
我不知道在真实情况下这是否可以(我确信改变是有原因的)。