我用 LaTeX 制作了下表。为了垂直旋转表中的标题(提取/生产、运输……),我使用了命令\rotatebox
。但是,我想垂直拼写这些标题,以便在演示文稿中无需旋转幻灯片即可读取它们。
谁能帮我这个?
答案1
当然,还有其他问题需要解决,例如,multicol
或者诸如此类,但这里我仅演示如何“垂直”设置单词。我以各种样式设置它们,希望您能找到适合您易读性要求的样式。
堆栈以这种方式工作,因为(出于历史原因),堆栈行尾 (EOL) 是stackengine
空格,除非使用选项调用包[usestackEOL]
,这会使堆栈 EOL 成为\\
。无论如何,堆栈 EOL 都可以用\setstackEOL{}
宏更改。
\documentclass{article}
\usepackage{stackengine}
\parskip 1em
\begin{document}
\setstackgap{L}{9pt}
\begin{tabular}{c|c|c}
Material & Construction & Use\\
\hline
\Longstack{\strut E x t r a c t i o n ~ P r o d u c t i o n}~~~~
{\sffamily\bfseries\Longstack{T r a n s p o r t a t i o n}}&
{\scshape\Longstack{O n - s i t e ~ E q u i p m e n t}}~~~~~~
{\bfseries\Longstack{T r a f f i c ~ D e l a y}} &
{\setstackgap{L}{12pt}\large\Longstack{A l b e d o}}\\
\hline
x~~~~~x & x~~~~~~~~x&\\
\hline
\end{tabular}
\end{document}
答案2
其实这并不难,但结果就是难以阅读,因为我们不习惯垂直阅读;使用垂直文本的标志或广告通常都采用大写字母。
\documentclass{article}
\usepackage{xparse,booktabs}
\ExplSyntaxOn
\NewDocumentCommand{\VT}{m}
{
\seq_set_split:Nnn \l_vertical_text_seq { } { #1 }
\begin{tabular}[b]{@{}c@{}}
\seq_use:Nn \l_vertical_text_seq { \\ }
\end{tabular}
}
\ExplSyntaxOff
\begin{document}
\begin{tabular}{l cc cc cccc }
\toprule
& \multicolumn{2}{c}{Material} & \multicolumn{2}{c}{Construction} & \multicolumn{4}{c}{Use}\\
\cmidrule(lr){2-3}\cmidrule(lr){4-5}\cmidrule(lr){6-9}
Tool &
\VT{Extraction/Production} &
\VT{Transportation} &
\VT{On-site~equipment} &
\VT{Traffic~delay} &
\VT{Albedo} &
\VT{Carbonation} &
\VT{Lighting} &
\VT{PVI} \\
\midrule
\textit{PaLATE} & x & x & x \\
\textit{GreenDOT} & x & x & x \\
\bottomrule
\end{tabular}
\end{document}
减小尺寸或行距也无济于事。这是我将值\arraystretch
设置为 0.8 后\footnotesize
得到的垂直文本结果: