如何在部分标签和名称周围放置阴影框

如何在部分标签和名称周围放置阴影框

在与出版商合作时,我需要将章节标题格式化如下(使用 ASCII 艺术):

+-----+-------------------------------------+
| 1.2 |  Section name                       |
+-----+-------------------------------------+
         Texts starts here, aligned with the
         section name, and so on...

至少,这是基本思想 - 更多细节如下。即:

  1. 章节标签和名称都应“加框”。

  2. 整个框扩展了页面上文本的宽度。

  3. 章节名称应与文本本身对齐;章节标签悬挂在左边距。

  4. 更理想的情况是,包含章节编号和章节名称的框的背景应该是阴影(不同的是:章节编号位于一个比章节名称略深的蓝色框中)。

如果能有这样的解决方案,我会很高兴。但为什么不抱有更大的希望,把事情讲完整呢?

实际的“框”的左端实际上是圆角,而不是方角,因此大框的左端实际上是完全圆的。另外,包含部分编号本身的“框”的右端也是类似的。也就是说,框的最左边是圆边,最右边是垂直边,部分编号和名称之间的分界线也是圆的。这是 ASCI 艺术中的尝试,没有框的顶部和底部(我无法让它看起来不错):

( 1.2 ) Section name |

请不要评论这种格式的优点:-)。只是想知道是否有人知道如何在 LaTeX 中做到这一点。我一直在使用各种软件包,例如titlesec,但我似乎无法将其调整为出版商想要的格式。

我可以管理上面的第 3 点(除了获得正确的字体和字体大小);就是这样。

答案1

以下是使用包设置章节标题并使用 TikZ 绘制栏的方法titlesec。章节编号放置在 TikZ 节点中,该节点将自动增大以容纳编号:

\documentclass{book}
\usepackage{titlesec}
\usepackage{lipsum}
\usepackage{tikz}\usetikzlibrary{shapes.misc}
\newcommand\titlebar{%
\tikz[baseline,trim left=3.1cm,trim right=3cm] {
    \fill [cyan!25] (2.5cm,-1ex) rectangle (\textwidth+3.1cm,2.5ex);
    \node [
        fill=cyan!60!white,
        anchor= base east,
        rounded rectangle,
        minimum height=3.5ex] at (3cm,0) {
        \textbf{\arabic{chapter}.\thesection.}
    };
}%
}
\titleformat{\section}{\large}{\titlebar}{0.1cm}{}
\renewcommand*{\thesection}{\arabic{section}}
\begin{document}
\chapter{First Chapter}
\section{Section name}
\lipsum[1]
\setcounter{chapter}{9999}
\setcounter{section}{105}
\section{Section name}
\lipsum[1-2]
\end{document}

相关内容