Столкновение с проблемой ENDIF в алгоритме с использованием латекса - PullRequest
0 голосов
/ 01 декабря 2018

Я хочу использовать IF в моем коде, используя LaTeX.Но я не могу покончить с этим.Я использовал ENDIF и такие команды \newcommand\sIf[2]{ \If{#1}#2\EndIf}.Я хочу напечатать END, если в конце if-else.Ниже приведен код и его вывод.

\documentclass[a4paper]{article}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}

\begin{document}


\begin{algorithm}
\caption{Calculating Speed Using GPS}\label{alg1}
\begin{algorithmic}[1]
\State $distance\gets  0 $
\State $time\gets  0 $
\State $speedGPS  \gets  0 $


\If{$location.hasSpeed()$}
\State $speedGPS\gets location.getSpeed()$
\Else
\State $speedGPS \gets dist / time$
\EndIf


\State $counter  \gets (counter + 1) \% data_points$
\State $speedGPS  \gets speedGPS * 3.6d$
\end{algorithmic}
\end{algorithm}


\end{document}

enter image description here

1 Ответ

0 голосов
/ 01 декабря 2018

Отбросьте опцию noend, которую вы передаете algpseudocode:

enter image description here

\documentclass{article}

\usepackage{algorithm,algpseudocode}

\begin{document}

\begin{algorithm}
  \caption{Calculating Speed Using GPS}
  \begin{algorithmic}[1]
    \State $distance\gets  0 $
    \State $time\gets  0 $
    \State $speedGPS  \gets  0 $
    \If{$location.hasSpeed()$}
      \State $speedGPS\gets location.getSpeed()$
    \Else
      \State $speedGPS \gets dist / time$
    \EndIf
    \State $counter  \gets (counter + 1) \% data_points$
    \State $speedGPS  \gets speedGPS \times 3.6d$
  \end{algorithmic}
\end{algorithm}

\end{document}
...