Ungerade und gerade Einzelsymbole

Ungerade und gerade Einzelsymbole

Ich möchte einen Dialog zwischen zwei Personen erstellen, bei dem vor jedem Satz ein „Kommentarsymbol“ steht. Ich habe mein Ziel einigermaßen erreicht, indem ich die Pakete enumitem und fontawesome verwendet habe. Bildbeschreibung hier eingeben

Hier ist mein bisheriger Code.

\documentclass{article}
\usepackage{enumitem}
\usepackage{fontawesome}
\usepackage{xcolor}
\begin{document}
    \begin{itemize}
        \item[\color{blue!70!white}\faCommenting] First person
        \item[\color{green!70!black}\faCommentingO] Second person
        \item[\color{blue!70!white}\faCommenting] First person
    \end{itemize}
\end{document}

Jetzt möchte ich es als neue Umgebung definieren, um es mehrfach verwenden zu können. Ich weiß, dass es einen \labelitemi-Befehl gibt, aber dieser nimmt Änderungen für alle Elemente vor. Ich bin mir nicht sicher, wie ich das machen soll.

Ich habe nach alten Fragen gesucht und festgestelltDasaber ich habe die Schritte nicht verstanden, mit denen ich sie auf meinen Fall abstimmen kann.

Antwort1

Hier ist eine Lösung mit dem \newtoggleBefehl von etoolbox. Um die Verwendung dieser Lösung zu vereinfachen, habe ich eine neue itemize-ähnliche Umgebung definiert alternitem:

\documentclass{article}
\usepackage{enumitem}
\usepackage{fontawesome}
\usepackage{xcolor}
\usepackage{etoolbox}
%
\newtoggle{greeny}
\newlist{alternitem}{itemize}{1}
\setlist[alternitem]{label={\iftoggle{greeny}%
{\color{green!70!black}\faCommentingO\global\togglefalse{greeny}}%
{\color{blue!70!white}\faCommenting\global\toggletrue{greeny}}%
}}

\begin{document}

 \begin{alternitem}
 \item First person
 \item Second person
 \item First person
 \item First person
 \item Second person
 \item First person
 \end{alternitem}

\end{document} 

Bildbeschreibung hier eingeben

Antwort2

Sie können einen Befehl erstellen, der seine eigene Definition ändert, und diese als Bezeichnung verwenden, beispielsweise wie folgt:

\documentclass{article}

\usepackage{enumitem}
\usepackage{fontawesome}
\usepackage{xcolor}


\makeatletter
  \def\speech@bubble@a{%
    \color{blue!70!white}\faCommenting
    \global\let\speech@bubble\speech@bubble@b
  }
  \def\speech@bubble@b{%
    \color{green!70!black}\faCommentingO
    \global\let\speech@bubble\speech@bubble@a
  }
  \newlist{dialog}{itemize}{1}
  \newlist{dialog*}{itemize}{1}
  \setlist[dialog]{
    before={\global\let\speech@bubble\speech@bubble@a},
    label={\speech@bubble},
  }
  \setlist[dialog*]{
    before={\global\let\speech@bubble\speech@bubble@b},
    label={\speech@bubble},
  }
\makeatother

\begin{document}

First person first:
\begin{dialog}
  \item bla
  \item bla
  \item bla
  \item bla
  \item bla
\end{dialog}

Second person first:
\begin{dialog*}
  \item bla
  \item bla
  \item bla
  \item bla
  \item bla
\end{dialog*}

\end{document}

MWE-Ausgabe

verwandte Informationen