! LaTeX 错误:数组 arg 中的非法字符

! LaTeX 错误:数组 arg 中的非法字符

我收到以下错误消息

ABD:EveryShipout 初始化宏 几何学驱动程序:自动检测 几何学检测到的驱动程序:pdftex 没有文件 main.bbl。

! LaTeX 错误:数组 arg 中的非法字符。

请参阅 LaTeX 手册或 LaTeX Companion 了解解释。输入 H 可立即获得帮助。...

l.29 \begin{tabular}{|l|c{4cm}|}

\documentclass[12pt]{book}

\usepackage[french]{babel}
\usepackage{qtree}
\usepackage{adjustbox}
\usepackage[activate={true,nocompatibility},final,tracking=true,kerning=true,spacing=true,factor=1100,stretch=10,shrink=10]{microtype}
\usepackage{multicol}

\setlength{\unitlength}{1cm}

\input{structure.tex}

\hypersetup{pdftitle={Title},pdfauthor={Author}}

\begin{document}

    \begin{tabular}{|l|c{4cm}|}
    \hline
    Classe de caractère & Siginification\\
    \hline

    [abc$^\wedge$] & Un unique caractère qui peut être a, b ou c \\

    \hline

    $[^abc]$ & Le $^\wedge$ exprime la négation : cette classe représente un unique caractère, \tabularnewline qui peut prendre toutes les valeurs, sauf a, b et c\\

 \end{tabular}
\end{document}

根据 muzimuzhi 和 David Carlisle 所写的内容,新代码如下:

\documentclass[12pt]{book}

\usepackage[french]{babel}
\usepackage{qtree}
\usepackage{adjustbox}
\usepackage[activate={true,nocompatibility},final,tracking=true,kerning=true,spacing=true,factor=1100,stretch=10,shrink=10]{microtype}
\usepackage{multicol}
\usepackage{array}

\setlength{\unitlength}{1cm}

\input{structure.tex}

\hypersetup{pdftitle={Title},pdfauthor={Author}}

\begin{document}

    \begin{tabular}{|l|wc{4cm}|}
    \hline
    Classe de caractère & Siginification\\
    \hline

    [abc$^\wedge$] & Un unique caractère qui peut être a, b ou c \\

    \hline

    $[^abc]$ & Le $^\wedge$ exprime la négation : cette classe représente un unique caractère, \tabularnewline qui peut prendre toutes les valeurs, sauf a, b et c\\

 \end{tabular}
\end{document}

新的错误信息是:

ABD:EveryShipout 初始化宏 几何学驱动程序:自动检测 几何学检测到的驱动程序:pdftex 没有文件 main.bbl。

! 包数组错误:使用了非法的前导标记(w):‘c’。

请参阅数组包文档以了解解释。键入 H 可立即获得帮助。...
l.18 \begin{tabular}{|l|wc{4cm}|}

在 Js bibra 回答之后,我得到了以下代码和如下图所示的渲染:

    [![\begin{tabular}{lp{4cm}}
        \toprule
            Classe de caractère & Signification\\
        \midrule

            \[abc$^\wedge$\] & Un unique caractère qui peut être a, b ou c \\
        \midrule
            $\[^abc\]$ & Le $^\wedge$ exprime la négation: cette classe représente un unique caractère, \tabularnewline qui peut prendre toutes les valeurs, sauf a, b et c\\
        \midrule
            $\[a-zA-Z\]$ & Le - signifie que tous les caractères entre ses bornes sont valides.  Cette classe représente un unique caractère alphabétique, minuscule ou majuscule.\\
        \midrule
            $\[a-gmn\]$ & Autre exemple d'union: cette classe \tabularnewline est constituée de tous les caractères compris entre a et g, du caractère m et du caractère n.\\
        \midrule
            $\[a-g\[A-G\]\]$ & On peut inclure des classes les unes dans les autres. Cette classe représente un unique caractère, compris entre a et g, en minuscule ou en majuscule. Elle est équivalente à \[a-gA-G\].\\
        \midrule
            $ \[a-g\&\&\[c-k\]\] $ & Le signe $\&\&$ représente l'intersection. On fait donc là l'intersection entre la classe \[a-g\] et la classe \[c-k\]. Il s'agit donc de la classe \[c-g\].\\
        \midrule
            $\[a-g\&\&\[^\wedge cd\]\]$ & Ici on réalise l'intersection entre la classe qui représente tous les caractères de a à g, et celle qui représente tous les caractères, sauf c et d. Il reste donc a, b, e, f et g, que l'on peut aussi écrire \[abefg\] ou \[abe-g\].\\
        \midrule
            $\[a-z\&\&\[^m-p\]\]$ & Autre exemple: \tabularnewline ici on réalise l'intersection de tous les caractères compris entre a et z, et de tous les caractères sauf ceux compris entre m et p. Il nous reste donc \[a-lq-z\].\\
        \bottomrule
 \end{tabular}][1]][1]

答案1

没有c{<width>}固定宽度的居中列的语法。

如果你的版本array是 2.4f (2017/11/07) 或更新版本,你可以使用以下列w{<alignment>}{<width>}类型

\begin{tabular}{|l|w{c}{4cm}|}

对于固定宽度的居中列(array当然,这需要包)。但是,如果单元格内容比指定的宽度宽,则会出现叠印。这就是 MWE 中的表格的情况。

我建议您自己定义一个合适的段落列:

\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

array当然,这也需要包。

\documentclass[12pt]{book}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}

\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}

\begin{tabular}{|l|C{4cm}|}
  \hline
    Classe de caractère & Siginification\\
  \hline
    [abc$^\wedge$] & Un unique caractère qui peut être a, b ou c \\
  \hline
    $[^abc]$ & Le $^\wedge$ exprime la négation: cette classe représente un
             unique caractère, qui peut prendre toutes les valeurs, sauf a,
             b et c \\
  \hline
\end{tabular}

\end{document}

在此处输入图片描述


如果我理解你的表格正确的话,我也建议不要使用数学模式,而是逐字逐句:

\documentclass[12pt]{book}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}

\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\newcommand\code[1]{\texttt{#1}}

\begin{document}

\begin{tabular}{|l|C{4cm}|}
  \hline
    Classe de caractère & Siginification\\
  \hline
    \verb+[abc^]+ & Un unique caractère qui peut être \code{a}, \code{b} et
                    \code{c} \\
  \hline
    \verb+[^abc]+ & Le \verb+^+ exprime la négation: cette classe représente un
                    unique caractère, qui peut prendre toutes les valeurs, sauf
                    \code{a}, \code{b} et \code{c} \\
  \hline
\end{tabular}

\end{document}

在此处输入图片描述

答案2

    \begin{tabular}{lp{4cm}}
    \toprule
    Classe de caractère & Siginification\\
    \midrule

    [abc$^\wedge$] & Un unique caractère qui peut être a, b ou c \\

    \midrule

    $[^abc]$ & Le $^\wedge$ exprime la négation : cette classe représente un unique caractère, \tabularnewline qui peut prendre toutes les valeurs, sauf a, b et c\\
    \bottomrule
\end{tabular} 

在此处输入图片描述

相关内容