
Я пытаюсь настроить дизайн для своих разделов и не могу обойти эту проблему: я хочу иметь рамку вокруг номера раздела (только номера) и прямо рядом с ним название раздела, что достаточно легко сделать, но я хочу, чтобы она также была связана с линией, которая находится под всем заголовком. Я уже смог настроить это, но только для разделов с однострочными заголовками. Как только у меня появляется раздел с более чем одной строкой, рамка и линия будут разъединены. Оптимальным решением было бы, чтобы рамка автоматически растягивалась вниз до того места, где находится строка, чтобы она всегда соединялась.
Вот что у меня получилось на данный момент:
Но то, что я хочу, должно выглядеть так:
Вот мой MWE — я включил booktabs и tikz, потому что в любом случае буду использовать оба, поэтому решения, включающие tikz или табличную настройку, вполне подойдут.
\documentclass[parskip=half]{scrreprt}
\usepackage{tikz}
\usepackage{booktabs}
\usepackage{lipsum}
\makeatletter
\renewcommand\sectionlinesformat[4]{\Ifstr{#1}{section}
{\rlap{}\colorbox{darkgray}{\raisebox{0pt}[13pt][3pt]{
\makebox{\selectfont\color{white}{\thesection}}}}\enskip#4\par\nobreak
\kern-1.48\ht\strutbox\textcolor{darkgray}{\rule{\linewidth}{.8pt}}}
{\@hangfrom{\hspace*{#2}#3}{#4}}
}
\makeatother
\begin{document}
\chapter{Some random chapter}
Don't even care for the chapter!
\section{Some short titled section}
\lipsum[1]
\section{Some very long titled section title, which is way too long to fit in one line, so it takes up more lines and destroys my section style}
\lipsum[1]
\end{document}
Спасибо заранее.
решение1
Я сам нашел одно решение с помощью таблицы:
\documentclass[parskip=half]{scrreprt}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{lipsum}
\usepackage[table,xcdraw]{xcolor}
\newcommand\btrule[1]{\specialrule{#1}{0pt}{0pt}}
\renewcommand\sectionlinesformat[4]{
\arrayrulecolor{darkgray}\begin{tabularx}{\textwidth}{>{\columncolor{darkgray}}>{\raggedright}l@{}p{0.01cm}Xc}
\textcolor{white}{\thesection} & & #4 \\ \btrule{1.5pt}
\end{tabularx}
}
\begin{document}
\chapter{Some random chapter}
Don't even care for the chapter!
\section{Some short titled section}
\lipsum[1]
\section{Some very long titled section title, which is way too long to fit in one line, so it takes up more lines and destroys my section style}
\lipsum[1]
\end{document}
Это соответствует моим целям, поэтому я считаю это решением.