Как возможно расположить строки с отступом в алгоритме (алгоритмическом) в латексе?
Я хотел бы иметь возможность записать следующее:
\begin{algorithm}[H]
\caption{My Awesome Program} \label{awesome-algorithm}
\begin{algorithmic}[1]
\FOR { $i=0$ to $logn$ }
\STATE Step A:
% would like the indent the next lines...
\STATE do something
\STATE do another thing
\STATE Step B
\ENDFOR
\end{algorithmic}
\end{algorithm}
Как возможно расположить те строки с отступом? Я пытался найти ответ путем гугления без успеха. Я надеюсь Вы, парни могут помочь мне. Спасибо.
Я в настоящее время использую следующее для добавления отступа:
\STATE \ \ \ \ do something
который кажется простым неправильный. Но работы.
Попробуйте это вместо этого:
\STATE\hspace{\algorithmicindent} do something
\STATE\hspace{\algorithmicindent} do another thing
Это должно работать лучше, поскольку для отступа используется текущее значение отступа.
Редактирование: Используя предложение Чарльза, вы можете определить новую команду, \INDSTATE
:
\newcommand{\INDSTATE}[1][1]{\STATE\hspace{#1\algorithmicindent}}
и затем использовать ее, когда вам нужен отступ. По умолчанию \INDSTATE
отступ на один уровень, но вы можете изменить его:
\INDSTATE do something % What you want
\INDSTATE[2] do something % Indent by twice the amount
Я бы посоветовал тебе не отступать так. Пакет предназначен для стандартного форматирования псевдокода, чтобы облегчить чтение.
Вы пытаетесь нарушить этот стандарт. Было бы гораздо лучше попробовать переписать код, чтобы он соответствовал ожиданиям читателей.
Почему вы пометили шаг A и B? Каждое утверждение должно быть своим собственным шагом. Похоже, что вы добавляете дополнительную структуру, которая на самом деле делает код менее читабельным. Можете ли вы получить тот же эффект с комментариями? Как насчет объединения "сделай что-нибудь" и "сделай что-нибудь другое" в одно утверждение?
.