titelsec + tcolorbox:如何在整个标题行周围放置一个框?

titelsec + tcolorbox:如何在整个标题行周围放置一个框?

我的文档中有两个我想合并的元素。

首先是一个包围整个文本行的框:

\usepackage[most]{tcolorbox}
\newtcolorbox{frameT}{enhanced, colframe=black,colback=purple!2.5, boxrule=0.2pt,arc=0pt,outer arc=0pt,frame hidden}

% in example \begin{frameT} **Text** \end{frameT}

感谢一些精美的软件包,它们有一个花哨的标题:

\usepackage[calcwidth,explicit]{titlesec}

\usepackage[outline]{contour}

\usepackage[table]{xcolor}

\definecolor{dblue}{rgb}{0.2, 0.2, 0.6}

\titleformat{\section}[block]{\huge\color{dblue!60}}{{{\thesection.\kern0.20em}}}{-0.15em}{\centering {\contour{npink!40}{\ul{#1}}}}

% in example \section{fancy title}

我的想法是,好吧,将这两者结合起来,这样就得到了一个带有花哨标题的盒子。

我进行过一些尝试,但都没有成功。

答案1

如果您只想将 tcolorbox 应用于章节标题:

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage[most]{tcolorbox}
\usepackage{titlesec}
\usepackage[outline]{contour}

\newtcbox{\frameT}{
  on line,
  enhanced,
  coltext=dblue!60,
  colframe=black,
  colback=purple,
  boxrule=0.2pt,
  arc=0pt,
  outer arc=0pt,
  frame hidden,
}
\definecolor{dblue}{rgb}{0.2, 0.2, 0.6}

\newcommand{\frametitle}[1]{\frameT{\contour{pink!40}{#1}}}

\titleformat{\section}[block]
  {\huge\color{dblue!60}}
  {\thesection. }
  {0pt}
  {\frametitle}

\begin{document}

\section{Test}

\end{document}

在此处输入图片描述

我使用时purple不加混合,只是为了制作一张解释性图片,并删除了排版中没有实际位置的下划线。

就我个人而言,我不会使用这类东西。


评论后编辑

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage[most]{tcolorbox}
\usepackage{titlesec}
\usepackage[outline]{contour}
\usepackage{showframe}

\newtcolorbox{frameT}{
  enhanced,
  coltext=dblue!60,
  colframe=black,
  colback=purple,
  arc=0pt,
  outer arc=0pt,
  frame hidden,
  left skip=-1.4pt,
  right skip=-1.4pt,
}
\definecolor{dblue}{rgb}{0.2, 0.2, 0.6}

\newcommand{\frametitle}[2]{%
  \vbox{%
    \kern-\lineskip
    \kern-0.4pt
    \hbox{\begin{frameT}\huge#1\contour{pink!40}{#2}\end{frameT}}%
  }%
}

\titleformat{name=\section}[block]
  {}
  {}
  {0pt}
  {\frametitle{\thesection.\ }}
\titleformat{name=\section,numberless}[block]
  {}
  {}
  {0pt}
  {\frametitle{}}

\begin{document}

\section*{Introduction}

Filler text filler text filler text filler text filler text filler text filler text 
filler text filler text filler text filler text filler text filler text filler text 

\section{Test}

Filler text filler text filler text filler text filler text filler text filler text 
filler text filler text filler text filler text filler text filler text filler text 

\section{Test}

Filler text filler text filler text filler text filler text filler text filler text 
filler text filler text filler text filler text filler text filler text filler text 

\end{document}

在此处输入图片描述

接受或放弃。我不太喜欢这段代码,但tcolorbox和之间的相互作用titlesec有点神秘。当然你会删除showframe

相关内容