
Für den folgenden Algorithmus erhalte ich vier Leerzeichen für jede Textzeile innerhalb der Schleife. Wie kann ich nur zwei oder drei Leerzeichen erhalten? Einige meiner Textzeilen gehen in die nächste Zeile. Ich möchte einige horizontale Leerzeichen sparen.
\usepackage[noline,boxruled,commentsnumbered,linesnumbered,titlenumbered]{algorithm2e}
\IncMargin{0.5em}
\begin{algorithm}
\SetKwInOut{Input}{input}\SetKwInOut{Output}{output}
\SetKwFor{Foreach}{for each}{do}{endfor}
\SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{endif}
\BlankLine
\Input{A method \emph{m}}
\Output{result}
\BlankLine
\Foreach { $x \in M_{x}$}{
do something
}
\caption{Algorithm}\label{Method}
\end{algorithm}
Antwort1
Verwenden
\SetInd{<space before>}{<space after>}
um den Abstand vor und nach der vertikalen Linie zu steuern (die über diese noline
Option deaktiviert wird). Hier ist ein Vergleich der Standardeinstellung und einer mit \SetInd{0.25em}{0.1em}
:
Code:
\documentclass{article}
\usepackage[noline,boxruled,commentsnumbered,linesnumbered,titlenumbered]{algorithm2e}
\IncMargin{0.5em}
\begin{document}
\noindent
Without setting \verb|\SetInd{}{}|:
\begin{algorithm}
\SetKwInOut{Input}{input}\SetKwInOut{Output}{output}
\SetKwFor{Foreach}{for each}{do}{endfor}
\SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{endif}
\BlankLine
\Input{A method \emph{m}}
\Output{result}
\BlankLine
\Foreach { $x \in M_{x}$}{
do something
}
\caption{Algorithm}\label{Method}
\end{algorithm}
\noindent
With \verb|\SetInd{0.25em}{0.1em}|:
\SetInd{0.25em}{0.1em}
\begin{algorithm}
\SetKwInOut{Input}{input}\SetKwInOut{Output}{output}
\SetKwFor{Foreach}{for each}{do}{endfor}
\SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{endif}
\BlankLine
\Input{A method \emph{m}}
\Output{result}
\BlankLine
\Foreach { $x \in M_{x}$}{
do something
}
\caption{Algorithm}\label{Method}
\end{algorithm}
\end{document}