Использование алгоритмического пакета Latex для оператора switch? - PullRequest
6 голосов
/ 18 сентября 2010

Мой поисковый запрос не придумал, как сделать оператор switch в алгоритме с использованием алгоритма и алгоритмических пакетов, но я предполагаю, что вы можете. Большинство гидов просто не упоминали об этом в любом случае.

\begin{algorithm}
\caption{send(...) method}
\begin{algorithmic}
\IF{dest equals..}
%\SWITCH{nature}
\STATE cast data...
\STATE extract data...
\STATE copy...
%\ENDSWITCH
\ELSE
\STATE match dest....
%\SWITCH{nature}
\STATE cast data...
\STATE extract data...
\STATE send...
%\ENDSWITCH
\ENDIF
\end{algorithmic}
\end{algorithm}

Спасибо! * * 1004

Ответы [ 2 ]

4 голосов
/ 18 февраля 2012

Я написал следующие определения в своем латексном документе. Кажется, они работают. Просто вставьте вышеупомянутые строки в любом месте после вашего оператора включения алгоритмического пакета. Особенно, чтобы сделать представление алгоритма кратким, я различаю сложные случаи и однострочные. Однострочные регистры начинаются с \ CASELINE. Составные случаи начинаются с \ CASE и заканчиваются \ ENDCASE. Аналогично заявлениям по умолчанию.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% The following definitions are to extend the LaTeX algorithmic 
%% package with SWITCH statements and one-line structures.
%% The extension is by 
%%   Prof. Farn Wang 
%%   Dept. of Electrical Engineering, 
%%   National Taiwan University. 
%% 
\newcommand{\SWITCH}[1]{\STATE \textbf{switch} (#1)}
\newcommand{\ENDSWITCH}{\STATE \textbf{end switch}}
\newcommand{\CASE}[1]{\STATE \textbf{case} #1\textbf{:} \begin{ALC@g}}
\newcommand{\ENDCASE}{\end{ALC@g}}
\newcommand{\CASELINE}[1]{\STATE \textbf{case} #1\textbf{:} }
\newcommand{\DEFAULT}{\STATE \textbf{default:} \begin{ALC@g}}
\newcommand{\ENDDEFAULT}{\end{ALC@g}}
\newcommand{\DEFAULTLINE}[1]{\STATE \textbf{default:} }
%% 
%% End of the LaTeX algorithmic package extension.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Вы можете попробовать следующий пример.

\SWITCH {$\theta$}
\CASE {1}
  \STATE Hello
\ENDCASE
\CASELINE {2}
  \STATE Good-bye
\DEFAULT
  \STATE Again ?
\ENDDEFAULT
\ENDSWITCH

Фарн Ван Отдел электротехники Eng. Национальный Тайваньский Университет

2 голосов
/ 21 сентября 2010

Если вы посмотрите на официальную документацию от CTAN по пакету алгоритмов , вы заметите, что по умолчанию не имеет оператора SWITCH-CASE .Я полагаю, что это и есть причина, почему это упущено во многих документах;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...