How to delete borders (rules) in a table defined with the cals package?
Because the macro \cals@cs@width
has the character @
in its name, you need to enclose the part where you use it with \makeatletter
and \makeatother
. (→ What do \makeatletter and \makeatother do?)
\makeatletter
\def\cals@cs@width{0pt}%
\makeatother
If you use this in the preamble (after loading the cals
package) of your document, you won’t need to repeat it every time.
If you want to decide for every table whether you want vertical rules (I’d advise against it), you are better off using an @
-less macro that you also define in the preamble of your document.
\makeatletter
\newcommand*{\calsNoVertRules}{%
\renewcommand*{\cals@cs@width}{0pt}%
}
\makeatother
Now you can simply use \calsNoVertRules
to switch vertical rules off.
\documentclass{report}
\listfiles
%tables in CALS markup
\usepackage{cals}
%calculate with \textwidth etc.
\usepackage{calc}
\newlength{\lengthw}
%my suggestion
\makeatletter
\begin{document}
\setlength{\lengthw}{\textwidth-5cm}
\begin{table}[ht]
\caption{Aantal uitgangen}
\begin{calstable}
\colwidths{{\lengthw}{5cm}}
%\def\cals@cs@width{0pt} %this should delete column borders but is does not!
\thead{
%my suggestion
%\def\cals@borderT{0.4pt} %borderTop
%\def\cals@borderB{0.4pt} %borderBottom
%\def\cals@borderL{0pt} %borderLeft
\def\cals@borderR{0pt} %borderRight
\brow
\alignL\cell{} \alignC\cell{\vfil Aantal uitgangen}\erow
}
\brow
\alignL\cell{\vfil$aantal\ gebruikers < 50$}
\alignC\cell{\vfil 1 of 2 uitgangen (cfr. 7.1.2)}
\erow
\brow
\alignL\cell{\vfil$50 \leq aantal\ gebruikers < 500$}
\alignC\cell{\vfil 2}
\erow
\brow
\alignL\cell{\vfil$500 \leq aantal\ gebruikers < 1000$}
\alignC\cell{\vfil 3}
\erow
\brow
\alignL\cell{\vfil $1000 \times n \leq aantal\ gebruikers < 1000 \times (n+1)$
\\met $n = 1, 2, 3, \dots$}
\alignC\cell{\vfil$n+3$}
\erow
\end{calstable}
\end{table}
\end{document}