
알고리즘 숙제로 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{}\\
빈 빈 줄을 남기지 않고 줄 끝에 다음과 같은 것을 사용할 수 있습니다 (아래 코드의 두 번째 버전).
\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
\par
LaTeX에서는 인수 내에서 줄 단락 나누기(예: 명시적 또는 빈 줄)를 허용하지 않는 방식으로 명령을 정의할 수 있습니다 . 오류 메시지는 명령의 경우에도 마찬가지인 것 같습니다 \eIf
.
여기서 빈 줄을 생략하는 것 외에는 해결책을 모르겠습니다. 아마도 다른 답변자가 여기서 도움을 줄 수 있을 것입니다.