4

this question is about a (to me) mysterious little indent (looks like an ordinary blank...) after a custom-environment using the tabu-environment.

Please compile this MWE:

\documentclass[a4paper, 11pt]{scrbook}
\usepackage{blindtext}
\usepackage[cm]{fullpage}

\usepackage{tabu, booktabs}

\newenvironment{texttab}[1]{
            \par\centering
            \begin{tabu} to 0.9\textwidth {#1} \toprule \rowfont{\bfseries}}
            {\end{tabu}\par\noindent}

\begin{document}
\section{TEST}
\blindtext
%
\begin{texttab}{X[l,2] X[l,2] X[l,3]}
Test1   &   Test2   &   Test3   \\ \midrule
Test1   &   Test2   &   Test3   \\
Test1   &   Test2   &   Test3   \\ \bottomrule
\end{texttab}
%
HERE HAPPENS INDENT\blindtext
\end{document}

Following the answers from similar questions I put % into the blank lines and \noindent works fine here. However, there is this little blank-like indentation of the paragraph after the table.

I figured out that I can make it disappear when adding a % after the \end part in the text, so:

<table content> \\ \bottomrule
\end{texttab}% (!)
%
NOINDENT THIS TIME...

Please explain; how is this? Can I somehow include the solution into the definition of the environment or is it necessary to put that % everytime I use this environment?

2 Answers 2

5

The reason that the newline after the environment acts as a space is because you have used \noindent which is prematurely putting TeX in horizontal mode so as always in that mode ends of lines produce word spaces.

You can counteract that by going

            {\end{tabu}\par\noindent\ignorespacesafterend}

But this is really the wrong way to do things, having \noindent there means that you can not have a blank line after the environment or you get a spurious white paragraph. Note you needed % before HERE

All LaTeX display environments handle suppressing indentation, just use

\documentclass[a4paper, 11pt]{scrbook}
\usepackage{blindtext}
\usepackage[cm]{fullpage}

\usepackage{tabu, booktabs}

\newenvironment{texttab}[1]{
            \begin{center}%
            \begin{tabu} to 0.9\textwidth {#1} \toprule \rowfont{\bfseries}}
            {\end{tabu}\end{center}}

\begin{document}
\section{TEST}
\blindtext
%
\begin{texttab}{X[l,2] X[l,2] X[l,3]}
Test1   &   Test2   &   Test3   \\ \midrule
Test1   &   Test2   &   Test3   \\
Test1   &   Test2   &   Test3   \\ \bottomrule
\end{texttab}
%
HERE HAPPENS INDENT\blindtext
\end{document}

Then you will get no indentation for HERE if there is no blank line before it, but if you do have a blank line because in some cases you want to start a paragraph there, you will get indentation.

4
  • Hmm, I already had a solution using center-environment, however, when I use longtabu there comes this problem with spacing which I tried to avoid by using \centering. It seems I have to use center or place that ominous %, which is, as you say, not a "nice way"...?
    – LCsa
    Aug 16, 2013 at 11:14
  • @LCsa You can use a list environment with the vertical spacing sent to 0 rather than the default center environment (ie set \parsep, \partopsep to 0pt) Aug 16, 2013 at 11:30
  • I don't understand... Why a list-environment?
    – LCsa
    Aug 16, 2013 at 18:58
  • the list environment is mis-named, it is not (just) for making lists it is the generic latex display environment base, in particular for handling this indentation issue, center, flushright, verbatim, tabbing are all (triv)list environments see tex.stackexchange.com/questions/5661/… and tex.stackexchange.com/questions/89633/… Aug 16, 2013 at 20:29
3

Somewhere inside tabu there is a sporadic space or a missing \ignorespaces or \ignorespacesafterend

Adding \ignorespaces right after \end{texttab} seems to work

3
  • Well, this has the same effect as the %... Any idea about a solution to embed in the definition of the environment (preamble)? I tried to place \noindent at various places there - to no avail.
    – LCsa
    Aug 16, 2013 at 8:51
  • No idea, \noindent will never work as it is not indentation that is the problem.
    – daleif
    Aug 16, 2013 at 9:15
  • It is the \noindent that is causing the space to appear:-) Aug 16, 2013 at 9:25

You must log in to answer this question.

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