需要建议/指导来为将多次使用的表创建新环境

需要建议/指导来为将多次使用的表创建新环境

我对 LaTeX 或 TeX 总体来说还是一个初学者。

我使用 Tex Studio 编写任何 LaTeX 文档。

我正在编写一个需要许多表格的文档,所有表格都基于同一个模板,考虑复制和粘贴不同的内容。

在互联网上寻找重用表格代码的方法,似乎命令和环境就是我所需要的。即使我还没有研究过 LaTeX 的实际工作原理,我或多或少知道如何使用 booktabs 和 tabularx 从头开始​​制作表格。我们可以说,我仍然处于脚本小子状态,即使我试图找出为什么某些代码以某种方式工作,而以另一种方式不工作。


我的环境:

Windows 10 x64 2004

TeXstudio 2.12.22 (git 2.12.22)
Using Qt Version 5.12.1, compiled with Qt 5.12.1 R

PDFLATEX: pdflatex.exe -version
MiKTeX-pdfTeX 4.0.1 (MiKTeX 20.6.29)

这是我做的:

\newcounter{usecase}
\newenvironment{usecase}[1]%
{%
\stepcounter{usecase}%
\tabularx{\linewidth}{lX} \toprule%
\textbf{\#\arabic{usecase}} & \textbf{#1}\\ \midrule
}
{\bottomrule%
\endtabularx}%

\newcommand{\desc}[1]{\textbf{Description} & {#1}\\ \midrule}
\newcommand{\precond}[1]{\textbf{Preconditions} & {#1}\\}
\newcommand{\postcond}[1]{\textbf{Postconditions} & {#1}\\ \midrule}
\newcommand{\basicpath}[1]{\textbf{Basic Path} & {#1}\\}
\newcommand{\altpath}[1]{\textbf{Alternate Path} & {#1}\\}
\newcommand{\expath}[1]{\textbf{Exception Path} & {#1}\\}

但它会引发多个错误,即使它们是相同的:

Misplaced \noalign. \end{usecase}

这就是我想要实现的目标:

\begin{usecase}{Title}
\desc{Very long desc with \textbf{formatting} but no environments}
\precond{Pre condition text with
    \begin{itemize}
    \item One item
    \item Two item
    \end{itemize}
} % precond
\postcond{test}  % like precond, just skipping
\basicpath{test} % like precond, just skipping
\altpath{test}   % like precond, just skipping
\expath{test}    % like precond, just skipping
\end{usecase}

实际的表格将是这样的:

\begin{table}[h!]
\centering
\begin{tabularx}{\textwidth}{lX} \toprule
\textbf{\#1} & \textbf{Title of The Use Case}\\ \midrule
\textbf{Description} &%
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam, metus a finibus efficitur, tortor enim consequat arcu, nec congue.
\\% description text
\midrule
\textbf{Preconditions} & Precondition text\\
\textbf{Postconditions} & Postconditions text\\ \midrule
\textbf{Basic Path} & User does this and this:
                      \begin{itemize}
                      \item Step 1
                      \item Step 2
                      \item Step 3
                      \item Step 4
                      \item Step 5
                      \end{itemize}\\
\textbf{Alternate Path} & Alternate Path (optional)\\
\textbf{Exception Path} & Exception Path (optional)\\
\bottomrule
\end{tabularx}
\end{table}

在此处输入图片描述

附言

由于这是预览,所以表格渲染得并不完美。如果我在 Adob​​e Reader 上打开它,它就完美了。

答案1

罪魁祸首是“隐藏的”,老实说,我难以想象:

\usepackage{datetime2}

如果没有此包,文档编译也不会出现问题。

tabularx有趣的是,如果您使用这样的环境,它不会产生问题:

\begin{tabularx}{<width>}{<cols>}
\end{tabularx}

\newenvironment但是如果你在tabularx 宏中使用它,它就会:

\newenvironment{env}
{\tabularx{<width>}{<cols>}}
{\endtabularx}

\begin{env}
\end{env} % Error: Misplaced \noalign.

相关内容