这个数组参数以及它与 stix 包的交互发生了什么?

这个数组参数以及它与 stix 包的交互发生了什么?

好吧,我正在制作一个 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}

相关内容