![如何在部分标签和名称周围放置阴影框](https://linux22.com/image/242428/%E5%A6%82%E4%BD%95%E5%9C%A8%E9%83%A8%E5%88%86%E6%A0%87%E7%AD%BE%E5%92%8C%E5%90%8D%E7%A7%B0%E5%91%A8%E5%9B%B4%E6%94%BE%E7%BD%AE%E9%98%B4%E5%BD%B1%E6%A1%86.png)
在与出版商合作时,我需要将章节标题格式化如下(使用 ASCII 艺术):
+-----+-------------------------------------+
| 1.2 | Section name |
+-----+-------------------------------------+
Texts starts here, aligned with the
section name, and so on...
至少,这是基本思想 - 更多细节如下。即:
章节标签和名称都应“加框”。
整个框扩展了页面上文本的宽度。
章节名称应与文本本身对齐;章节标签悬挂在左边距。
更理想的情况是,包含章节编号和章节名称的框的背景应该是阴影(不同的是:章节编号位于一个比章节名称略深的蓝色框中)。
如果能有这样的解决方案,我会很高兴。但为什么不抱有更大的希望,把事情讲完整呢?
实际的“框”的左端实际上是圆角,而不是方角,因此大框的左端实际上是完全圆的。另外,包含部分编号本身的“框”的右端也是类似的。也就是说,框的最左边是圆边,最右边是垂直边,部分编号和名称之间的分界线也是圆的。这是 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}