如何才能使 tcolorbox 内部呈现尖角、外部呈现圆角?

如何才能使 tcolorbox 内部呈现尖角、外部呈现圆角?

因此,我想排版具有以下属性的 tcolorbox:

  • 仅左边框
  • 圆角
  • 左边界右侧内部有尖角。

我尝试了以下方法:

\begin{tcolorbox}
[
    toprule=0pt,
    bottomrule=0pt,
    rightrule=0pt,
    leftrule=5pt,
    colframe=blue
]
    This is a tcolorbox!
\end{tcolorbox}

不幸的是,我得到了以下输出: 瓦乌 请注意,尽管我已经明确告诉 tcolorbox 以 0pt 的厚度来绘制它们(从技术上讲,这意味着“不可见”),但在框的顶部、右侧和底部仍有淡淡的蓝色轮廓。

此外,请注意盒子内部灰色部分的左上角和右下角不清晰。

有人知道我该如何解决这些问题吗?我尝试过查看 tcolorbox 手册,但找不到我想要的内容。如果您的解决方案有命令\newenvironment,您能否彻底解释您的代码以尽量减少答案下的问题数量?

谢谢!

答案1

您可以替换框架代码,以便只绘制左边框,这样可以消除伪影并允许您拥有尖锐的内部角:

\documentclass{article}

\usepackage[skins]{tcolorbox}

\newtcolorbox{blueleftbox}{%
  enhanced,
  boxrule=0pt,
  leftrule=5pt,
  sharp corners=west,
  frame code={
    \fill[blue]
      ([xshift=5pt]frame.north west) --
      ([xshift=5pt]frame.south west) --
      ([xshift=1mm]frame.south west) arc
      [radius=1mm,start angle=-90,end angle=-180] --
      ([yshift=-1mm]frame.north west) arc
      [radius=1mm,start angle=180,end angle=90]--
      cycle;
  }
}

\begin{document}

\begin{blueleftbox}
  This is a tcolorbox!
\end{blueleftbox}

\end{document}

MWE 输出

答案2

请借助以下方法控制电弧——

arc=0mm,outer arc=1mm,

在此处输入图片描述

\begin{tcolorbox}
     [arc=0mm,outer arc=1mm,
        boxrule=0mm,toprule=0mm,bottomrule=0mm,left=1mm,right=1mm,leftrule=5pt,
        titlerule=0mm,toptitle=0mm,bottomtitle=0mm,top=0mm,
        colframe=blue!50!black,colback=blue!5!white,coltitle=blue!50!black,
    ]
    This is a tcolorbox!
\end{tcolorbox}

相关内容