algorithm2e 和葡萄牙语选项的问题

algorithm2e 和葡萄牙语选项的问题

我有这个包含两个 For 语句和一个 if-else 的小算法。我在序言中使用了选项portuguese,问题如下:没有显示单词“法萨“ 和 ”财务信息管理“(分别是 do 和 end),我得到“哈切尔“ 和 ”“。

以下是我的序言:

\documentclass{article}
\usepackage{cmap}
\usepackage{lmodern}            
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} 
\usepackage[brazil]{babel}
\usepackage{lastpage}
\usepackage{indentfirst}
\usepackage{color}      
\usepackage{graphicx}       
\usepackage{amsmath}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{multirow}
\usepackage[brazilian,hyperpageref]{backref}    
\usepackage[alf]{abntex2cite}
\usepackage[portuguese]{algorithm2e}

代码如下:

\begin{document}
\begin{algorithm}[htbp]
\SetAlgoLined
\LinesNumbered
\Dados{audio, tamanho, nivel, filtro, ch}
\Entrada{i, j, inicio, comprimento}
\BlankLine
$inicio \leftarrow 0$\;
  $comprimento \leftarrow tamanho$\;
\Para{$i \leftarrow 0$ \Ate $i<nivel$}{
    $inicio \leftarrow 0$\;
$comprimento \leftarrow tamanho/2^{i-1}$\;
\Para{$j \leftarrow 0$ \Ate $j<2^{i-1}$}{
        \eSe{j é par}{
                transformada\_wavelet(audio[inicio],comprimento, 1,'n', filtro, ch)\;
            }{
                transformada\_wavelet(audio[inicio],comprimento, 1,'i', filtro, ch)\;
            }
        }
}
\caption{A DWT-packet}
\label{alg:dwtp}
\end{algorithm}
\end{document}

结果(我在 Windows 上使用 pdfLaTeX):

...
para i ← 0 até i < nível hacer
...
para j ← 0 até j < 2^(i-1) hacer
...

如果我放入\SetKwFor{Para}{para}{fa\c{c}a}{fim para}TeX 文件,我会得到正确的输出。但是这个命令已经在包中了。为什么它不起作用?

答案1

这是 中的一个严重错误algorithm2e。“本地化关键字”的设置与语言无关,Para葡萄牙语和西班牙语定义了相同的关键字。后者已在软件包的最新版本中添加,

\SetKwFor{Para}{para}{hacer}{fin para}

出现在葡萄牙语部分中的类似定义之后,因此覆盖了它。

解决这样的错误需要对关键字进行不同的处理,以跟踪语言选项,而目前的软件包还不能做到这一点。

唯一的解决办法就是你找到的:发布

\SetKwFor{Para}{para}{fa\c{c}a}{fim para}

加载后algorithm2e

请向软件包作者提及此事。

答案2

尝试使用旧版本的软件包。使用算法2eRelease4.01,2009年12月14日,我没有遇到这个问题,正如你所见:

LaTeX 输出

相关内容