我正在尝试为我的学生创建一个垂直枚举的 3 列(1、2、3)工作表,以学习分配属性。
h/t @peter grill 和 @tarass 提供绘制箭头来说明分布的 TiKz 代码。
问题:
记录错误,指出(a)枚举(b)多列问题和(c)问题解决步骤与问题编号不正确对齐。
也许与 TiKz 有冲突?
在此先感谢您的帮助!
母语:
\documentclass{exam}
\usepackage{amsmath}
\usepackage{multicol}
\usepackage{enumitem}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{calc,shapes}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}
\newcommand{\DrawBox}[2]{%
\begin{tikzpicture}[overlay,remember picture]
\draw[->,shorten >=5pt,shorten <=5pt,out=70,in=130,distance=0.5cm,#1] (MarkA.north) to (MarkC.north);
\draw[->,shorten >=5pt,shorten <=5pt,out=50,in=140,distance=0.3cm,#2] (MarkA.north) to (MarkB.north);
\end{tikzpicture}
}
\newlength{\MyL}
\newcommand{\TkM}[2]{%
\settowidth{\MyL}{#2}
#2\hspace{-\MyL}\makebox[\MyL]{\tikzmark{#1}}
}
\begin{document}
\begin{multicols}{3}
\begin{enumerate}
\item
\[\TkM{MarkA}{a}(\TkM{MarkB}{b}+\TkM{MarkC}{c})=ab+ac
\DrawBox{OrangeRed,distance=0.45cm,in=130,shorten >=3pt,shorten <=3pt}{Cerulean,out=65,in=110,distance=0.3cm,shorten >=3.5pt,shorten <=3pt}\]
\begin{align*}
-(2x+5)&=(\TkM{MarkA}{-1})(\TkM{MarkB}{2x}+\TkM{MarkC}{5})
\DrawBox{OrangeRed,distance=0.6cm}{Cerulean,out=60,in=110,distance=0.4cm}\\
&=(-1)(2x)+(-1)(5)\\
&=-2x+(-5)\\
&=-2x-5
\end{align*}
\end{multicols}
\end{enumerate}
\end{document}
答案1
错误是
! LaTeX Error: \begin{enumerate} on input line 26 ended by \end{multicols}.
因为你有它所说的\begin{enumerate}
结局\end{multicols}
结束文档
\end{enumerate}
\end{multicols}
\end{document}
并且没有出现任何错误。