用例的 LaTeX 模板

用例的 LaTeX 模板

目前,我正在尝试为我的团队成员创建一个 LaTeX 模板,以便创建一组用例。我想用表格来创建类似下图的东西2(无颜色)。目前为止没有问题。

不过,我希望有一种好方法来构建文档,只需要使用命令,例如\actor{1}{System user},其中 1 是用例#1。

我不知道该如何解决这个问题,尤其是当包含多行文本时,例如主路径(M)(在图片中)。

有谁知道构建这种模板的好方法是什么,或者可以指出我查找该主题的正确文档吗?

答案1

您应该尝试让作者界面尽可能简单。我会创建一个环境来简化这一点,并在设置中添加复杂性和演示方面。

\newenvironment{usecase}
  \addheading{}{}
  \addrow{}{}
  \addmulrow{}{}
\end{usecase}

下面是实现这一点的最小示例:

\documentclass{article}
\usepackage{booktabs}

\newcommand\addrow[2]{#1 &#2\\ }

\newcommand\addheading[2]{#1 &#2\\ \hline}
\newcommand\tabularhead{\begin{tabular}{lp{8cm}}
\hline
}

\newcommand\addmulrow[2]{ \begin{minipage}[t][][t]{2.5cm}#1\end{minipage}% 
   &\begin{minipage}[t][][t]{8cm}
    \begin{enumerate} #2   \end{enumerate}
    \end{minipage}\\ }

\newenvironment{usecase}{\tabularhead}
{\hline\end{tabular}}
\begin{document}
\begin{usecase}
  \addheading{Actor}{System user} 
  \addrow{Precondition}{The system, shows, in the form part of an object type, the number   indication.}
  \addrow{Postcondition}{A disconnected number indicating the type of `other constructed object'.}
  \addmulrow{Main path (M)}{\item User selects \ldots
                                   \item System demands \ldots}
\end{usecase}

\end{document}

如果需要,您可以添加计数器来自动增加编号。我无法理解您的编号方案,因此将其从示例中删除。

总而言之,保持作者的命令简单(它们只需要处理语义)并将您的表现方面放在单独的命令中。

答案2

对 Yiannis 示例做了一些改动。添加了计数器、表格捕获、更改了表格样式以符合 ESKD 标准,并删除了基本定义。

现在的定义是:

\begin{usecase}{System user}
    \addrow{Precondition}{The system, shows, in the form part of an object type, the number indication.}

    \addrow{Postcondition}{A disconnected number indicating the type of `other constructed object'.}

    \addmulrow{Main path (M)}{
        \item User selects \ldots
        \item System demands \ldots}
\end{usecase}

它看起来像:

在此处输入图片描述

来源是:

\newcommand\tabularhead[1]{
\begin{table}[h]
  \caption{Action <<#1>>}
  \begin{tabular}{|p{0.4\linewidth}|p{0.55\linewidth}|}
    \hline
    \textbf{Action} & \textbf{#1} \\
    \hline}

  \newcommand\addrow[2]{#1 &#2\\ \hline}

  \newcommand\addmulrow[2]{ \begin{minipage}[t][][t]{2.5cm}#1\end{minipage}% 
     &\begin{minipage}[t][][t]{8cm}
      \begin{enumerate} #2   \end{enumerate}
      \end{minipage}\\ }

  \newenvironment{usecase}{\tabularhead}
{\hline\end{tabular}\end{table}}

答案3

我进一步开发了 Yiannis Lazarides 的命令并对其进行了改进。如下所示:

\newenvironment{usecaseenv}{
    \def\arraystretch{2}
    \begin{tabular}{lp{11cm}}\hline
}{
    \hline\end{tabular}
    \def\arraystretch{1}
}

\newcommand\addheading[1]{
    \multicolumn{2}{c}{\textbf{\textit{#1}}}\\ \hline
}
\newcommand\addrow[2]{\textbf{#1}\begin{minipage}[t][][t]{11cm} \end{minipage}% 
   &\begin{minipage}[t][][t]{11cm}
    #2
    \end{minipage}\\
}

% The actual command definition
\let\oldFigureName\figurename %save the old definition of the caption's figure name
\newcommand{\usecase}[6]{
    \vspace*{0.5cm} % adds a bit of padding to make it look nicer11
    \renewcommand{\figurename}{Use case} %call figure name "Use case" instead
    \begin{figure}[htbp]
        \begin{center}
            \begin{usecaseenv}
                \addheading{#1} 
                \addrow{Use case:}{#3}
                \addrow{Objects:}{#4}
                \addrow{Functions:}{#5}
            \end{usecaseenv}
        \end{center}
        \caption{#6}
        \label{#2}
    \end{figure}
    \renewcommand{\figurename}{\oldFigureName} %reset caption figure name
}

结果:

用例命令的示例。

现在这对于我和我的合著者来说是完美的。这抽象了环境,因此您可以简单地使用以下命令:

\usecase{TITLE}{uc:LABEL}{USE CASE}{OBJECTS}{FUNCTIONS}{CAPTION}

在我的版本中,以后可以引用\ref{uc:LABEL}该用例。

希望你觉得它有用。

相关内容