这可能是社区维基的一个适当问题。
如何使用 LaTeX 实现各种文本处理器(如 Word 或 Writer)表格功能?例如,我可以实现:
- 多列和多行(是的,带有
multirow
包) - 跨多行和多列的合并单元格操作,尊重边界。如下图所示:
- 均匀分布列(是的,具有适当的列类型并手动输入列宽,或
tabularx
打包) - 等行分布(?)
- 改变文本方向(是的,不依赖于桌面环境?)
- 单元格/行阴影(是的,带有
colorx
包装) - 使用边框和线条
- 单独设置每个单元格的边框(?)
- 在单元格内对齐单元格内容在所有 9 个方向(垂直、水平和定心)
- ETC。
答案1
合并跨越多行和多列的单元格操作,尊重边界。
\multirow
可以使用 内的(multirow
包)来完成\multicolumn
。边框是使用\hline
或绘制的\cline
。
代码
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{|c|c|c|}
\hline
Text A & Text B & Test C \\\hline
\multicolumn{2}{|c|}{\multirow{2}{*}{Longer Text, etc. etc.}} & Test F \\\cline{3-3}
\multicolumn{2}{|c|}{} & Test G \\\hline
\end{tabular}
\end{document}
结果
答案2
我发现这个链接非常有用:http://www.tablesgenerator.com/#
答案3
更改文本方向
\rotatebox
这可以使用的宏来完成graphicx
。语法是:
\rotatebox[origin=<O>]{<angle in degree>}{<Text>}
文本旋转的原点可以是:(
l
左)、
r
(右)、
c
(中心)、
t
(顶部)、
b
(底部)、
B
(基线)。
例如rt
右上角。默认为lB
。
示例代码:
\documentclass[convert={png,density=150}]{standalone}
\usepackage{graphicx}
\usepackage{array}
\usepackage{booktabs}
% Draw tight framebox around cell text
\newcommand*{\x}[1]{{%
\fboxsep=0pt
\fboxrule=.1pt
\fbox{\strut#1}%
}}
\let\x\empty
\begin{document}
\begin{tabular}{llllll}
\toprule
\rlap{\rule{35em}{.1pt}}% Marker only
Normal
& \rotatebox{90}{90 up}origin
& \rotatebox{180}{Up side down, deep}
& \rotatebox{270}{270 down}
& \rotatebox{45}{45 degrees up}
& \rotatebox[origin=rB]{-45}{135 degrees up}
\\\midrule
\rlap{\rule{35em}{.1pt}}% Marker only
Normal
& \rotatebox[origin=rB]{90}{90 down}
& \rotatebox[origin=c]{180}{Up side down, baseline}
& \rotatebox[origin=rB]{270}{270 up}
& \rotatebox{-45}{45 degrees down}
& \rotatebox[origin=rB]{45}{135 degrees down}
\\\midrule
\end{tabular}
\end{document}
结果:
答案4
表格中的水平线
该booktabs
软件包提供了以下命令
全宽线:它们可以通过
\toprule
、\midrule
和 来完成\bottomrule
。它们都接受厚度的可选参数,可以通过分别修改长度\heavyrulewidth
(\toprule
、\bottomrule
)和\lightrulewidth
(\midrule
)进行全局调整。部分线条:它们可以通过以下方式绘制
\cmidrule
:\cmidrule[width](trim){m–n}
以下是一个例子,也是取自我的博客,分别的书:
\documentclass{article}
\usepackage{booktabs}
\newcommand{\head}[1]{\textnormal{\textbf{#1}}}
\begin{document}
\begin{tabular}{@{}*3l@{}}
\toprule[1.5pt]
\multicolumn{2}{c}{\head{Input}} &
\multicolumn{1}{c}{\head{Output}}\\
\head{Command} & \head{Declaration} & \\
\cmidrule(r){1-2}\cmidrule(l){3-3}
\verb|\textrm| & \verb|\rmfamily| & \rmfamily Example text\\
\verb|\textsf| & \verb|\sffamily| & \sffamily Example text\\
\verb|\texttt| & \verb|\ttfamily| & \ttfamily Example text\\
\bottomrule[1.5pt]
\end{tabular}
\end{document}