TexStudio 编辑 Latex 时插入算法伪代码描述块一直报错:Missing \endcsname inserted. \While

问题描述

  • 使用 TexStudio 编辑 latex 时插入算法伪代码描述块一直报错:Missing \endcsname inserted. \While,如下图:

原因分析

  • 谷歌了很多资料,该删的文件也删了,该重建的也重建了,该替换的包也都替换了,算法伪代码描述块也换了很多样式,但是一直报这个错,或者解决了一个,又出现另一个,就是无法编译成功
  • 最后回过头观察 latex 文档模板,最后发现在导言区模板已经引入了 \usepackage{algorithmic} 包,这个包与添加算法伪代码所要使用的
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}  % 如果不想在算法伪代码模块中显示 end for 和 end while,则使用  %\usepackage[noend]{algpseudocode}

解决方法

  • 注释掉模板预先导入的 \usepackage{algorithmic} 包
  • 导入 \usepackage{algorithm}、\usepackage{algorithmicx}、\usepackage{algpseudocode} 包
  • 实例代码 1:
\begin{algorithm}[t]
	\caption{Name of your Algrithm}
	\label{alg:reference label}
	
	{\bf Require:}\\ % Input
	\hspace*{0.05in} Input1: $X$\\
	\hspace*{0.05in} Input2: $Y$\\
	
	{\bf Require:}\\ % Output
	\hspace*{0.05in} Output1: $A$\\
	\hspace*{0.05in} Output2: $B$\\
	\hspace*{0.05in} Output2: $Z$\\
	\begin{algorithmic}[1] % remove [1] if you do not need row number in your algorithm
		\While{The algorithm has not converged}
		\For{$i in range(N)$}
		\State Sample $x_{i}$ from $X$.
		\State Sample $y_{i}$ from $Y$.
		\State $A = \sqrt{x^{2} + y^{2}}$
		\State $B = \sum_{1}^{N}x_{i}*y_{i}$
		\EndFor
		\State $Z = A + B$
		\EndWhile
	\end{algorithmic}
\end{algorithm}
  • 实例代码1 效果

  • 实例代码 2:

\begin{algorithm}[t]
	\caption{Name of your Algrithm}
	\label{alg:reference label}
	
	{\bf Require:}\\ % Input
	\hspace*{0.05in} Input1: $X$\\
	\hspace*{0.05in} Input2: $Y$\\
	
	{\bf Require:}\\ % Output
	\hspace*{0.05in} Output1: $A$\\
	\hspace*{0.05in} Output2: $B$\\
	\hspace*{0.05in} Output2: $Z$\\
	\begin{algorithmic}
		\While{The algorithm has not converged}
		\For{$i in range(N)$}
		\State Sample $x_{i}$ from $X$.
		\State Sample $y_{i}$ from $Y$.
		\State $A = \sqrt{x^{2} + y^{2}}$
		\State $B = \sum_{1}^{N}x_{i}*y_{i}$
		\EndFor
		\State $Z = A + B$
		\EndWhile
	\end{algorithmic}
\end{algorithm}
  • 实例代码 2 的效果
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn-WJW

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值