我想垂直对齐表格行内的表单字段。我面临的问题是同一行内的其他列可以跨越多行。解决方案如下表单字段与表格单元格的对齐因此对我来说不起作用。表单字段应始终位于行的中间,与行高无关。
另外,当我编译代码时,第 2 行的复选框和文本字段已经位于不同的垂直位置?为什么会这样?
\documentclass{article}
\usepackage{longtable}
\usepackage{array}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\begin{longtable}{|>{\raggedright}p{5cm} >{\centering}m{2.5cm} >{\raggedright\arraybackslash}m{5cm}|}
\hline
\textbf{Descriptor} & \textbf{Checked} & \textbf{Value} \\
\hline
\endfirsthead
\hline
\endlastfoot
% sample data
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed oluptua.
& \CheckBox[name=ExampleCheck]{}
& \TextField[name=ExampleText]{} \\ \hline
At vero eos et accusam et justo duo dolores et ea rebum.
Stet clita kasd gubergren.
& \CheckBox[name=Example2Check]{}
& \TextField[name=Example2Text]{}
\end{longtable}
\end{Form}
\end{document}
答案1
仅使用m
- 类型的列并删除不必要的空行。混合m
和p
列类型会产生不一致的结果。
\documentclass{article}
\usepackage{longtable}
\usepackage{array}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\begin{longtable}{|>{\raggedright}m{5cm} >{\centering}m{2.5cm} >{\raggedright\arraybackslash}m{5cm}|}
\hline
\textbf{Descriptor} & \textbf{Checked} & \textbf{Value} \\
\hline
\endfirsthead
\hline
\endlastfoot
% sample data
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed oluptua.
& \CheckBox[name=ExampleCheck]{}
& \TextField[name=ExampleText]{} \\ \hline
At vero eos et accusam et justo duo dolores et ea rebum.
Stet clita kasd gubergren.
& \CheckBox[name=Example2Check]{}
& \TextField[name=Example2Text]{}
\end{longtable}
\end{Form}
\end{document}