我的问题与此类似: 如何旋转多行表中的文本? 但我的表格是由单独的 .eps 文件(大小相同,由不同的程序创建)通过 \includegraphics 组成的。我想旋转表格第一列中的文本以用作整体 y 轴标签。但是,我不知道如何正确对齐它。
我的输出当前所需的 y 轴标签太低,结束于中间而不是垂直居中。我可以使用此处底部描述的 fixup 参数手动调整位置:将图形放置在多行表格单元格内但如果我能通过编程来实现这一点就太好了。
如果有的话,我的实际表格由两行四列的 8 个面板组成(加上用于整体轴标签的附加列/行)。
有什么建议吗?
\documentclass{article}
\usepackage{graphicx}
\usepackage{multirow}
\begin{document}
\newcommand{\scale}{0.8}
\begin{table}
\centering
\setlength{\tabcolsep}{0.2\tabcolsep}
\begin{tabular}{c@{}cc}
\parbox[t]{0.25in}{\multirow{2}{*}[0.8in]{\rotatebox[origin=c]{90}{\Large dM/dlnD$_p$ ($\mu$g m$^{-3}$)}}} &
\includegraphics[scale=\scale]{image1} &
\includegraphics[scale=\scale]{image2}\\
& \includegraphics[scale=\scale]{image3} &
\includegraphics[scale=\scale]{image4}\\
\multicolumn{3}{c}{\Large Aerodynamic diameter ($\mu$m)}\\
\end{tabular}
\end{table}
\end{document}
答案1
您仍然需要修复,但您可以计算它,而不是使用反复试验。
\documentclass{article}
\usepackage{graphicx}
\usepackage{multirow}
\usepackage{mwe}
\newlength{\tempdima}
\newlength{\tempdimb}
\begin{document}
\newcommand{\scale}{0.5}
% get size of multicol
\settoheight{\tempdima}{\begin{tabular}[b]{cc}
\includegraphics[scale=\scale]{example-image-a} &
\includegraphics[scale=\scale]{example-image-b}\\
\includegraphics[scale=\scale]{example-image-c} &
\includegraphics[scale=\scale]{example-image}
\end{tabular}}
%subtract width of text
\settowidth{\tempdimb}{\Large dM/dlnD$_p$ ($\mu$g m$^{-3}$)}
\addtolength{\tempdima}{-\tempdimb}
\centering
\setlength{\tabcolsep}{0.2\tabcolsep}
\begin{tabular}{p{0.25in}@{}cc}
\multirow{2}{*}[0.5\tempdima]{\rotatebox[origin=c]{90}{\Large dM/dlnD$_p$ ($\mu$g m$^{-3}$)}} &
\includegraphics[scale=\scale]{example-image-a} &
\includegraphics[scale=\scale]{example-image-b}\\
& \includegraphics[scale=\scale]{example-image-c} &
\includegraphics[scale=\scale]{example-image}\\
\multicolumn{3}{c}{\Large Aerodynamic diameter ($\mu$m)}
\end{tabular}
\end{document}