这个问题现在让我抓狂。如何在 Latex 中绘制具有以下属性的表格?
宽度 = \文本宽度
1 列:水平对齐 = 左,垂直对齐 = 底部
2 列:水平对齐 = 居中,垂直对齐 = 底部
3 列:水平对齐 = 居中,垂直对齐 = 底部
梅威瑟:
\documentclass{scrartcl}
\usepackage{tabularx}
\usepackage{blindtext}
\begin{document}
\begin{tabularx}{\textwidth}{|X|p{0.4cm}|p{3cm}|}
\hline
\blindtext & \begin{center}A\end{center} & \begin{center}B\end{center} \\
\hline
\end{tabularx}
\end{document}
答案1
您可以使用以下方式收集单元格内容collcell
并将其传递给\parbox
:
\documentclass{scrartcl}% http://ctan.org/pkg/KOMA-script
\usepackage{array,blindtext,collcell}% http://ctan.org/pkg/{array,blindtext,collcell}
\newcommand{\leftcol}[1]{\parbox[b]{\dimexpr\linewidth-6\tabcolsep-4\arrayrulewidth-4mm-3cm}{\strut #1\strut}}
\newcommand{\middlecol}[1]{\parbox[b]{4mm}{\centering\strut #1\strut}}
\newcommand{\rightcol}[1]{\parbox[b]{3cm}{\centering\strut #1\strut}}
\newcolumntype{L}{>{\collectcell\leftcol}l<{\endcollectcell}}
\newcolumntype{C}{>{\collectcell\middlecol}l<{\endcollectcell}}
\newcolumntype{R}{>{\collectcell\rightcol}l<{\endcollectcell}}
\begin{document}
\noindent
\begin{tabular}{|L|C|R|}
\hline
\cci\blindtext & A & B \\
\hline
\end{tabular}
\end{document}
每列的内容被捕获并传递给特定于列的宏,详细说明所需的格式。
\cci
可能没有必要。请参阅collcell
文档。
答案2
例如(您的代码中有一行被注释,三行被添加;只有一行babel
仅满足我的需要):
\documentclass{scrartcl}
\usepackage{tabularx}
\usepackage{blindtext}
\usepackage[english,polish]{babel}
\begin{document}
\renewcommand{\tabularxcolumn}[1]{>{}b{#1}}
\begin{tabularx}{\textwidth}{|X|p{0.4cm}|p{3cm}|}
\hline
% \blindtext & \begin{center}A\end{center} & \begin{center}B\end{center} \\
\blindtext & \hfil A \hfil& \hfil B \hfil\\
\hline
\end{tabularx}
\end{document}
答案3
这是一个相当简单的答案,在某些方面与其他两个答案相似,但不需要\hfil
表格主体中的额外命令或额外的命令:
\documentclass{scrartcl}
\usepackage{tabularx}
\usepackage{array}
\usepackage{blindtext}
\begin{document}
\renewcommand\tabularxcolumn[1]{b{#1}}
\begin{tabularx}{\textwidth}{|X|>{\centering}b{0.4cm}|>{\centering
\arraybackslash}b{3cm}|}
\hline
\blindtext & A& B\\
\hline
\end{tabularx}
\end{document}