
アルゴリズムの宿題にLaTeXを使用していますが、解決できないエラーがあります。
このエラーは、複数のネストされた if を好まない Algorithm2e から発生するものだと思います(?)
Runaway argument?
{ \eIf {$firstWall$}{ Tourne vers la gauche tant que pas blanc \; }{ \ETC.
! Paragraph ended before \algocf@eIfthen was complete.
<to be read again>
\par
l.86
私のソースコードは次のとおりです:
\eIf{$firstWall$}{
Rotation du robot de 10 degrés \;
}
{
Rotation du robot de 10 degrés \;
}
\eIf{$lightValue() >= blanc$}{
\eIf{$firstWall$}{
Tourne vers la gauche tant que pas blanc \;
}{
Tourne vers la droite tant que pas blanc \;
}
%Here is the line 86%
Tourne vers la gauche jusqu'à retrouver du blanc et enregistre l'angle de rotation du robot. \;
$alignTrajectory(false)$ \;
Continue à avancer \;
}{
Tourne vers la droite jusqu'à retrouver du blanc \;
$alignTrajectory(true)$ \;
Continue à avancer \;
}
申し訳ありませんが、コマンドはフランス語ですが、問題ないと思います。
この問題を解決するにはどうすればいいですか? このエラーはどこから発生するのでしょうか?
答え1
Paŭlo Ebermann が回答で述べているように、\eIf
段落区切り (あなたの場合は、空の空白行) は許可されません。それらの空白行が何の役にも立たない場合は、削除してください。コードを読みやすくするためにそれらの空白行を使用している場合は、文字を使用してそれらの行をコメント アウトするだけです%
(以下のコードの最初のバージョン)。実際にいくつかの行の間に垂直方向のスペースを追加することが目的である場合は、\mbox{}\\
空の空白行を残さずに、行末に のようなものを使用できます (以下のコード 2 番目のバージョン)。
\documentclass{article}
\usepackage{algorithm2e}
\begin{document}
\begin{algorithm}
\eIf{$firstWall$}{
Rotation du robot de 10 degrés \;
}
{
Rotation du robot de 10 degrés \;
}
\eIf{$lightValue() >= blanc$}{
\eIf{$firstWall$}{
Tourne vers la gauche tant que pas blanc \;
}{
Tourne vers la droite tant que pas blanc \;
}
%Here is the line 86%
Tourne vers la gauche jusqu'à retrouver du blanc et enregistre l'angle de rotation du robot. \;
%
$alignTrajectory(false)$ \;
%
Continue à avancer \;
}{
Tourne vers la droite jusqu'à retrouver du blanc \;
%
$alignTrajectory(true)$ \;
%
Continue à avancer \;
}
\end{algorithm}
\begin{algorithm}
\eIf{$firstWall$}{
Rotation du robot de 10 degrés \;
}
{
Rotation du robot de 10 degrés \;
}
\eIf{$lightValue() >= blanc$}{
\eIf{$firstWall$}{
Tourne vers la gauche tant que pas blanc \;
}{
Tourne vers la droite tant que pas blanc \;
}
%Here is the line 86%
Tourne vers la gauche jusqu'à retrouver du blanc et enregistre l'angle de rotation du robot. \;\mbox{}\\
$alignTrajectory(false)$ \;\mbox{}\\
Continue à avancer \;
}{
Tourne vers la droite jusqu'à retrouver du blanc \;\mbox{}\\
$alignTrajectory(true)$ \;\mbox{}\\
Continue à avancer \;
}
\end{algorithm}
\end{document}
最初のバージョンの結果は次のとおりです。
2 番目のバージョンの結果は次のとおりです。
答え2
LaTeX では、引数内での行の段落区切り (つまり、明示的な行または空行) を許可しない方法でコマンドを定義できます\par
。エラー メッセージは\eIf
、コマンドの場合も同様であるように見えます。
ここでの解決方法は、空行を省略する以外にはわかりません。他の回答者が助けてくれるかもしれません。