2

I'm using a program to generate LaTeX code utilize the tabular package. It creates an error that reads

! Missing number, treated as zero.
<to be read again> 
                   ##
l.17 \begin{tabularx} {#}
                          {@{} l Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y@{}} \\
?

The code I'm using is as follows:

\documentclass[11pt, oneside]{article} 
\usepackage{booktabs}
\usepackage{tabularx}

\title{Brief Article}
\author{The Author}

\begin{document}
\maketitle
%\section{}
%\subsection{}
\begin{center}
\footnotesize
\newcolumntype{Y}{>{\raggedleft\arraybackslash}X}

\begin{tabularx} {#} {@{} l Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y@{}} \\
\toprule
 & \multicolumn{2}{c}{\textbf{surveyseason}} \\
\cmidrule(l{.75em}){2-3} 
&\textbf{1}&\textbf{} \\
&Col \%&Col \% \\
\midrule
\textbf{sex}&& \\
female&45.3&47.2 \\
male&54.5&56.8 \\
\midrule
\textbf{grade}&& \\
9th&29&23 \\
10th&26&25 \\
11th&12.8&2.5 \\
12th&2.8&21.3 \\
\midrule
\textbf{ethbest}&& \\
american indian or alaska native&3.9&3.9 \\
native hawaiian or pacific islander&1.6&1.6 \\
asian american&9.8&9.8 \\
white or caucasian&60.4&60.4 \\
other&8.8&8.8 \\
\midrule
\textbf{highsch}&& \\
san dieguito&17.6&17.6 \\
torrey pines&33.5&33.5 \\
lacosta canyon&29.0&29.0 \\
canyon crest&19.8&19.8 \\
\bottomrule
\addlinespace[.75ex]
\end{tabularx}
\par
\scriptsize{\emph{Source: }test.dta}
\normalsize
\end{center}


\end{document}  
4

The first argument of the tabularx environment should be the width that the tabularx should span. In your case, you passed it a length #, which is incorrect. Instead, pass it something like \linewidth:

\noindent
\begin{tabularx}{\linewidth}{...}
  ...
\end{tabularx}

The usage/notation is mentioned in the tabularx documentation:

\begin{tabularx}{<width>}{<preamble>}

Since this is program-generated output, you'll either have to update the measurement manually (in the TeX output), or from the program of course.

Other manual improvements could include

  • using the *{<num>}{<colspec>} notation for repeating a column specification <col spec> a total of <num> times. So

    \begin{tabularx}{\linewidth}{@{} l Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y@{}}
    

    will change into

    \begin{tabularx}{\linewidth}{@{} l *{16}{Y} @{}}
    

    It is somewhat strange that you're listing a large number of columns in your tabularx column specification, yet you're only using three ever.

  • Not using \\ as the first line of your tabularx.

Note the use of \noindent to avoid an overfull \hbox warning.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.