1

I'm having the following error message

ABD: EveryShipout initializing macros geometry driver: auto-detecting geometry detected driver: pdftex No file main.bbl.

! LaTeX Error: Illegal character in array arg.

See the LaTeX manual or LaTeX Companion for explanation. Type H for immediate help. ...

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}

Based on what muzimuzhi and David Carlisle wrote, new code is

\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}

New error message is:

ABD: EveryShipout initializing macros geometry driver: auto-detecting geometry detected driver: pdftex No file main.bbl.

! Package array Error: Illegal pream-token (w): `c' used.

See the array package documentation for explanation. Type H for immediate help. ...
l.18 \begin{tabular}{|l|wc{4cm}|}

After Js bibra answer, I'm having the following code and the rendering as showed on the picture below:

    [![\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]
5
  • 1
    There is no c{3cm} syntax. Load array package and use m{3cm} instead. May 14, 2020 at 12:56
  • 3
    if your array package is not too old, wc{3cm} May 14, 2020 at 13:02
  • @muzimuzhiZ cProg wants the column centred but m{3cm} will make justified paragraphs. May 14, 2020 at 13:03
  • @DavidCarlisle I see. Thanks to point out. May 14, 2020 at 13:09
  • @cProg would u like to accept and/or upvote the answer
    – js bibra
    May 15, 2020 at 6:52

2 Answers 2

2

There is no syntax c{<width>} for a centered column of fixed width.

If your version the array package is 2.4f (2017/11/07) or newer you can use the column type w{<alignment>}{<width>} that is

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

for a centered column of fixed width (this needs the array package, of course). However, this overprints if the cell contents is wider than the width specified. And this would be the case for the table in your MWE.

I suggest to instead define a suitable paragraph column yourself:

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

This need the array package, too, of course.

\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}

enter image description here


If I understand you table correctly I also like to suggest not using mathmode but verbatim:

\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}

enter image description here

1
    \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} 

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .