表格中所有行的高度都相同

表格中所有行的高度都相同

我想创建一个表格,其中所有行的高度都相同,而不管它们实际上有多少行文本。如果一行/单元格的最大数量是三行,则如果有三行,则所有行都应该具有高度。在实际项目中,所有 latex 文件/文本内容都是使用脚本动态创建的,手动调整各行不是解决方案。

我尝试了不同的解决方案,这些解决方案是我在 stackexchange 上通过下面的示例表找到的,但它们都没有完全起作用。

下面的代码是一个精简的示例,其中包含我想要实现的基本布局

\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}

电流输出: 电流输出

答案1

我并没有试图让它变得完美。但有几点需要注意:不要将外部字体大小设置为 \tiny,这会导致表格内部间距非常差。始终使用较大的字体大小。

有些“行”实际上由两行组成。如果想要统一的外观,则必须在所有地方添加第二行。

\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}

在此处输入图片描述

相关内容