使用Latex算法包进行switch语句?

时间:2010-09-18 08:59:11

标签: algorithm 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}

谢谢!

2 个答案:

答案 0 :(得分:4)

我在乳胶文档中写了以下定义。 看起来他们的工作。 只需在算法包的包含语句后的任何位置插入上面的行。特别是,为了使算法呈现简洁,我区分复合案例和单行案例。单行案例以\ 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

Farn Wang 电气工程系 国立台湾大学

答案 1 :(得分:2)

如果您看一下official documentation from CTAN on the algorithm package,您会注意到,没有默认的SWITCH-CASE语句。我认为这就是原因,为什么它被遗漏在如此多的文件中;)