2010-09-18 2 views
5

Мой googling не придумал, как сделать оператор switch в алгоритме, используя алгоритм и алгоритмические пакеты, но я предполагаю, что вы можете. Большинство гидов просто не упоминали об этом в любом случае.Использование алгоритма алгоритма Latex для оператора 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} 

Спасибо!

ответ

3

В моем латексном документе я написал следующие определения. Кажется, что они работают. Просто вставьте приведенные выше строки в любом месте после инструкции включения алгоритмического пакета. В частности, чтобы сделать представление алгоритма кратким, я различаю составные случаи и однострочные случаи. Однострочные случаи начинаются с \ 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{[email protected]}} 
\newcommand{\ENDCASE}{\end{[email protected]}} 
\newcommand{\CASELINE}[1]{\STATE \textbf{case} #1\textbf{:} } 
\newcommand{\DEFAULT}{\STATE \textbf{default:} \begin{[email protected]}} 
\newcommand{\ENDDEFAULT}{\end{[email protected]}} 
\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 

Farn Ван Кафедра электротехники Eng. Национальный университет Тайваня

+0

Я пробовал ваш метод, но я получаю ошибку LaTeX: что-то не так - возможно, отсутствует \ item.' с '\ ENDCASE'. Нужно ли что-то писать перед '\ newcommands'? Может быть, что-то делать с '@'? – Shahbaz

Смежные вопросы