You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LaTeX算法代码报错求助:未定义控制序列、缺失$及括号匹配错误

问题解决与代码修正

错误原因及对应修复方案

  1. \BlankLine未定义:你当前使用的algorithmic宏包不支持\BlankLine命令,有两种解决方式:

    • 改用algpseudocode宏包(替换原algorithmic),该宏包原生支持\BlankLine;
    • 继续使用algorithmic,用\STATE{}替代\BlankLine生成空行。
  2. 缺失$符号:代码中$_$是错误写法,LaTeX中下划线需用\_表示,$_$会导致$符号不匹配,引发语法错误。

  3. 缺失{和}:同样由$_$的错误写法导致解析混乱,替换为\_即可解决。

修正后的代码示例

方案一:使用algpseudocode宏包(推荐)

宏包部分调整:

\usepackage{moreverb}
\usepackage{graphicx}
\usepackage{ifthen}
\usepackage{amsmath,amsfonts}
\usepackage{algorithm}
\usepackage{algpseudocode} % 替换原algorithmic宏包

算法代码:

\begin{algorithm}[b]
\caption{Find aa}
\BlankLine
\State $a \leftarrow \text{input}$;
\BlankLine
\State $\text{List1} \leftarrow \text{x\_x\_x\_x}(a,a)$;
\BlankLine
\State $\text{List2} \leftarrow \text{x\_x\_x\_x}(a,\text{List1},\text{List2})$;
\BlankLine
\State $H \leftarrow a(a,a,a,a)$;
\BlankLine
\Return $x$;
\end{algorithm}

方案二:继续使用algorithmic宏包

宏包保持原配置,算法代码:

\begin{algorithm}[b]
\caption{Find aa}
\STATE{} % 替代\BlankLine
\STATE $a \leftarrow \text{input}$;
\STATE{}
\STATE $\text{List1} \leftarrow \text{x\_x\_x\_x}(a,a)$;
\STATE{}
\STATE $\text{List2} \leftarrow \text{x\_x\_x\_x}(a,\text{List1},\text{List2})$;
\STATE{}
\STATE $H \leftarrow a(a,a,a,a)$;
\STATE{}
\STATE \Return $x$;
\end{algorithm}

额外说明

  • 算法语句必须用\State(algpseudocode)或\STATE(algorithmic)包裹,这是宏包要求的语法规范;
  • 文本类标识(如input、List1)用\text{}包裹(依赖amsmath宏包,你已加载),避免被解析为数学公式;
  • 所有下划线统一用\_表示,禁止直接写_或$_$。

内容的提问来源于stack exchange,提问作者AlessandroIV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 13:38:26