# Alignment and width with tcolorbox

I'm writing a document where I need to put some text inside a box. I have figured out how to make a rounded-corner box with the graphical appearence I was looking for.

My code is the following:

\documentclass[11pt, a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[most]{tcolorbox}

\definecolor{mycolor}{rgb}{0.122, 0.435, 0.698}

\newtcbox{\mybox}{enhanced,
colframe=mycolor,colback=mycolor!7!white,
boxrule=0.5pt,arc=4pt,boxsep=0pt,left=6pt,right=6pt,top=5pt,bottom=5pt, hbox}

\begin{document}

\mybox{\textbf{Assumption 1:} Atmospheric forces can be neglected.}

\end{document}


With the following output:

I would like to know how:

1. Indent the box when it is located at the beginning of a section or paragraph. I've tried \indent but it seems to not work.

2. How to control the width of the box. When I write a long text it exceeds the page margins. I would like to set the width to constrain the box size and force the text to fit inside the width I have choosen (just in case of a long text).

3. When a long text wraps to start a new line within the box, I would like to get an alignment just after the colon, i.e. ":", and not with the first world of the box as normally happens.

4. It is more a curiosity: I've defined a \tcbset{enhanced,colframe={violet!60},colback={black!3!white}, drop shadow} for another box inside the document. Why my "assumption box" acquires the drop shadow option and displays it?

Here some examples of the result I would like to get:

I would appreciate a lot any kind of help. However, It would be great If someone could provide me a MWE to accomplish the whole task. Thank you very much.

• Your code doesn't produce the shown box. In fact your code is missing [most] option which allows enhanced option. And as you don't use drop shadow in mybox option, it doesn't add any drop shadow to resulting box. May 4, 2021 at 13:23
• I'm sorry @Ignasi, I've forgotten to add [most] on the original MWE I have written. It is actually present in my current code. I don't still get the point. May 4, 2021 at 18:21
• My point 4 lecture was wrong. \tcbset fixes options for all boxes, therefore drop shadow inside tcbset will apply this shadow to all boxes unless you use no shadow. It's better that you use \tcbset{ style-name/.style={...}} to define several styles and apply them to particular tcolorboxes. May 4, 2021 at 21:53
• I've solved the point 4 in this way: I have left \newtcbox to define my "assumption box", called \mybox as the MWE shows. The other box, that was defined by \tcbset, now it has been defined by \tcboxmath[option]{formula}, given that it contains a math equation. However, I keep needing help with points 1,2 and 3. I hope that someone come forward. May 5, 2021 at 15:18
• Update: It seems I've solved point 1. I've found the option left skip=length inside tcolorbox package, where I replaced "lenght" with my current indentation parameter, equal to 15pt. I don't know if it is a proper way to do it, but it works. Any further suggestions are welcome though. May 5, 2021 at 16:15

tcolorbox offers two kind of boxes tcbox and tcolorbox. First ones are for a short texts which won't break in lines while seconds can contain longer texts and use a whole line as default width. Therefore, I think that what OP wants is not possible with a unique command.

Following code proposes an environment (tcolorbox) for the larger boxes. The inner contents described by OP looks like a description environment. I've assumed that the box only contains one item. The alignment has been taken from an egregs answer

longbox environment has one optional and one mandatory parameters. The mandatory is the item title while the optional will be applied as tcolorbox options to change box format (even width).

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[shortlabels]{enumitem}
\usepackage{lipsum}
\usepackage{lmodern}
\usepackage[most]{tcolorbox}

\definecolor{mycolor}{rgb}{0.122, 0.435, 0.698}

\newlength{\xdescwd}
\newenvironment{xdesc}[1]
{\settowidth{\xdescwd}{\textbf{#1:}}%
\begin{description}[leftmargin=\dimexpr\xdescwd+.5em\relax,
labelindent=0pt,labelsep=.5em,
labelwidth=\xdescwd,align=right]\item[#1:]}
{\end{description}}

\newtcolorbox{longbox}[2][]{before upper={\begin{xdesc}{#2}},after upper={\end{xdesc}},
enhanced, breakable, colframe=mycolor,colback=mycolor!7!white,
boxrule=0.5pt, arc=4pt, boxsep=0pt, left=6pt, right=6pt, top=5pt, bottom=5pt, #1}

\begin{document}

\lipsum[1]

\begin{longbox}[width=.8\linewidth]{Assumption 1}
\lipsum[2][1-3]
\end{longbox}

\begin{longbox}[colback=red!30, sharp corners]{Example}
\lipsum[2][1-3]
\end{longbox}

\begin{longbox}{Example}
Only one line
\end{longbox}
\end{document}


• Thank you so much @Ignasi for the amazing effort. That's the kind of code I needed. I have added left skip=length inside your suggested code, just to set the indentation I need. For the shortest boxes I will keep using tcbox, so that the box adapts to the shorter text with the hbox` option. May 5, 2021 at 20:13