3

Is there a way to put \\ after multicolumn automatically, each time it appears in the code? Pseudocode would look like this:

\newcommand{\commandThatAddsBreaklines}
if(thereIsAMulticolumn == true)
    add '\\' after \multicolumn{}{}{a very long text that doesn´t even fit in my table}

I would like to know if it is even possible to do something like this, maybe someone has a idea. My code looks like this:

\documentclass[a4paper,12pt,oneside]{scrbook}
\usepackage[dutch]{babel}  %Quotes won't work without babel
\usepackage[utf8]{inputenc}   %This is very important!
\usepackage[T1]{fontenc}

\usepackage{graphicx}
\usepackage[pdfborder={0 0 0}, breaklinks=true, pdftex=true, raiselinks=true]{hyperref}
\usepackage{tabularx}
\newcolumntype{Y}{>{\raggedright}X}

\begin{document}
\section{Description}
\begin{tabularx}{\linewidth}{YY}\hline
\multicolumn{2}{c}{a very very very long text that doesn´t even fit in my table, so it must be a way to make the table automatically break the line}\\
\end{tabularx}
\end{document}

I am also looking for a way to fit the column into my table. It would be nice if someone could provide me some help with it, thanks in advance.

4
  • What's the advantage with respect to adding the \\ manually?
    – egreg
    Nov 22, 2012 at 14:33
  • I need to edit the .tex file from .sty and since the .tex file is generated automatically, and doesn´t have any \\ it is usefull to add some to avoid errors
    – dima
    Nov 22, 2012 at 14:42
  • I don't understand. If the automatic file generation doesn't add it, then it's the generation to be wrong. Is the code a sample of a generated file?
    – egreg
    Nov 22, 2012 at 14:57
  • The code sample is from the generated file except for the line \multicolumn{2}{c}{text}\\, in the autogenerated file the command looks like this: \multicolumn{}{}{text}, and in this case it does´t compiles. The generating of the file is done by Wiki2LaTeX extension of the MediaWiki.
    – dima
    Nov 22, 2012 at 15:08

1 Answer 1

4

enter image description here

\documentclass[a4paper,12pt,oneside]{scrbook}
\usepackage[dutch]{babel}  %Quotes won't work without babel
%\usepackage[utf8]{inputenc}   %This is very important!
\usepackage[T1]{fontenc}


\usepackage{graphicx}
\usepackage[pdfborder={0 0 0}, breaklinks=true, pdftex=true, raiselinks=true]{hyperref}
\usepackage{tabularx}
\newcolumntype{Y}{>{\raggedright\arraybackslash}X}

\let\oldmc\multicolumn
\def\multicolumn#1#2#3{%
\oldmc{#1}{>{\hsize=\dimexpr#1\hsize+#1\tabcolsep+#1\tabcolsep-2\tabcolsep\relax\centering}X}{#3}\tabularnewline}

\begin{document}
\section{Description}

\noindent
\begin{tabularx}{\linewidth}{YY}\hline
\multicolumn{2}{c}{a very very very long text that doesn´t even fit in my table, so it must be a way to make the table automatically break the line}
\end{tabularx}
\end{document}
5
  • I only have one more question, what does this greater than symbol do in this line: \oldmc{#1}{>{\hsize=\dimexpr#1\hsize+#1\tabcolsep+#1\tabcolsep-2\tabcolsep\relax\centering}X}{#3}\tabularnewline}?
    – dima
    Nov 23, 2012 at 6:52
  • It's just array package column specifier the same as you used in your definition of Y to push those statements in to the start of the cell. Nov 23, 2012 at 9:18
  • The line with \newcolumntype was generated from a parser, so I wanted to know what this > means. Now i understand, thanks a lot.
    – dima
    Nov 23, 2012 at 10:14
  • Oh in that case you should report a bug in the generator, you'll note that I changed it to add \arraybackslash as it was it will work in all columns but the last, if use the definition og Y in your example in the last column (as you have done) then \` will mean new line in raggedright` not end of table row so you would have to end table rows with \tabularnewline rather than \\ \arraybackslash resores the meaning of \\ to its array/tabular end of line meaning. Nov 23, 2012 at 10:19
  • Good to know that, I am learning more and more...
    – dima
    Nov 23, 2012 at 10:38

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.