调整投影仪中的表格大小以提高可读性

调整投影仪中的表格大小以提高可读性

在此处输入图片描述Excel我在演示文稿中插入了一个表格,最初来自Beamer。表格不适合框架,我过去常常resizebox让它适合。这导致表格不可读。有解决方案吗?这是 MWE:

    \documentclass[10pt,aspectratio=169]{beamer}
    \usetheme{Boadilla}
    \usecolortheme{dove}
    \setbeamertemplate{frametitle}[default][center]
    \setbeamertemplate{itemize items}[default]
    \setbeamertemplate{enumerate items}[default]
    \setbeamertemplate{itemize/enumerate subbody begin}{\tiny}
    \usepackage{color} 
    \usepackage[export]{adjustbox}
    \usepackage{mdwmath}
    \usepackage{mdwtab}
    \usepackage{tabularx,booktabs}
    \newcolumntype{C}{>{\centering\arraybackslash}X} % centered version of "X" type
    \setlength{\extrarowheight}{1pt}
    \usepackage{subfig}
    \usepackage{multicol}
    \usepackage{array}
 
    \begin{document}
    \begin{frame}

    \begin{table}[htbp]
          \centering
          \caption{Resistivity of samples prepared from $ 0.5\:mg/ml $ CNT solution}
          \resizebox{\textwidth}{!}{
            \begin{tabularx}{1.8\textwidth}{ccccccccrrr}
                  &      & \multicolumn{3}{c}{Resistivity on cellulose filter} & \multicolumn{3}{c}{Resistivity after transferring to glass substrate} & \multicolumn{3}{c}{Resistivity after baking the transferred samples} \\
            Volume of solution used for sample (ml) & Thickness (micron) & Resistance & Sheet Resistance & Resistivity (OHM cm) & Resistance & Sheet Resistance & Resistivity (OHM cm) & \multicolumn{1}{c}{Resistance} & \multicolumn{1}{c}{Sheet Resistance} & \multicolumn{1}{c}{Resistivity (OHM cm)} \\
            10    & 3.015 & 16.32860687 & 73.96858911 & 0.02230153 & 27.89651855 & 126.371229 & 0.038100926 &       &       &  \\
            20    & 6.8375 & 7.248137422 & 32.83406252 & 0.02245029 & 13.77673335 & 62.40860206 & 0.042671882 &       &      &   \\
            \end{tabularx}%
        }
          \label{conductivitymeasure}%
        \end{table}%

\end{frame}     
\end{document}

答案1

您的代码需要很多更正和其他调整,以便排版出一个好看的表格。以下是一些建议,没有特别的顺序。

  • \documentclass请以而不是开始您的代码\begin{document},并且请确保加载所有软件包正在执行\begin{document}。(我刚刚注意到用户@Miyase 已同时对您的代码应用了所需的更正。)

  • 文档beamer类没有“浮点数”;tablefigure开销被忽略。因此,我将删除\begin{table}\end{table}指令,并\caption{...}用替换\frametitle{...}

  • 永远不要\resizebox在表格材料上使用,除非您愿意承担使材料几乎无法阅读的真正风险。

  • 使用环境的全部目的tabularx是允许在某些(甚至可能是所有)列中实现自动化。但是您的代码随后使用了cr列类型,而这些类型不允许自动换行。既然您X在文档的序言中设置了列类型的变体,为什么不使用它呢?

  • 必须在所有 11 列的标题单元格中允许换行。另外,请确保不要\multicolumn{1}{c}{...}在任何标题上使用,因为这样做会再次抑制自动换行。

  • 甚至不要考虑显示具有 8 和 9 位小数的数字,特别是如果有 9 或 10 个这样的数据列。我建议您加载包siunitx并使用其S列类型将自动舍入到 2 或 3 位小数;请参阅下面的代码以了解此想法的实现。

  • 请使用软件包的\unit和宏来排版科学单位和数量/单位组合。并且请使用 来输入“微米” 。\qtysiunitx\unit{\micro\meter}

完成这些调整后,您将获得以下“外观”:

在此处输入图片描述

\documentclass[10pt,aspectratio=169]{beamer}
\usetheme{Boadilla}
\usecolortheme{dove}
\setbeamertemplate{frametitle}[default][center]

%% new:
\usepackage{tabularx,booktabs,ragged2e}
\newcommand\mytab[1]{\smash{\begin{tabular}[t]{@{}C@{}} #1 \end{tabular}}}
\newcolumntype{C}{>{\Centering\hspace{0pt}}X} % centered version of "X" type
\newcommand\mC[1]{\multicolumn{1}{C}{#1}} % handy shortcut macro
\newcolumntype{Z}{>{\hsize=\dimexpr3\hsize+4\tabcolsep\relax}C}
\setlength{\extrarowheight}{1pt}

\usepackage{siunitx} % for S col. type and \unit and \qty macros
 
\begin{document}
\begin{frame}

\sisetup{per-mode=symbol,round-mode=places}
\frametitle{Resistivity of samples prepared from 
     \qty{0.5}{\milli\gram\per\milli\liter} CNT solution}
\setlength\tabcolsep{2.5pt} % default: 6pt
\begin{tabularx}{1\textwidth}{@{} C S[table-format=3.2,round-precision=2]
          *{3}{S[table-format=3.2,round-precision=2] 
               S[table-format=3.2,round-precision=2] 
               S[table-format=1.3,round-precision=3]} @{}}
\toprule
\mytab{Volume used for sample (\unit{\milli\liter})}
& {\mytab{Thickness (\unit{\micro\meter})}}
& \multicolumn{3}{Z}{%
     Resistivity on cellulose filter} 
& \multicolumn{3}{Z}{%
     Resistivity after transferring to glass substrate}
& \multicolumn{3}{Z@{}}{%
     Resistivity after baking the transferred samples}\\
\cmidrule(lr){3-5} \cmidrule(lr){6-8} \cmidrule(l){9-11} 
&  
& \mC{Resistance} & \mC{Sheet Resistance} & \mC{Resistivity (\unit{\ohm\centi\meter})} 
& \mC{Resistance} & \mC{Sheet Resistance} & \mC{Resistivity (\unit{\ohm\centi\meter})} 
& \mC{Resistance} & \mC{Sheet Resistance} & 
    \multicolumn{1}{C@{}}{Resistivity (\unit{\ohm\centi\meter})} \\
\midrule
10    & 3.015 & 16.32860687 & 73.96858911 & 0.02230153 & 27.89651855 & 126.371229 & 0.038100926 &       &       &  \\
20    & 6.8375 & 7.248137422 & 32.83406252 & 0.02245029 & 13.77673335 & 62.40860206 & 0.042671882 &       &      &   \\
\bottomrule
\end{tabularx}

\end{frame}
\end{document}

答案2

重新设计你的桌子。

至少前两列标题太宽了。

从列标题中删除 (OHM cm) 并将其添加到标题中的电阻率之后。 \caption{Resistivity (OHM cm) of samples ...

以及您可能想到的其他事项。

答案3

人们擅长浏览一列相关数字并观察其变化。考虑到这一点,我建议堆叠电阻/薄层电阻/电阻率列(并根据需要重复体积和厚度)。这使得表格足够小,但我们可以做得更好。

使用 siunitx 来获取微米和欧姆(不必担心单位的间距)。将单位添加到所有列标题。删除表格环境,并将标题移动到框架标题(这意味着您不能使用标签引用“表格 1”,但无论如何您不应该在演示文稿中引用“表格 1”)。添加一些\cmidrule以帮助堆叠表格。使用 makecell 堆叠两个单词列标题以使其更窄。

演示的目的是什么?22 个数字中,18 个有 8-10 个有效数字,这是没有意义的。没有人能够理解这一点。我建议将数字四舍五入到最接近的百分位(或两个有效数字,以较大者为准)。这也为使用 siunitx 列类型提供了足够的空间S,该列类型将数字与小数点对齐(但您需要保护列标题)。如果在堆叠的表格之间留出一点空间,则变为:

\documentclass[10pt,aspectratio=169]{beamer}
\usecolortheme{dove}
\setbeamertemplate{frametitle}[default][center]
\usepackage{booktabs}
\usepackage{multicol}
\usepackage{makecell}
\usepackage{siunitx}

\begin{document}
    \begin{frame}
        \frametitle{Resistivity of samples prepared from \SI[per-mode=fraction]{0.5}{\mg\per\ml} CNT solution}
        \centering
        \begin{tabular}{cSSSS}
            \makecell{Volume\\(\si{\ml})} & {\makecell{Thickness\\(\si{\micro\m})}} & {\makecell{Resistance\\(\si{\ohm})}} & {\makecell{Sheet\\Resistance (\si{\ohm})}} & {\makecell{Resistivity\\(\si{\ohm\cm})}} \\\\
            & & \multicolumn{3}{c}{On cellulose filter} \\\cmidrule{3-5}
            10    & 3.02 & 16.33 & 73.97 & 0.022 \\
            20    & 6.84 & 7.25 & 32.83 & 0.022 \\\\
            & & \multicolumn{3}{c}{After transferring to glass substrate} \\\cmidrule{3-5}
            10    & 3.02 & 27.90 & 126.37 & 0.038 \\
            20    & 6.84 & 13.78 & 62.41 & 0.043 \\\\
            & & \multicolumn{3}{c}{After baking the transferred samples} \\\cmidrule{3-5}
            % these are repeated to give something to display
            10    & 3.02 & 27.90 & 126.37 & 0.038 \\
            20    & 6.84 & 13.78 & 62.41 & 0.043
        \end{tabular}
    \end{frame}
\end{document}

输出

相关内容