表格和项目符号彼此相邻 - 如何?

表格和项目符号彼此相邻 - 如何?

我正在尝试将下面的表格移到左侧,并将项目符号(表格下方)显示在 Beamer 中的表格右侧。有人可以告诉我怎么做吗?

\documentclass[10pt,t]{beamer}
%\documentclass[11pt,handout]{beamer}
\usetheme{JuanLesPins}
%\usecolortheme[RGB={215,215,215}]{structure}%Change RGB numbers to alter color
\usecolortheme{seahorse}
\setbeamertemplate{bibliography item}[text]

\usepackage[absolute,overlay]{textpos}%Used to place logo
\usepackage{tikz}
\usepackage{multirow}
\usepackage[style=mla,autocite=footnote,maxnames=2,babel=hyphen,abbreviate=false,backend=bibtex,mcite]{biblatex}
\usepackage{CJKutf8} % Chinese package
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usepackage{lipsum}
\setbeamertemplate{caption}[numbered]

\begin{document}
\begin{frame}{p-values for 100 and 1000 Random Variates}
\begin{table}[h]\small

\begin{tabular}{l|l|l|}
\cline{2-3}
\multirow{2}{*}{} & \multicolumn{2}{l|}{100 Replications} \\ \cline{2-3} 
 & \multicolumn{2}{l|}{Data Points} \\ \hline
\multicolumn{1}{|l|}{Case} & 100 & 1000 \\ \hline
\multicolumn{1}{|l|}{1} & 0.99 & 1.00 \\ \hline
\multicolumn{1}{|l|}{2} & 0.96 & 0.43 \\ \hline
\multicolumn{1}{|l|}{3} & 0.03 & 0.00 \\ \hline
\multicolumn{1}{|l|}{4} & 0.99 & 0.97 \\ \hline
\multicolumn{1}{|l|}{5} & 0.99 & UNK \\ \hline
\multicolumn{1}{|l|}{6} & 0.97 & 1.00 \\ \hline
\multicolumn{1}{|l|}{7} & 0.97 & 0.75 \\ \hline
\multicolumn{1}{|l|}{8} & 0.97 & 0.98 \\ \hline
\multicolumn{1}{|l|}{9} & 0.99 & 0.88 \\ \hline
\multicolumn{1}{|l|}{10} & 0.98 & 0.56 \\ \hline
\multicolumn{1}{|l|}{11} & 0.86 & UNK \\ \hline
\multicolumn{1}{|l|}{12} & 0.16 & 0.00 \\ \hline
\end{tabular}
\end{table}

\begin{itemize}
\item I want the table to the left
\item and these bullets to the right
\end{itemize}
\end{frame}


\end{document} 

答案1

首先,始终发布完整的代码。在这种情况下,了解代码需要multirow编译的内容至关重要。以下是基于您的代码的最小工作示例:

\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{table}[h]\small
\begin{tabular}{l|l|l|}
\cline{2-3}
\multirow{2}{*}{} & \multicolumn{2}{l|}{100 Replications} \\ \cline{2-3}
 & \multicolumn{2}{l|}{Data Points} \\ \hline
\multicolumn{1}{|l|}{Case} & 100 & 1000 \\ \hline
\multicolumn{1}{|l|}{1} & 0.99 & 1.00 \\ \hline
\multicolumn{1}{|l|}{2} & 0.96 & 0.43 \\ \hline
\multicolumn{1}{|l|}{3} & 0.03 & 0.00 \\ \hline
\multicolumn{1}{|l|}{4} & 0.99 & 0.97 \\ \hline
\multicolumn{1}{|l|}{5} & 0.99 & UNK \\ \hline
\multicolumn{1}{|l|}{6} & 0.97 & 1.00 \\ \hline
\multicolumn{1}{|l|}{7} & 0.97 & 0.75 \\ \hline
\multicolumn{1}{|l|}{8} & 0.97 & 0.98 \\ \hline
\multicolumn{1}{|l|}{9} & 0.99 & 0.88 \\ \hline
\multicolumn{1}{|l|}{10} & 0.98 & 0.56 \\ \hline
\multicolumn{1}{|l|}{11} & 0.86 & UNK \\ \hline
\multicolumn{1}{|l|}{12} & 0.16 & 0.00 \\ \hline
\end{tabular}
\end{table}

\begin{itemize}
\item I want the table to the left
\item and these bullets to the right
\end{itemize}
\end{document}

这证明了你所询问的问题:

问题

源代码中的空白行会告诉 TeX 开始一个新段落。如果您希望项目符号位于右侧,则您不希望在项目符号前出现段落分隔符,因此请不要留下空白行。

但是, Atable是浮点数。它根本不是常规文本的一部分。LaTeX 会将其移动到最适合的位置,其中“最佳”基于您可能并不总是同意的算法。

有两种可能性:

  1. 您想要一个浮动,但您希望项目位于浮动之内,而不是浮动之外。
  2. 你根本不想要浮点数。

(2) 似乎更有可能,所以我会选择它。在这种情况下,我们table根本不想使用环境,但我们确实想包含开关的范围\small。所以让我们使用花括号而不是环境table

  {\small
    \begin{tabular}{l|l|l|}
      \cline{2-3}
      \multirow{2}{*}{} & \multicolumn{2}{l|}{100 Replications} \\ \cline{2-3}
      & \multicolumn{2}{l|}{Data Points} \\ \hline
      \multicolumn{1}{|l|}{Case} & 100 & 1000 \\ \hline
      \multicolumn{1}{|l|}{1} & 0.99 & 1.00 \\ \hline
      \multicolumn{1}{|l|}{2} & 0.96 & 0.43 \\ \hline
      \multicolumn{1}{|l|}{3} & 0.03 & 0.00 \\ \hline
      \multicolumn{1}{|l|}{4} & 0.99 & 0.97 \\ \hline
      \multicolumn{1}{|l|}{5} & 0.99 & UNK \\ \hline
      \multicolumn{1}{|l|}{6} & 0.97 & 1.00 \\ \hline
      \multicolumn{1}{|l|}{7} & 0.97 & 0.75 \\ \hline
      \multicolumn{1}{|l|}{8} & 0.97 & 0.98 \\ \hline
      \multicolumn{1}{|l|}{9} & 0.99 & 0.88 \\ \hline
      \multicolumn{1}{|l|}{10} & 0.98 & 0.56 \\ \hline
      \multicolumn{1}{|l|}{11} & 0.86 & UNK \\ \hline
      \multicolumn{1}{|l|}{12} & 0.16 & 0.00 \\ \hline
    \end{tabular}
  }

下一个问题是itemize环境总是会自己开始一个新行。也就是说,它会在列表前后插入一些垂直空间。因此,我们需要让 TeX 将列表视为一个单元,即一个框(一切是 TeX 的一个盒子 - 它本质上是一个用于将盒子装入其他盒子的复杂程序)。你可以用各种方式做到这一点,但环境minipage似乎和任何环境一样好:

  \begin{minipage}{.5\textwidth}
    \begin{itemize}
      \item I want the table to the left
      \item and these bullets to the right
    \end{itemize}

这看起来开始好多了:

盒子

当然,您可能希望条目占据页面的更多或更少的宽度。如果是这样,您可以相应地调整小页面。

有多种方法可以改善这种情况。一种方法是将每个表格和列表相对于其自己的小页面居中。例如:

  \begin{minipage}{.5\textwidth}
    \small
    \centering
    \begin{tabular}{l|l|l|}
      \cline{2-3}
      \multirow{2}{*}{} & \multicolumn{2}{l|}{100 Replications} \\ \cline{2-3}
      & \multicolumn{2}{l|}{Data Points} \\ \hline
      \multicolumn{1}{|l|}{Case} & 100 & 1000 \\ \hline
      \multicolumn{1}{|l|}{1} & 0.99 & 1.00 \\ \hline
      \multicolumn{1}{|l|}{2} & 0.96 & 0.43 \\ \hline
      \multicolumn{1}{|l|}{3} & 0.03 & 0.00 \\ \hline
      \multicolumn{1}{|l|}{4} & 0.99 & 0.97 \\ \hline
      \multicolumn{1}{|l|}{5} & 0.99 & UNK \\ \hline
      \multicolumn{1}{|l|}{6} & 0.97 & 1.00 \\ \hline
      \multicolumn{1}{|l|}{7} & 0.97 & 0.75 \\ \hline
      \multicolumn{1}{|l|}{8} & 0.97 & 0.98 \\ \hline
      \multicolumn{1}{|l|}{9} & 0.99 & 0.88 \\ \hline
      \multicolumn{1}{|l|}{10} & 0.98 & 0.56 \\ \hline
      \multicolumn{1}{|l|}{11} & 0.86 & UNK \\ \hline
      \multicolumn{1}{|l|}{12} & 0.16 & 0.00 \\ \hline
    \end{tabular}
  \end{minipage}%
  \begin{minipage}{.5\textwidth}
    \centering
    \begin{itemize}
      \item I want the table to the left
      \item and these bullets to the right
    \end{itemize}
  \end{minipage}

以小页面为中心

\documentclass{article}
\usepackage{multirow}
\begin{document}
  \begin{minipage}{.5\textwidth}
    \small
    \centering
    \begin{tabular}{l|l|l|}
      \cline{2-3}
      \multirow{2}{*}{} & \multicolumn{2}{l|}{100 Replications} \\ \cline{2-3}
      & \multicolumn{2}{l|}{Data Points} \\ \hline
      \multicolumn{1}{|l|}{Case} & 100 & 1000 \\ \hline
      \multicolumn{1}{|l|}{1} & 0.99 & 1.00 \\ \hline
      \multicolumn{1}{|l|}{2} & 0.96 & 0.43 \\ \hline
      \multicolumn{1}{|l|}{3} & 0.03 & 0.00 \\ \hline
      \multicolumn{1}{|l|}{4} & 0.99 & 0.97 \\ \hline
      \multicolumn{1}{|l|}{5} & 0.99 & UNK \\ \hline
      \multicolumn{1}{|l|}{6} & 0.97 & 1.00 \\ \hline
      \multicolumn{1}{|l|}{7} & 0.97 & 0.75 \\ \hline
      \multicolumn{1}{|l|}{8} & 0.97 & 0.98 \\ \hline
      \multicolumn{1}{|l|}{9} & 0.99 & 0.88 \\ \hline
      \multicolumn{1}{|l|}{10} & 0.98 & 0.56 \\ \hline
      \multicolumn{1}{|l|}{11} & 0.86 & UNK \\ \hline
      \multicolumn{1}{|l|}{12} & 0.16 & 0.00 \\ \hline
    \end{tabular}
  \end{minipage}%
  \begin{minipage}{.5\textwidth}
    \centering
    \begin{itemize}
      \item I want the table to the left
      \item and these bullets to the right
    \end{itemize}
  \end{minipage}
\end{document}

但我认为您还应该重新考虑表格的格式。关于这个主题的文档booktabs非常好,尽管有时有点教条。我本来想说明一种您可以重做的方法,但我意识到我对表格的理解还不够深入,无法做到这一点。中间一列是“数据”,右边是“点”吗?或者“100”和“1000”是不同数量的“数据点”?但是“100 次复制”指的是什么?

相关内容