设置
希望这不是重复的。我见过的关于这个主题的所有其他提交都是如何在使用时更正文本缩进\usepackage[ruled,vlined]{algorithm2e}
,但是由于我使用的 \usepackage[linesnumbered,ruled]{algorithm2e}
旧解决方案都不起作用。
给定一长段文本放入我的算法中,如下所示:
平均能量损失
\documentclass[12pt, oneside]{book}
\usepackage{lipsum} %remove \lipsum[#]
%ALGORITHM CODE
\usepackage[linesnumbered,ruled]{algorithm2e}
%-----------------------------BEGIN-----------------------------
\begin{document}
\begin{algorithm}[H]
\SetKwInOut{Input}{Input}
\SetKwInOut{Output}{Output}
\SetKwInOut{Define}{Define}
\underline{Initialise:} Conditions for Algorithm\;
\Define{define functions for algorithm}
\Input{input of algoithm}
\Output{Output}
\underline{Run through algorithm In Full:}
{
\hspace{5pt} \textbf{Start}:
}
{
\hspace{15pt} \lipsum[1]
}
{
\hspace {5pt} \textbf{End}
}
\caption{Name of algoithm and details etc...}
\end{algorithm}
\end{document}
目标
如何在线更正代码 \hspace{15pt} \lipsum[1]
,以便整个段落与第一个单词正确缩进。
答案1
从手册上看,{algorithm2e}
对数学输入进行优化的情况相当常见。但是,由于您的算法包含大量文本,因此您有两个选择:
选项1)
在这种情况下,我们在第一行之后的所有行上都缩进编写段落。那么在这种情况下,我建议\hspace{15pt} \lipsum[1]
用以下内容替换:
\leftskip 10pt\relax \lipsum[1]
,或者更简洁地表示为:
\bgroup
\parindent 0pt
\leftskip 5pt
\textbf{Start}:
\leftskip 10pt\relax \lipsum[1]
\textbf{End}
\egroup
选项 2)
在这种情况下,我们将在向左移动的块中创建一个段落,即删除第一行的缩进,这通常是通过\noindent
处理文本来完成的(取决于您使用的 LATEX 编译器)。因此,为了安全起见,我使用了以下内容:
\begin{algorithm}[H]
\SetKwInOut{Input}{Input}
\SetKwInOut{Output}{Output}
\SetKwInOut{Define}{Define}
\underline{Initialise:} Conditions for Algorithm\;
\Define{define functions for algorithm}
\Input{input of algoithm}
\Output{Output}
\underline{Run through algorithm In Full:}
{
\hspace{5pt} \textbf{Start}:
}
{
\hspace{15pt} my life is lonely
}
{
\bgroup\leftskip 15pt \hspace{1pt} \lipsum[1] \par\egroup
}
{
\hspace {5pt} \textbf{End}
}
\caption{Name of algoithm and details etc...}
\end{algorithm}
这给出了期望的结果。