我尝试重建一个相当复杂的数学表,结果几乎让我满意。MWE 实际上编译成了我想要的表格,但出现了错误消息。当我将表格包含到我的真实(大)文档中时,我也会收到错误消息,但在这种情况下,文档不再编译。
我花了相当多的时间进行实验和检查$
,但找不到错误,如能得到任何提示我将不胜感激。
\documentclass[]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{latexsym}
\usepackage{amsmath}
\usepackage[listings,theorems]{tcolorbox}
\tcbset{before={\par\medskip\pagebreak[0]\noindent},after={\par\medskip}}%
\begin{document}
\newcounter{texercise}[chapter]
\begin{tcolorbox}[colback=blue!5,colframe=blue!50!black,arc=0mm,
theorem={Algebra}{texercise}{(Vereinfachter) Datentyp 'Liste'}{myMarker}]{}
\medskip
\begin{tabular}{llll}
\textbf{algebra} & $list_1$ & & \\
\textbf{sorts} & \multicolumn{3}{l}{$list$, $elem$ \{$bool$ ist im folgenden immer implizit dabei\}} \\
\textbf{ops} & $empty$ & $:$ & $\to list$ \\
& $first$ & $:list$ & $\to elem$ \\
& $append$ & $:list$ & $\to list$ \\
& $concat$ & $:list \times elem$ & $\to list$ \\
& $isempty$ & $:list \times list$ & $\to bool$ \\
\textbf{sets} & $list$ & \multicolumn{2}{l}{$= \{ <a_1,\dots,a_n> \mid n \ge 0, a_i \in elem$\}}\\
\textbf{functions} & & & \\
& $empty$ & \multicolumn{2}{l}{ $ = \Diamond$}\\
& \multicolumn{3}{l}{
\begin{equation*}
$first(a_1 \dots a_n) =$
\begin{cases}
$a_1$ & \text{falls $n>0$} \\
undefiniert & \text{sonst}
\end{cases}
\end{equation*}} \\
\textbf{end} $list_1$ & & & \\
\end{tabular}
\end{tcolorbox}
\end{document}
错误信息如下:
ERROR: Missing $ inserted.
--- TeX said ---
<inserted text>
$
l.36 \end{equation*}}
\\
--- HELP ---
TeX probably found a command that can be used only in math mode when
it wasn't in math mode....
结果如下:
答案1
无需equation*
为了使用cases
环境而使用。只需使用以下定义:
%...
& \multicolumn{3}{l}{%
$first(a_1 \dots a_n) =
\begin{cases}
a_1 & \text{falls $n>0$} \\
\text{undefiniert} & \text{sonst}
\end{cases}$} \\
%...
部分问题在于您正在使用equation*
然后使用$
...启动数学模式$
。已经启动数学模式,因此不需要equation*
使用。$
您可能还希望使用\langle
...\rangle
而不是<
...>
作为列表符号。