使用 tcolorbox/tikz 自定义形状

使用 tcolorbox/tikz 自定义形状

我正在尝试制作一个自定义矩形来包围我的部分标题。这是一个常规矩形,其左上角和右下角被“切开”,因此它们是对角的。

我希望它看起来像这样:图片

我尝试修改 tcolorbox 第 201-202 页中的长示例,但只得到缺失的角落。

这是我的 MWE:

\documentclass[13pt]{extarticle}
\usepackage[paperwidth=9in, paperheight=6in, margin=0.3in, marginparwidth=0.6in]{geometry}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{tikz}
\usepackage{tcolorbox}
\tcbuselibrary{skins,breakable}
\pagestyle{empty}
\begin{document}
\tcbset{nobeforeafter, colbacktitle=white, colback=white, coltitle=black, width=.5\linewidth}

\begin{tcolorbox}[enhanced, frame code={\path[tcb fill frame] (frame.south west)--([yshift=-5mm]frame.north west)
--([xshift=5mm]frame.north west)--(frame.north east)--([yshift=-5mm]frame.north east)
--([yshift=5mm]frame.south east)--([xshift=-5mm]frame.south east)--cycle;}]
Sample Text
\end{tcolorbox}
\end{document}

但它看起来像这样:错误图片

有人能帮我找出为什么它无法正确绘制吗?或者我应该使用其他东西而不是 tcolorbox?

答案1

在您的示例中,框架绘制正确,但随后框架上方填充了一个白色矩形,遮住了角落。尝试使用其他颜色,white以便更轻松地查看发生了什么。

你想要这样的东西吗?

样品盒

如果是这样,您必须隐藏interior框的,否则它将被放置在框架上方,具有规则的角。因此,fill将传递给 TiKZ 命令,并interior hidden用于阻止框架的标准填充。

\documentclass[13pt]{extarticle}
\usepackage[paperwidth=9in, paperheight=6in, margin=0.3in, marginparwidth=0.6in]{geometry}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{tikz}
\usepackage{tcolorbox}
\tcbuselibrary{skins,breakable}
\pagestyle{empty}
\begin{document}
  \tcbset{
    nobeforeafter,
    colbacktitle=white,
    colback=white,
    coltitle=black,
    coltext=white,
    fontupper=\sffamily\bfseries\LARGE,
    width=.5\linewidth,
  }

  \begin{tcolorbox}
    [
      enhanced,
      interior hidden,
      frame code={
        \path [tcb fill frame] (frame.south west) -- ([yshift=-5mm]frame.north west) -- ([xshift=5mm]frame.north west) -- (frame.north east) -- ([yshift=5mm]frame.south east) -- ([xshift=-5mm]frame.south east) -- cycle;
      },
    ]
    Sample Text
  \end{tcolorbox}
\end{document}

您可能还想查看sharp corners包装手册中的选项,以防它提供更简单的方法。

相关内容