Использовать текст в качестве меток в среде itemize в beamer

Использовать текст в качестве меток в среде itemize в beamer

Я пытаюсь использовать текст в качестве меток в среде детализирования в Beamer.

я использовал

\documentclass{beamer}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{enumitem}

\setitemize{%
    label=\usebeamerfont*{itemize item}
    \usebeamercolor[fg]{itemize item}
    \usebeamertemplate{itemize item}
}

\begin{document}

\begin{frame}

\begin{itemize}
\item \makebox[2.75cm][l]{$a$} iff $a$,
\item \makebox[2.75cm][l]{$b+c$} iff $a$,
\item \makebox[2.75cm][l]{$d$} iff $a$
\item \makebox[2.75cm][l]{$e+f$} iff $a$ and a lot of text which takes up multiple lines without correct alignment
\end{itemize}

\vfill

\begin{itemize}
\item[$a$] iff $a$,
\item[$b+c$] iff $a$,
\item[$d$] iff $a$
\item[$e+f$] iff $a$
\end{itemize}

\end{frame}

\end{document}

производить

введите описание изображения здесь

Проблема в первой среде itemize заключается в том, что мне нужно, чтобы вторая строка соответствовала «iff $a$ and ...» в строке выше.

Я пытался получить это, используя метки в среде itemize вместо \makebox. Но если я это сделаю, я все еще не определю ширину меток и потеряю синие маркеры/стрелки itemize.

решение1

Обычно beamerне работает с enumitem, есть много проблем с совместимостью. Вот (не очень чистый) хак вокруг вашей проблемы. Однако он сломает опцию наложения.

\documentclass{beamer}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{enumitem}

\setitemize{%
    label=\usebeamerfont*{itemize item}
    \usebeamercolor[fg]{itemize item}
    \usebeamertemplate{itemize item}
}


\makeatletter
\def\Myitemize#1{%
  \advance\beamer@descdefault by \labelsep%
  \list
  {}
  {\labelwidth\beamer@descdefault%
  \leftmargin\beamer@descdefault%
  \let\makelabel\beamer@descriptionitem
  \settowidth\labelwidth{\beamer@descriptionitem{#1}}%
  \setlength\leftmargin{\labelwidth}% 
  \addtolength\leftmargin{\labelsep}%
  }%
  \beamer@cramped%
  \raggedright
  \beamer@firstlineitemizeunskip%
}
\def\endMyitemize{\ifhmode\unskip\fi\endlist}
\long\def\beamer@descriptionitem#1{%
  \def\insertdescriptionitem{#1}%
  {\usebeamertemplate**{description item}}\hfil}
\makeatother  


\begin{document}

\begin{frame}

\begin{Myitemize}{$\blacktriangleright$ $b+c$} % <= longest label here
\item [$\blacktriangleright$ $a$  ] iff $a$,
\item [$\blacktriangleright$ $b+c$] iff $a$,
\item [$\blacktriangleright$ $d$  ] iff $a$,
\item [$\blacktriangleright$ $e+f$] iff $a$ and a lot of text which takes up multiple lines without correct alignment
\end{Myitemize}

\end{frame}

\end{document}

введите описание изображения здесь

Редактировать:

Лучшим подходом будет следующий:

\begin{itemize}
\item \makebox[2cm][l]{$a$}   iff $a$,
\item \makebox[2cm][l]{$b+c$} iff $a$,
\item \makebox[2cm][l]{$d$}   iff $a$,
\item \makebox[2cm][l]{$e+f$} \begin{minipage}[t]{7cm}
iff $a$ and a lot of text which takes up multiple lines without correct alignment, and a lot of text which takes up multiple lines without correct alignment
\end{minipage}
\end{itemize}

введите описание изображения здесь

Связанный контент