使用 tikz 进行分段分隔线

使用 tikz 进行分段分隔线

我希望使用 tikz 创建一个奇特的线分隔符,以类似于下面显示的分隔符。 在此处输入图片描述

分隔线基本上是一条细细的灰线,上面有一个较大的矩形,矩形的长度恰好等于其下方部分标题的长度。我真的不知道如何在 LaTeX 中实现这一点,而且看起来可能相当复杂。不过,我真的很感激您的意见。

\documentclass[11pt,a4paper]{article}
\usepackage{xcolor}
\usepackage[explicit]{titlesec}

%Underlining ruler for subsections
\titleformat{\section}
{\normalfont\Large\bfseries}
{}
{0em}
{#1}
[{\color{gray!50}\titlerule[0.8pt]}]

\begin{document}

\section{A test section}
Text text text


\end{document}

答案1

选项calcwidth将寄存器设置\titlewidth为标题中最长的行,然后是较粗行的宽度。较细的线随后是宽度\linewidth

规则在标题之前使用\vadjust pre(pdfTeX 发明的关键字pre,也在 XeTeX/LuaTeX 中实现)设置。

TikZ 不是必需的,规则是用\hrule纯 TeX 绘制的。

例子:

\documentclass[11pt,a4paper]{article}
\usepackage{xcolor}
\usepackage[calcwidth]{titlesec}

%Underlining ruler for subsections
\titleformat{\section}%
  [hang]% shape
  {\normalfont\Large\bfseries}% format
  {}% label
  {0mm}% sep
  {%
    \vadjust pre{%
      \color{gray!50}%
      \hrule width \titlewidth height 4pt\relax
      \hrule width \linewidth height .4pt\relax
    }%
  }% before-code

\begin{document}

\section{A test section}
Text text text

\end{document}

结果

答案2

这是将灰色条的长度调整为文本长度的一种可行方法。如标题所述,它利用了 tikz。

\documentclass{article}
\usepackage{tikz}
\usepackage{calc}
\usepackage{lipsum}
\usepackage[explicit]{titlesec}
\usepackage[titles]{tocloft}
\newlength{\marmotlength}
\setlength{\marmotlength}{2.7cm}
\newcommand\myfancysection[1]{\addtolength\marmotlength{\widthof{\Large{\textbf{#1}}}}%
\typeout{feep \the\marmotlength}
\tikz[baseline=(CHAP.base),very thick]{
  \draw[use as bounding box,draw=white,fill=white] (0,0) rectangle (2cm,2cm);
  \node[fill=white,minimum width=1.5cm,outer sep=0pt,rounded corners] (CHAP) at
  (1cm,\baselineskip+1ex) {\Large{\textbf{\textsf{\thesection}}}};
  \draw[black, line width=1pt](2cm,1.2cm) -- (\textwidth,1.2cm);
  \draw[gray!50!, line width=2mm](2cm,1.2cm) -- (\marmotlength,1.2cm);
}}

\titleformat{\section}
  {\normalfont}{\myfancysection{#1}}{1em}{\Large{\textbf{#1}}}

\begin{document}

\section{Blabla}

\lipsum[1]

\section{Blablablabla}

\lipsum[2]

\end{document}

在此处输入图片描述

相关内容