好吧,我正在制作一个 tikz 图表,我决定使用一个名为数学它导出了一些代码,我修改了这些代码以便它能够编译并包含在下面。
\documentclass[a4paper,12pt]{book}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{enumitem}
\usepackage[geometry]{ifsym}
\usepackage{tikz}
\usepackage{tikz-cd}
\usepackage{float}
\usepackage{caption}
\usepackage{graphicx}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{positioning}
\usepackage{textcomp}
\usepackage{stix2}
\begin{document}
\begin{figure}[!h]
\centering
\tikzset{every picture/.style={line width=0.75pt}} %set default line width to 0.75pt
\begin{tikzpicture}[x=0.75pt,y=0.75pt,yscale=-1,xscale=1]
%uncomment if require: \path (0,400); %set diagram left start at 0, and has height of 400
%Shape: Rectangle [id:dp5758355635496207]
\draw [dash pattern={on 4.5pt off 4.5pt}] (120.57,190) -- (220,190) -- (220,340) -- (120.57,340) -- cycle ;
%Straight Lines [id:da45032070076001796]
\draw (120,320) -- (138,302) ;
%Straight Lines [id:da5117572195696634]
\draw (188,254) -- (153,287) ;
%Straight Lines [id:da7569286612079461]
\draw (202,238) -- (220,220) ;
% Text Node
\draw (156.43,250.43) node [anchor=north west][inner sep=0.75pt] [align=left] {$\displaystyle \alpha $};
% Text Node
\draw (162,258.4) node [anchor=north west][inner sep=0.75pt] {$\smblkcircle $};
% Text Node
\draw [draw opacity=0] (136,277) -- (160,277) -- (160,311) -- (136,311) -- cycle ;
\draw (148,294) node [align=left] {\begin{minipage}[lt]{13.6pt}\setlength\topsep{0pt}
$\displaystyle f$
\end{minipage}};
% Text Node
\draw (191.14,233.23) node [anchor=north west][inner sep=0.75pt] [align=left] {$\displaystyle \begin{array}{c}{{{\displaystyle}}}
g\\
\end{array}$};
% Text Node
\draw (131,202.4) node [anchor=north west][inner sep=0.75pt] {$a$};
% Text Node
\draw (198,312) node [anchor=north west][inner sep=0.75pt] [align=left] {$\displaystyle b$};
\end{tikzpicture}
\end{figure}
\end{document}
然而,在原始导出的代码中,倒数第三条\draw
命令改为
\draw (191.14,233.23) node [anchor=north west][inner sep=0.75pt] [align=left] {$\displaystyle \begin{array}{{>{\displaystyle}l}}
g\\
这出现了一个Illegal character in the array argument
错误,这促使我试图弄清楚如何使它进入半可工作状态。
那么,我的问题是:首先,这个错误的原因是什么?我下载了该stix2
软件包,以便能够使用该\smlblkcircle
命令,我认为编译器对我所做的修改有一些抱怨,尽管此代码实际上输出的图像与我想要的图像非常接近。我的第二个问题是:我该如何修复代码,是与 mathcha 代码内联,还是添加列参数,以便更好地对齐图表中的所有内容?
答案1
发布的示例代码由于缺失\begin{document}
和其他问题而产生多个错误。标题中的错误与该示例中的任何代码都无关,但与最终片段有关。
\documentclass{article}
\begin{document}
$\begin{array}{{>{\displaystyle}l}} x \end{array}$
\end{document}
产生错误
! LaTeX Error: Illegal character in array arg.
因为array
包尚未加载,所以>
不是定义的列类型。
如果你加载array
,它(意外地)起作用
\documentclass{article}
\usepackage{array}
\begin{document}
$\begin{array}{{>{\displaystyle}l}} x \end{array}$
\end{document}
然而,额外的{}
组只是虚假的并且被 TeX 的低级参数解析意外删除,如果您添加额外的列,您将得到预期的错误。
\documentclass{article}
\usepackage{array}
\begin{document}
$\begin{array}{{>{\displaystyle}l}l} x \end{array}$
\end{document}
生产
! Package array Error: Illegal pream-token (>{\displaystyle }l): `c' used.
删除括号组可以修复以下问题:
\documentclass{article}
\usepackage{array}
\begin{document}
$\begin{array}{>{\displaystyle}ll} x \end{array}$
\end{document}