我想格式化我的章节标题,使它们看起来像这样:
------ 1 --------------------------------- % 此处为水平线
这是第一章的标题
------------------------------------------------------ % 水平另一条规则
我可以使用titlesec
包来创建大部分内容,但我无法获得我想要的第一行,即由凸起的水平线包围的章节号。我几乎可以使用 \hrulefill 正确完成此操作:
\hrulefill\thechapter \hrulefill\hrulefill
但生成的规则是在基线高度,我不知道如何提高 \hrulefill 命令。在互联网上,我偶然发现了一种使用领导者的替代方法:
\newcommand{\raisedrule}[2][0em]{\leavevmode\leaders\hbox{\rule[#1]{1pt}{#2}}\hfill\kern0pt}
但这也不能完全满足我的要求。它成功地提高了线条的高度,但结果看起来更像是一系列连接在一起的小线条(我猜是 1pt 长度),而不是统一的规则。我尝试通过将其设置为类似来减小各个单元的大小,\rule[#1]{0.1pt}
但这似乎会显著减慢我的 PDF 查看器的渲染速度(有一次甚至崩溃了)。我不确定为什么。
我也尝试过该xhfill
包,但是xrfill
在每一个命令旁边包含两个命令似乎会在它们之间引入一个小的间隙。
关于如何实现这一点有什么想法吗,是通过修改 \hfillrule 还是引入其他命令?
谢谢。
梅威瑟:
\documentclass[11pt,twoside]{book}
% I've tried two ways of defining the rule...
% I've tried this option:
\newcommand{\raisedrule}[2][0em]{\leavevmode\leaders\hbox{\rule[#1]{1pt}{#2}}\hfill\kern0pt}
\newcommand{\chaphrfill}{\raisedrule[10pt]{5pt}}
% And I've also tried this:
\usepackage{xhfill}
\newcommand{\chaphrfill}{\xrfill[10pt]{5pt}}
\usepackage[explicit]{titlesec}
\titleformat{\chapter}[display]
{\bfseries\scshape}
{%
\hspace*{0em}
{\chaphrfill~~\thechapter~~\chaphrfill\chaphrfill}
}
{0em}
{\Large\raggedright#1}
\begin{document}
\chapter{Chapter title....}
text .....
\end{document}
答案1
您可以使用 Ti钾z,像这样。
\documentclass[11pt,twoside]{book}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage[explicit]{titlesec}
\titleformat{\chapter}[display]
{\bfseries\scshape}
{%
\hspace*{-0.5em}
{\tikz \draw [line width=2mm](0,0)--(2,0)node[fill=white, right,
shift=({0cm,1cm})]{\scalebox{10} \thechapter}--(\textwidth,0);}
}
{-1em}
{\Large\raggedright#1
\hspace*{-0.5em}
{\tikz \draw [line width=2mm](0,0)--(\textwidth,0);}}
\begin{document}
\chapter{Chapter title....}
\end{document}
答案2
我认为你不需要像 TikZ 这样的大锤才能解决这个问题。你想要的就是这样的东西吗?
\documentclass[11pt,twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[svgnames]{xcolor}
\colorlet{headingcolour}{Silver!50!Lavender}
\usepackage{linegoal}
\usepackage[explicit]{titlesec}
\titleformat{\chapter}[display]
{\bfseries\scshape}
{\color{headingcolour}\rule[1.5ex]{0.2\textwidth}{4.5pt}~~\scalebox{4}{\thechapter}~~\rule[1.5ex]{\linegoal}{4.5pt}}
{2ex}
{\LARGE\filright#1}[\vskip1.5ex\leavevmode{\color{headingcolour}\titlerule[4.5pt]}]
\titlespacing*{\chapter}{0pt}{*1}{*25}
\usepackage{lipsum}
\begin{document}
\chapter{Chapter title....}
\lipsum[11]
\end{document}}