2010-09-18 8 views
5

Moje googling nie wymyślił, jak wykonać instrukcję przełączania w algorytmie przy użyciu algorytmu i pakietów algorytmicznych, ale zakładam, że możesz. Większość przewodników po prostu nie wspominała o tym w żaden sposób.Korzystanie z pakietu algorytmicznego Latex dla instrukcji 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} 

Dzięki!

Odpowiedz

3

Napisałem następujące definicje w moim dokumencie z lateksu. Wygląda na to, że działają. Wystarczy wstawić powyższe linie w dowolnym miejscu po stwierdzeniu włączenia pakietu algorytmicznego. Zwłaszcza, aby prezentacja algorytmu była zwięzła, rozróżniam przypadki złożone i przypadki jednoliniowe. Przypadki jednolinijkowe zaczynają się od \ CASELINE. Przypadki złożone zaczynają się od \ CASE, a kończą na \ ENDCASE. Podobne do instrukcji domyślnych.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%% 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. 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

Możesz wypróbować następujący przykład.

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

Farn Wang Dział Elektryka inż. Narodowy Uniwersytet Tajwan

+0

Próbowałem Twojej metody, ale otrzymuję komunikat "Błąd LaTeXa: Coś jest nie tak - być może brakujący element \" \ ENDCASE ". Czy coś musi być napisane przed '\ newcommands'? Może coś wspólnego z '@'? – Shahbaz

Powiązane problemy