
모든 문장 앞에 '댓글 아이콘'이 표시되어 두 사람의 대화를 만들고 싶습니다. enumitem과 Fontawesome 패키지를 사용하여 원하는 것을 어느 정도 얻었습니다.
지금까지 내 코드는 다음과 같습니다.
\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}
이제 이것을 여러 번 사용할 수 있는 새로운 환경으로 정의하고 싶습니다. 나는 \labelitemi 명령이 있다는 것을 알고 있지만 이 명령은 모든 항목을 변경합니다. 이를 수행하는 방법을 잘 모르겠습니다.
나는 오래된 질문을 찾아보고 발견했습니다.이것하지만 내 경우에 맞게 설정하는 단계를 이해할 수 없었습니다.
답변1
\newtoggle
다음은 의 명령을 사용한 솔루션입니다 etoolbox
. 이 솔루션의 사용을 단순화하기 위해 새로운 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}
답변2
자체 정의를 변경하는 명령을 만들고 이를 레이블로 사용할 수 있습니다. 예를 들면 다음과 같습니다.
\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}