如何为表格专门定制列表环境?

如何为表格专门定制列表环境?

我想在表格环境中实现列表。如果不进行调整,由于水平间距,输出看起来会非常奇怪。但是,我使用以下代码将列表直接对齐到表格环境的左侧:

\makeatletter
\newcommand{\minipagetrue}{\@minipagetrue}
\usepackage{enumitem}
\setlist[itemize]{nosep,after=\vskip-\baselineskip,label=     {\textbullet},leftmargin=*,before=\minipagetrue,}

将此代码插入MWE:

\documentclass[12pt,english,hideothersubsections]{beamer}
\usepackage{ragged2e,array,longtable}

%------LAYOUT--------
\usetheme{Warsaw}
\usecolortheme{wolverine}
\usefonttheme{professionalfonts}

%defining color of itemize.
\setbeamertemplate{itemize item}{\color{yellow}$\blacksquare$}
\setbeamertemplate{itemize subitem}{\color{orange}$\blacktriangleright$}

\makeatletter
\newcommand{\minipagetrue}{\@minipagetrue}
\usepackage{enumitem}
\setlist[itemize]{nosep,after=\vskip-\baselineskip,label=    {\textbullet},leftmargin=*,before=\minipagetrue,}


\begin{document}

\begin{frame}

\begin{tabular}{>{\RaggedRight}p{30mm}>{\RaggedRight}p{30mm}>{\RaggedRight}p{30mm}}

\onslide<2->{text 1} & \onslide<2->{text 2} & \onslide<2->{text 3}\\

\begin{itemize}%[leftmargin=0mm]
  \item<3-> subitem
\end{itemize}

\end{tabular}

\end{frame}


\end{document}

但是,我发现我的输出有两个问题。首先,首先呈现的代码是全局代码,因此引用所有列表环境;我希望它仅引用表格中的列表环境。其次,使用包 > enumitem 时,项目符号颜色的定义消失了。

有可能解决这两个问题吗?如果可以,该如何解决?

答案1

我将用它\setbeamercolor来改变投影仪元素的颜色:

% defining color of itemize.
\setbeamercolor{itemize item}{fg=yellow}
\setbeamercolor{itemize subitem}{fg=orange}
% defining shape of items
\setbeamertemplate{itemize item}{\usebeamercolor[fg]{itemize item}$\blacksquare$}
\setbeamertemplate{itemize subitem}{\usebeamercolor[fg]{itemize subitem}$\blacktriangleright$}

然后您可以定义项目和子项目标签以供itemize使用enumitem

\usepackage{enumitem}
\setlist[itemize,1]{label=\usebeamertemplate{itemize item}}
\setlist[itemize,2]{label=\usebeamertemplate{itemize subitem}}

如果您想要一个特殊的表格列表,您可以定义一个新的列表:

\newlist{tabitemize}{itemize}{2}
\setlist[tabitemize]{nosep,leftmargin=*}
\setlist[tabitemize,1]{label=\usebeamercolor[fg]{itemize item}\textbullet}
\setlist[tabitemize,2]{label=\usebeamercolor[fg]{itemize subitem}\textbullet}

现在您可以使用tabitemize内部表格和itemize外部表格。

在此处输入图片描述

代码:

\documentclass[12pt,english,hideothersubsections]{beamer}
\usepackage{ragged2e,array,longtable}

%------LAYOUT--------
\usetheme{Warsaw}
\usecolortheme{wolverine}
\usefonttheme{professionalfonts}

% defining color of itemize.
\setbeamercolor{itemize item}{fg=yellow}
\setbeamercolor{itemize subitem}{fg=orange}
% defining shape of items
\setbeamertemplate{itemize item}{\usebeamercolor[fg]{itemize item}$\blacksquare$}
\setbeamertemplate{itemize subitem}{\usebeamercolor[fg]{itemize subitem}$\blacktriangleright$}

\usepackage{enumitem}
\setlist[itemize,1]{label=\usebeamertemplate{itemize item}}
\setlist[itemize,2]{label=\usebeamertemplate{itemize subitem}}
% define tabitmize for tables
\newlist{tabitemize}{itemize}{2}
\setlist[tabitemize]{nosep,leftmargin=*}
\setlist[tabitemize,1]{label=\usebeamercolor[fg]{itemize item}\textbullet}
\setlist[tabitemize,2]{label=\usebeamercolor[fg]{itemize subitem}\textbullet}

\begin{document}
\begin{frame}
\begin{tabular}{>{\RaggedRight}p{30mm}>{\RaggedRight}p{30mm}>{\RaggedRight}p{30mm}}
  \onslide<2->{text 1} & \onslide<2->{text 2} & \onslide<2->{text 3}\\
  \begin{tabitemize}
    \item<3-> item inside table
    \begin{tabitemize}
      \item <3-> subitem inside table
    \end{tabitemize}
  \end{tabitemize}
\end{tabular}

Text

\begin{itemize}
  \item<2-> item outside table
  \begin{itemize}
    \item<3-> subitem outside table
  \end{itemize}
 \end{itemize}
\end{frame}
\end{document}

相关内容