
Quero fazer um diálogo entre duas pessoas com o “ícone de comentário” na frente de cada frase. De certa forma, consegui o que queria usando pacotes enumitem e fontawesome.
Aqui esta o meu codigo ate agora.
\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}
Agora eu gostaria de defini-lo como um novo ambiente para usar isso várias vezes. Eu sei que existe um comando \labelitemi mas ele faz alterações em todos os itens, por isso não sei como fazer.
Eu procurei por perguntas antigas e encontreiessemas não consegui entender as etapas para que se adaptassem ao meu caso.
Responder1
Aqui está uma solução com o \newtoggle
comando from etoolbox
. Para simplificar o uso desta solução, defini um novo ambiente semelhante a itemize 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}
Responder2
Você pode criar um comando que altere sua própria definição e usá-lo como rótulo, por exemplo:
\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}