I'm trying to make a document with chat history and found a sample code here except for the twocolumn option in the documentclass.
But the chat bubbles don't keep inside the column. Someone who know how to correct it?
I want the chat history in two column pages.
\documentclass[11pt,a4paper, twocolumn]{article}
\usepackage[many]{tcolorbox}
\usepackage{xcolor}
\usepackage{varwidth}
\usepackage{environ}
\usepackage{xparse}
\newlength{\bubblesep}
\newlength{\bubblewidth}
\setlength{\bubblesep}{2pt}
\AtBeginDocument{\setlength{\bubblewidth}{.75\textwidth}}
\definecolor{bubblegreen}{RGB}{103,184,104}
\definecolor{bubblegray}{RGB}{241,240,240}
\newcommand{\bubble}[4]{%
\tcbox[
on line,
arc=4.5mm,
colback=#1,
colframe=#1,
#2,
]{\color{#3}#4}%
}
\ExplSyntaxOn
\seq_new:N \l__ooker_bubbles_seq
\tl_new:N \l__ooker_bubbles_first_tl
\tl_new:N \l__ooker_bubbles_last_tl
\NewEnviron{rightbubbles}
{
\begin{flushright}
\sffamily
\seq_set_split:NnV \l__ooker_bubbles_seq { \par } \BODY
\int_compare:nTF { \seq_count:N \l__ooker_bubbles_seq < 2 }
{
\bubble{bubblegreen}{rounded~corners}{white}{\BODY}\par
}
{
\seq_pop_left:NN \l__ooker_bubbles_seq \l__ooker_bubbles_first_tl
\seq_pop_right:NN \l__ooker_bubbles_seq \l__ooker_bubbles_last_tl
\bubble{bubblegreen}{sharp~corners=southeast}{white}{\l__ooker_bubbles_first_tl}
\par\nointerlineskip
\addvspace{\bubblesep}
\seq_map_inline:Nn \l__ooker_bubbles_seq
{
\bubble{bubblegreen}{sharp~corners=east}{white}{##1}
\par\nointerlineskip
\addvspace{\bubblesep}
}
\bubble{bubblegreen}{sharp~corners=northeast}{white}{\l__ooker_bubbles_last_tl}
\par
}
\end{flushright}
}
\NewEnviron{leftbubbles}
{
\begin{flushleft}
\sffamily
\seq_set_split:NnV \l__ooker_bubbles_seq { \par } \BODY
\int_compare:nTF { \seq_count:N \l__ooker_bubbles_seq < 2 }
{
\bubble{bubblegray}{rounded~corners}{black}{\BODY}\par
}
{
\seq_pop_left:NN \l__ooker_bubbles_seq \l__ooker_bubbles_first_tl
\seq_pop_right:NN \l__ooker_bubbles_seq \l__ooker_bubbles_last_tl
\bubble{bubblegray}{sharp~corners=southwest}{black}{\l__ooker_bubbles_first_tl}
\par\nointerlineskip
\addvspace{\bubblesep}
\seq_map_inline:Nn \l__ooker_bubbles_seq
{
\bubble{bubblegray}{sharp~corners=west}{black}{##1}
\par\nointerlineskip
\addvspace{\bubblesep}
}
\bubble{bubblegray}{sharp~corners=northwest}{black}{\l__ooker_bubbles_last_tl}\par
}
\end{flushleft}
}
\ExplSyntaxOff
\title{Title of my document}
\date{2013-09-01}
\author{John Doe}
\begin{document}
\maketitle
\pagenumbering{gobble}
\newpage
\pagenumbering{arabic}
\begin{leftbubbles}
Left-aligned gray bubbles (241, 240, 240) with black text
Right-aligned green bubbles (103, 184,104) with white text
Bubbles only break after a paragraph (equivalent to an enter press when chatting). Long message with multiple lines will be kept in one bubble.
Left and right edges are round.
\end{leftbubbles}
\begin{rightbubbles}
Single
\end{rightbubbles}
\begin{leftbubbles}
Left-aligned gray bubbles (241, 240, 240) with black text
Right-aligned green bubbles (103, 184,104) with white text
Bubbles only break after a paragraph (equivalent to an enter press when chatting). Long message with multiple lines will be kept in one bubble.
Left and right edges are round.
\end{leftbubbles}
\begin{rightbubbles}
Single
\end{rightbubbles}
\begin{leftbubbles}
Left-aligned gray bubbles (241, 240, 240) with black text
Right-aligned green bubbles (103, 184,104) with white text
Bubbles only break after a paragraph (equivalent to an enter press when chatting). Long message with multiple lines will be kept in one bubble.
Left and right edges are round.
\end{leftbubbles}
\begin{rightbubbles}
Single
\end{rightbubbles}
\begin{leftbubbles}
Left-aligned gray bubbles (241, 240, 240) with black text
Right-aligned green bubbles (103, 184,104) with white text
Bubbles only break after a paragraph (equivalent to an enter press when chatting). Long message with multiple lines will be kept in one bubble.
Left and right edges are round.
\end{leftbubbles}
\begin{rightbubbles}
Single
\end{rightbubbles}
\begin{leftbubbles}
Left-aligned gray bubbles (241, 240, 240) with black text
Right-aligned green bubbles (103, 184,104) with white text
Bubbles only break after a paragraph (equivalent to an enter press when chatting). Long message with multiple lines will be kept in one bubble.
Left and right edges are round.
\end{leftbubbles}
\begin{rightbubbles}
Single
\end{rightbubbles}
\end{document}

