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