使用 tcolorbox 进行对齐和宽度

使用 tcolorbox 进行对齐和宽度

我正在写一份文档,需要在框内放置一些文本。我已经想出了如何制作具有我想要的图形外观的圆角框。

我的代码如下:

\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}

输出如下:

在此处输入图片描述

我想知道如何:

  1. 当框位于节或段落的开头时缩进该框。我试过了,\indent但似乎不起作用。

  2. 如何控制框的宽度。当我写长文本时,它会超出页边距。我想设置宽度来限制框大小并强制文本适合我选择的宽度(以防文本较长)。

  3. 当长文本在框内换行开始新行时,我希望在冒号后对齐,即“:”,而不是像通常那样与框的第一个世界对齐。

  4. 更令人好奇的是:我\tcbset{enhanced,colframe={violet!60},colback={black!3!white}, drop shadow}在文档中为另一个框定义了一个。为什么我的“假设框”会获得阴影选项并显示它?

下面是我想要得到的结果的一些示例:

在此处输入图片描述

我将非常感谢任何形式的帮助。但是,如果有人能为我提供 MWE 来完成整个任务,那就太好了。非常感谢。

答案1

tcolorbox提供两种框tcboxtcolorbox。第一种用于短文本,不会换行,而第二种可以包含较长的文本,并使用整行作为默认宽度。因此,我认为 OP 想要的无法通过唯一命令实现。

以下代码为较大的框提出了一个环境(tcolorbox)。OP 描述的内部内容看起来像一个description环境。我假设该框仅包含一个item。对齐取自egreg 的回答

longbox环境有一个可选参数和一个强制参数。强制参数是项目标题,而可选参数将作为tcolorbox选项应用以更改框格式(均匀宽度)。

\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}

在此处输入图片描述

相关内容