1

I want to create a Table with all Rows with the same height, indepent how lines of text they actually have. If the largest amount for a row/cell is three lines, all row should have the height if the had three lines. In the real project all latex files/textcontent is created with a script dynamiclly, manual adjustments for indivual lines is no solution.

I tried different solutions, i found on stackexchange with my example table below, but none of them work completely.

The code below is a stripped down example with the basic layout i want to achieve

\documentclass{article}
\usepackage[useui]{eforms}
\usepackage{hyperref}
\usepackage{tabularx}
\usepackage{pgf}
\usepackage{ifthen}

\everyTextField{\textSize{9}\W{0}}

% Helper function
% Aligment, Name, Textsize, Width, Value
\newcommand{\TextInputSize}[5][\empty]{%
    \pgfmathsetmacro{\FieldHeight}{1.167*#3-0.19}%
    \ifthenelse{\equal{#1}{\empty}}{%
        \textField[\ui{border=invisible,textsize={#3},value={#5}}]{#2}{#4}{\FieldHeight pt}%
    }{%
        \textField[\ui{align={#1},border=invisible,textsize={#3},value={#5}}]{#2}{#4}{\FieldHeight pt}%
    }%
}

% Helper function
% Aligment, Name, Textsize, Width, Value
\newcommand{\TextInputSizeTwoLine}[5][\empty]{%
    \pgfmathsetmacro{\FieldHeight}{(1.167*#3-0.19)*2}%
    \ifthenelse{\equal{#1}{\empty}}{%
        \textField[\ui{autocenter=no,border=invisible,fieldflags={multiline,noscrolling},textsize={#3},value={#5}}]{#2}{#4}{\FieldHeight pt}%
    }{%
        \textField[\ui{autocenter=no,align={#1},border=invisible,fieldflags={multiline,noscrolling},textsize={#3},value={#5}}]{#2}{#4}{\FieldHeight pt}%
    }%
}

% creates a multiline Textfield
% TextSize, Name, Value
\newcommand{\CellTextFieldTwoLine}[3][11]{%
    \pgfmathsetmacro{\FieldHeightOffset}{-0.21*#1+0.08}%
    \raisebox{\FieldHeightOffset pt}{\TextInputSizeTwoLine[centered]{#2}{#1}{\linewidth-2pt}{#3}}%
}

% creates a multiline Textfield with ohter text style
% Textsize, Name, Value
\newcommand{\CellTextFieldTitleTwoLines}[3][0]{%
    \pgfmathsetmacro{\FieldHeight}{(1.130*#1-0.37)*2}%
    \pgfmathsetmacro{\FieldHeightOffset}{-0.21*#1+0.08}%
    \hspace*{-2pt}\raisebox{\FieldHeightOffset pt}{\textField[\ui{autocenter=no,border=invisible,fieldflags={multiline,noscrolling},textfont={CaslonAntique-Bold},textsize={#1},value={#3}}]{#2}{\linewidth-2pt}{\FieldHeight pt}}%
}

% creates a normal Textfield
% TextSize, Name, Width, Value
\newcommand{\CellTextFieldLeftAlign}[4][11]{%
    \pgfmathsetmacro{\FieldHeightOffset}{-0.21*#1+0.08}%
    \raisebox{\FieldHeightOffset pt}{\TextInputSize{#2}{#1}{#3}{#4}}%
}

\begin{document}
\tiny\normalfont\bfseries

\begin{tabularx}{\columnwidth}{p{0.3cm}|p{2.8cm}X}
    \multicolumn{3}{l}{\Large Allgemeine Sonderfertigkeiten} 
    \tabularnewline\hline%
    \CheckBox[name=Kulturkunde2,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {\footnotesize Kulturkunde}&
    {Gesellschaftliche Interaktionen sind ohne zur Situation passenden Kulturkunde erschwert}%
    \tabularnewline%
    & \multicolumn{2}{l}{\CellTextFieldLeftAlign{Kulturkunde2}{\linewidth-0.4cm}{}}%
    \tabularnewline%
    \hline%
    \CheckBox[name=Ortskenntnis,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {\footnotesize Ortskenntnis}&
    {Ortsbezogene Proben-7 im gewählten Gebiet}%
    \tabularnewline%
    & \multicolumn{2}{l}{\CellTextFieldLeftAlign{Ortskenntnis}{\linewidth-0.4cm}{}}%
    \tabularnewline%
    \hline%
    \CheckBox[name=AkklimatisierungHitze,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {\footnotesize Akklimatisierung (Hitze)}&
    {erleidet durch außergewöhnliche Umgebungswärme keinen Schaden}%
    \tabularnewline%
    \hline%
    \CheckBox[name=AkklimatisierungKälte,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {\footnotesize Akklimatisierung (Kälte)}&
    {erleidet durch außergewöhnliche Umgebungskälte keinen Schaden}%
    \tabularnewline%
    \hline%
    \CheckBox[name=Berufsgeheimnis,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {\footnotesize Berufsgeheimnis}&
    {kennt ein Geheimnis der Handwerkskunst, ermöglicht Verwendung besonderer Herstellungsverfahren oder spezieller Materialien}%
    \tabularnewline%
    & \multicolumn{2}{l}{\CellTextFieldLeftAlign{Berufsgeheimnis}{\linewidth-0.4cm}{}}%
    \tabularnewline%
    \hline%
    \CheckBox[name=Fälscher,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {\footnotesize Fälscher} &
    {ermöglicht das effektive Fälschen von Schriftstücken und Kunstwerken}%
    \tabularnewline%
    \hline%
    \CheckBox[name=MeisterderImprovisation,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {\footnotesize Meister der Improvisation}&
    {kann fehlendes Werkzeug durch Hilfsmittel kompensieren. Erschwernisse beim Ableiten von einen Handwerksstalent werden halbiert}%
    \tabularnewline%
    \hline%
    \CheckBox[name=NandusgefälligesWissen,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {\footnotesize Nandusgefälliges Wissen}&
    {ermöglicht Wissen aus verwandten Gebieten zu kombinieren; Erschwernisse beim Ableiten von einen Wissenstalent werden halbiert}%
    \tabularnewline%
    \hline%
    \CheckBox[name=Geländekunde,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {\footnotesize Geländekunde}&
    {Proben, die sich auf den Umgang mit diesem Gelände beziehen, sind um 3 Punkte erleichtert}%
    \tabularnewline%
    & \multicolumn{2}{p{\linewidth-0.3cm}}{
        {Dschungel \CheckBox[name=Dschungel,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Eis \CheckBox[name=Eis,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Gebirge \CheckBox[name=Gebirge,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Höhle \CheckBox[name=Höhle,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Maraskan \CheckBox[name=Maraskan,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Meer \CheckBox[name=Meer,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Steppen \CheckBox[name=Steppen,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Sumpf \CheckBox[name=Sumpf,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Wald \CheckBox[name=Wald,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Wüste \CheckBox[name=Wüste,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
    }%
    \tabularnewline%
    \hline%
    \CheckBox[name=CheckLeer,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    \CellTextFieldTitleTwoLines[9]{NameLeer}{Leer}&
    \CellTextFieldTwoLine[7]{WirkungLeer}{Leer}%
    \tabularnewline%
    \hline%
\end{tabularx}
\end{document}

Current Output: Current Output

6
1

I didn't try to make it perfect. But some remarks: Don't set the outside font size to \tiny, this will give quite bad spacing inside the tabular. Always use the larger font size.

Some of your "rows" actually consist of two rows. You will have to add this second row everywhere if you want a uniform look.

\documentclass{article}
\usepackage[useui]{eforms}
\usepackage{hyperref}
\usepackage{tabularx}
\usepackage{pgf}
\usepackage{ifthen}

\everyTextField{\textSize{9}\W{0}}

% Helper function
% Aligment, Name, Textsize, Width, Value
\newcommand{\TextInputSize}[5][\empty]{%
    \pgfmathsetmacro{\FieldHeight}{1.167*#3-0.19}%
    \ifthenelse{\equal{#1}{\empty}}{%
        \textField[\ui{border=invisible,textsize={#3},value={#5}}]{#2}{#4}{\FieldHeight pt}%
    }{%
        \textField[\ui{align={#1},border=invisible,textsize={#3},value={#5}}]{#2}{#4}{\FieldHeight pt}%
    }%
}

% Helper function
% Aligment, Name, Textsize, Width, Value
\newcommand{\TextInputSizeTwoLine}[5][\empty]{%
    \pgfmathsetmacro{\FieldHeight}{(1.167*#3-0.19)*2}%
    \ifthenelse{\equal{#1}{\empty}}{%
        \textField[\ui{autocenter=no,border=invisible,fieldflags={multiline,noscrolling},textsize={#3},value={#5}}]{#2}{#4}{\FieldHeight pt}%
    }{%
        \textField[\ui{autocenter=no,align={#1},border=invisible,fieldflags={multiline,noscrolling},textsize={#3},value={#5}}]{#2}{#4}{\FieldHeight pt}%
    }%
}

% creates a multiline Textfield
% TextSize, Name, Value
\newcommand{\CellTextFieldTwoLine}[3][11]{%
    \pgfmathsetmacro{\FieldHeightOffset}{-0.21*#1+0.08}%
    \raisebox{\FieldHeightOffset pt}{\TextInputSizeTwoLine[centered]{#2}{#1}{\linewidth-2pt}{#3}}%
}

% creates a multiline Textfield with ohter text style
% Textsize, Name, Value
\newcommand{\CellTextFieldTitleTwoLines}[3][0]{%
    \pgfmathsetmacro{\FieldHeight}{(1.130*#1-0.37)*2}%
    \pgfmathsetmacro{\FieldHeightOffset}{-0.21*#1+0.08}%
    \hspace*{-2pt}\raisebox{\FieldHeightOffset pt}{\textField[\ui{autocenter=no,border=invisible,fieldflags={multiline,noscrolling},textfont={CaslonAntique-Bold},textsize={#1},value={#3}}]{#2}{\linewidth-2pt}{\FieldHeight pt}}%
}

% creates a normal Textfield
% TextSize, Name, Width, Value
\newcommand{\CellTextFieldLeftAlign}[4][11]{%
    \pgfmathsetmacro{\FieldHeightOffset}{-0.21*#1+0.08}%
    \raisebox{\FieldHeightOffset pt}{\TextInputSize{#2}{#1}{#3}{#4}}%
}

\begin{document}
\footnotesize\normalfont\bfseries \extrarowheight3pt

\begin{tabularx}{\columnwidth}{p{0.3cm}<{\mbox{}\newline\mbox{}}|p{2.8cm}>{\tiny}X}
    \multicolumn{3}{l}{\Large Allgemeine Sonderfertigkeiten}
    \tabularnewline\hline%
    \CheckBox[name=Kulturkunde2,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {Kulturkunde}&
    {Gesellschaftliche Interaktionen sind ohne zur Situation passenden Kulturkunde erschwert}%
    \tabularnewline%
    & \multicolumn{2}{l}{\CellTextFieldLeftAlign{Kulturkunde2}{\linewidth-0.4cm}{}}%
    \tabularnewline%
    \hline%
    \CheckBox[name=Ortskenntnis,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {Ortskenntnis}&
    {Ortsbezogene Proben-7 im gewählten Gebiet}%
    \tabularnewline%
    & \multicolumn{2}{l}{\CellTextFieldLeftAlign{Ortskenntnis}{\linewidth-0.4cm}{}}%
    \tabularnewline%
    \hline%
    \CheckBox[name=AkklimatisierungHitze,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {Akklimatisierung (Hitze)}&
    {erleidet durch außergewöhnliche Umgebungswärme keinen Schaden}%
    \tabularnewline
    \tabularnewline%
    \hline%
    \CheckBox[name=AkklimatisierungKälte,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {Akklimatisierung (Kälte)}&
    {erleidet durch außergewöhnliche Umgebungskälte keinen Schaden}%
    \tabularnewline
    \tabularnewline%
    \hline%
    \CheckBox[name=Berufsgeheimnis,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {Berufsgeheimnis}&
    {kennt ein Geheimnis der Handwerkskunst, ermöglicht Verwendung besonderer Herstellungsverfahren oder spezieller Materialien}%
    \tabularnewline%
    & \multicolumn{2}{l}{\CellTextFieldLeftAlign{Berufsgeheimnis}{\linewidth-0.4cm}{}}%
    \tabularnewline%
    \hline%
    \CheckBox[name=Fälscher,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {Fälscher} &
    {ermöglicht das effektive Fälschen von Schriftstücken und Kunstwerken}%
    \tabularnewline
    \tabularnewline%
    \hline%
    \CheckBox[name=MeisterderImprovisation,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {Meister der Improvisation}&
    {kann fehlendes Werkzeug durch Hilfsmittel kompensieren. Erschwernisse beim Ableiten von einen Handwerksstalent werden halbiert}%
    \tabularnewline
    \tabularnewline%
    \hline%
    \CheckBox[name=NandusgefälligesWissen,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {Nandusgefälliges Wissen}&
    {ermöglicht Wissen aus verwandten Gebieten zu kombinieren; Erschwernisse beim Ableiten von einen Wissenstalent werden halbiert}%
    \tabularnewline
    \tabularnewline%
    \hline%
    \CheckBox[name=Geländekunde,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    {Geländekunde}&
    {Proben, die sich auf den Umgang mit diesem Gelände beziehen, sind um 3 Punkte erleichtert}%
    \tabularnewline%
    & \multicolumn{2}{p{\linewidth-0.3cm}}{\raggedright
        {Dschungel \CheckBox[name=Dschungel,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Eis \CheckBox[name=Eis,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Gebirge \CheckBox[name=Gebirge,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Höhle \CheckBox[name=Höhle,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Maraskan \CheckBox[name=Maraskan,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Meer \CheckBox[name=Meer,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Steppen \CheckBox[name=Steppen,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Sumpf \CheckBox[name=Sumpf,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Wald \CheckBox[name=Wald,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
        {Wüste \CheckBox[name=Wüste,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{} \hskip 1em}%
    }%
    \tabularnewline%
    \hline%
    \CheckBox[name=CheckLeer,bordercolor=0.9 0.8 0.8, bordersep=0.1, backgroundcolor=, height=2ex,width=2ex]{}&
    \CellTextFieldTitleTwoLines[9]{NameLeer}{Leer}&
    \CellTextFieldTwoLine[7]{WirkungLeer}{Leer}%
    \tabularnewline
    \tabularnewline%
    \hline%
\end{tabularx}
\end{document}

enter image description here

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.