伪代码包中的单词之间没有空格

伪代码包中的单词之间没有空格

我正在使用pseudocode包进行算法开发。(这里是文档:伪代码包文档

伪代码块内的普通文本之间没有空格。我必须\在每个单词后手动插入空格。

\documentclass{report}  
\usepackage{pseudocode}
\begin{document}
    This is a text area. Another text\\

\begin{pseudocode}{Celsius To Fahrenheit}{c}
f \GETS {9c/5} + 32\\
\RETURN{f}\\
\\

\BEGIN
 basic\ algo\ for\ nothing\\
 secondary\ algo
\END
\\\\

This\ is\ experimental\ text 
\\\\


\end{pseudocode}

Outside Pseudocode

\begin{pseudocode}{Name}{Parameter 1, 2 ,3}

\IF True
\THEN 
\BEGIN
    something\ to\ do\\
    or\ ther\ thing\ to\ do
\END
\ELSEIF otherwise
\THEN
\BEGIN
    Do\ other\ things\\
    Don't\ do\ something\ else
\END
\\

\FOR i \GETS 0 \TO 10
\DO something\ processing
\\

\WHILE not\ true \DO don't\ do\ it
\\\\

\REPEAT something 
\UNTIL exception
\\\\

\PROCEDURE{Procedure name}{proc\ params}
    something
\ENDPROCEDURE

\DO \BEGIN
1.something\\
2.anything\\
3.nothing\\
4.many\ things\\
5.everything
\END
\\

\REPEAT repeat something
\UNTIL some condition is met


\end{pseudocode}

\end{document}

但是,根据文档,它应该自动在文本中的单词之间插入空格。请帮忙,有什么办法可以激活空格吗?或者还有其他人遇到这些问题吗?我真的很喜欢这个包的输出。

谢谢!

答案1

手册还说

请注意,语句的内容是在数学模式下排版的。因此,非数学模式的文本必须用 括起来\mbox{}

通过使用\mbox\text(需要amsmath)作为文本部分,它可以工作。实际上,手册在第一个例子中有点错误,这里是pseudocode.tex用于创建手册的代码摘录:

To form compound statements from simple statements, the {\em begin-end} 
construct is used as follows:
\begin{verbatim}
 \BEGIN
    some statement\\
    another statement\\
    yet another statement
 \END
\end{verbatim}
This generates the following:

\medskip
\begin{pseudocode}[display]{}{}
\BEGIN
\mbox{some statement}\\
\mbox{another statement}\\
\mbox{yet another statement}
\END
\end{pseudocode}

第一个代码不会创建后面显示的输出,因为它使用了\mbox,而代码示例则不会。下面是您的原始代码的示例,其中我使用了\text\mbox。不过,只使用其中一个。还请考虑\COMMENTLaRiFaRi 在评论中提到的宏。

在此处输入图片描述

\documentclass{article}
\usepackage{pseudocode,amsmath}
\begin{document}
\begin{pseudocode}{Name}{Parameter 1, 2 ,3}
\COMMENT{This is experimental text} \\

\IF \mbox{using \texttt{mbox}}
\THEN 
\BEGIN
    \mbox{something to do}\\
    \mbox{or other thing to do}
\END
\ELSEIF \text{using \texttt{text}}
\THEN
\BEGIN
    \text{Do  other things}\\
    \text{Don't do something else}
\END
\end{pseudocode}
\end{document}

相关内容