7

I have some problems with tabularx, please see the picture.

1: Why is there a space in the second row of the of the first column but not in the third row?

2 and 3: Why are there some gaps on the edges?

4: Why is there a space?

problems

This is my code:

\documentclass[a4paper,10pt, hidelinks]{article}
\usepackage{amssymb} 
\usepackage{amsmath} 
\usepackage[utf8]{inputenc} 
\usepackage[ngerman]{babel} 
\usepackage[T1]{fontenc}    
\usepackage[margin=1.5cm]{geometry} 
\usepackage{tabularx}

\usepackage{hyperref}
\def\thesection{\Alph{section}}

\title{Befragung}
\date{}
\setcounter{tocdepth}{1}

\begin{document}


\begin{Form}[action={mailto:haha@haha.haha?subject=Daten&body=Hi, meine Daten sind im Anhang.}]

\textbf{Inwieweit stimmen folgende Aussagen zu?} \\

\small{

  \begin{tabularx}{0.95\textwidth}{|X|X|X|X|}
  \hline \\
  & \textbf{Im Jahr 2016} & \textbf{Im Jahr 2017} & \textbf{Im Jahr 2018} \\
  \hline \\
    \textbf{Hier soll einfach nur ein Statement stehen und nichts weiter.} & %%
    \begin{itemize}
  \item Stimme voll zu
  \item Stimme eher zu
  \item Teils, teils
  \item Stimme eher nicht zu
  \item Stimme nicht zu
  \item Keine Angabe
  \end{itemize} & %%
    \begin{itemize}
  \item Stimme voll zu
  \item Stimme eher zu
  \item Teils, teils
  \item Stimme eher nicht zu
  \item Stimme nicht zu
  \item Keine Angabe
  \end{itemize} & %%
    \begin{itemize}
  \item Stimme voll zu
  \item Stimme eher zu
  \item Teils, teils
  \item Stimme eher nicht zu
  \item Stimme nicht zu
  \item Keine Angabe
  \end{itemize} \\
  \hline
    \textbf{Auch hier steht absolut nichts, was irgendwie interessant ist.} & %%
    \begin{itemize}
  \item Stimme voll zu
  \item Stimme eher zu
  \item Teils, teils
  \item Stimme eher nicht zu
  \item Stimme nicht zu
  \item Keine Angabe
  \end{itemize} & %%
    \begin{itemize}
  \item Stimme voll zu
  \item Stimme eher zu
  \item Teils, teils
  \item Stimme eher nicht zu
  \item Stimme nicht zu
  \item Keine Angabe
  \end{itemize} & %%
    \begin{itemize}
  \item Stimme voll zu
  \item Stimme eher zu
  \item Teils, teils
  \item Stimme eher nicht zu
  \item Stimme nicht zu
  \item Keine Angabe
  \end{itemize} \\
  \hline

  \end{tabularx} \\

}

\Reset{Alle Eingaben löschen} \\

\Submit[export=PDF]{Abschicken}

\end{Form}

\end{document}
  • Thank you for posting a working example! At the same time, much of your code does not seem to be relevant to the question you're asking here. Please limit the example to only the code required for your issue to appear. You can have a look at this guide for how to prune your code for this purpose. – Reinstate Monica - M. Schröder May 11 '19 at 14:40
11
  • newer add \\ after \hline
  • in second row you not used \hline after \hline, consequently the content in the first cell in this row is correctly placed
  • before and after itemize are always added vertical space \topsep and partopsep. the package enumitem offer simple possibilities to remove them (see mwe below)

see, if the following solution gives what you after:

\documentclass[a4paper,10pt, hidelinks]{article}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[margin=1.5cm]{geometry}
\usepackage{makecell,           % <---
            tabularx}           
\setcellgapes{3pt}              % <---
\usepackage{enumitem}           % <---

\usepackage{hyperref}
\def\thesection{\Alph{section}}

\title{Befragung}
\date{}
\setcounter{tocdepth}{1}

\begin{document}
    \begin{Form}[action={mailto:haha@haha.haha?subject=Daten&body=Hi, meine Daten sind im Anhang.}]
\textbf{Inwieweit stimmen folgende Aussagen zu?} \\

{\small
 \setlist[itemize]{nosep,     % <-- list setup, adopted for use in table
                   leftmargin = *,
                   before     = \vspace{-0.6\baselineskip},
                   after      = \vspace{-\baselineskip}
                        }
 \makegapedcells               % <---
    \begin{tabularx}{0.95\textwidth}{|X|X|X|X|}
    \hline
    & \textbf{Im Jahr 2016} & \textbf{Im Jahr 2017} & \textbf{Im Jahr 2018} \\
    \hline
\textbf{Hier soll einfach nur ein Statement stehen und nichts weiter.} & %%
\begin{itemize}
    \item Stimme voll zu
    \item Stimme eher zu
    \item Teils, teils
    \item Stimme eher nicht zu
    \item Stimme nicht zu
    \item Keine Angabe
\end{itemize}
    &  \begin{itemize}
            \item Stimme voll zu
            \item Stimme eher zu
            \item Teils, teils
            \item Stimme eher nicht zu
            \item Stimme nicht zu
            \item Keine Angabe
        \end{itemize}
        &   \begin{itemize}
                \item Stimme voll zu
                \item Stimme eher zu
                \item Teils, teils
                \item Stimme eher nicht zu
                \item Stimme nicht zu
                \item Keine Angabe
            \end{itemize} \\
    \hline
\textbf{Auch hier steht absolut nichts, was irgendwie interessant ist.}
    &   \begin{itemize}
            \item Stimme voll zu
            \item Stimme eher zu
            \item Teils, teils
            \item Stimme eher nicht zu
            \item Stimme nicht zu
            \item Keine Angabe
        \end{itemize}
        &   \begin{itemize}
                \item Stimme voll zu
                \item Stimme eher zu
                \item Teils, teils
                \item Stimme eher nicht zu
                \item Stimme nicht zu
                \item Keine Angabe
            \end{itemize}
            &   \begin{itemize}
                    \item Stimme voll zu
                    \item Stimme eher zu
                    \item Teils, teils
                    \item Stimme eher nicht zu
                    \item Stimme nicht zu
                    \item Keine Angabe
                \end{itemize}   \\
  \hline
  \end{tabularx}    \\
}

\Reset{Alle Eingaben löschen} \\

\Submit[export=PDF]{Abschicken}
\end{Form}
\end{document}

note: changes in above code in comparison to your document example are indicated with % <---. for lists is used the enumitem package, for more vertical space around cells contents is used \makegapedcells macro from the makecell package.

enter image description here

|improve this answer|||||
  • Thank you, that was a stupid mistake with `\hline \` ... The other stuff is really good to know! – TobiSonne May 9 '19 at 11:24
6

Your problems come from adding \\ after \hline. Here is a correct code and some improvements with enumitem. Note that \small is not a command with an argument, but a switch.

\documentclass[a4paper,10pt, hidelinks]{article}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[margin=1.5cm]{geometry}
\usepackage{tabularx}
\usepackage{enumitem}
\usepackage{hyperref}
\def\thesection{\Alph{section}}

\title{Befragung}
\date{}
\setcounter{tocdepth}{1}
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother

\begin{document}

\begin{Form}[action={mailto:haha@haha.haha?subject=Daten&body=Hi, meine Daten sind im Anhang.}]

\textbf{Inwieweit stimmen folgende Aussagen zu?} \\

{\setlist[itemize]{wide=0pt, leftmargin=*, after = \vspace*{-\dimexpr\topsep + \partopsep}}
\setlength{\extrarowheight}{3pt}
\small
  \begin{tabularx}{0.95\textwidth}{|*{4}{>{\compress\arraybackslash}X|}}
  \hline
  & \textbf{Im Jahr 2016} & \textbf{Im Jahr 2017} & \textbf{Im Jahr 2018} \\
  \hline
    \textbf{Hier soll einfach nur ein Statement stehen und nichts weiter.} & %%
    \begin{itemize}
  \item Stimme voll zu
  \item Stimme eher zu
  \item Teils, teils
  \item Stimme eher nicht zu
  \item Stimme nicht zu
  \item Keine Angabe
  \end{itemize} & %%
    \begin{itemize}
  \item Stimme voll zu
  \item Stimme eher zu
  \item Teils, teils
  \item Stimme eher nicht zu
  \item Stimme nicht zu
  \item Keine Angabe
  \end{itemize} & %%
    \begin{itemize}
  \item Stimme voll zu
  \item Stimme eher zu
  \item Teils, teils
  \item Stimme eher nicht zu
  \item Stimme nicht zu
  \item Keine Angabe
  \end{itemize} \\
  \hline
    \textbf{Auch hier steht absolut nichts, was irgendwie interessant ist.} & %%
    \begin{itemize}
  \item Stimme voll zu
  \item Stimme eher zu
  \item Teils, teils
  \item Stimme eher nicht zu
  \item Stimme nicht zu
  \item Keine Angabe
  \end{itemize} & %%
    \begin{itemize}
  \item Stimme voll zu
  \item Stimme eher zu
  \item Teils, teils
  \item Stimme eher nicht zu
  \item Stimme nicht zu
  \item Keine Angabe
  \end{itemize} & %%
    \begin{itemize}
  \item Stimme voll zu
  \item Stimme eher zu
  \item Teils, teils
  \item Stimme eher nicht zu
  \item Stimme nicht zu
  \item Keine Angabe
  \end{itemize} \\
  \hline

  \end{tabularx} \\

}

\Reset{Alle Eingaben löschen} \\

\Submit[export=PDF]{Abschicken}

\end{Form}

\end{document} 

enter image description here

|improve this answer|||||
2

Use

\usepackage{enumitem}
\setlist{nosep}

and

{\small 
\begin{tabularx}{0.95\textwidth}{|X|X|X|X|}\hline
    & \textbf{Im Jahr 2016} & \textbf{Im Jahr 2017} & \textbf{Im Jahr 2018}\\\hline
\textbf{Hier soll einfach nur ein Statement stehen und nichts weiter.} & %%
.... 

\small is a switch and has no argument: {\small ...} and not \small{}

|improve this answer|||||

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.