框架模式下的背景颜色(titlesec)

框架模式下的背景颜色(titlesec)

使用以下代码可以轻松获取 \section 标题的无色版本:

{\normalfont}
{\filright
    \footnotesize
    \enspace SECTION \thesection\enspace
}
{8pt}
{\Large\bfseries\sectionfont\filcenter}

它看起来像: 无色 \section 标题

我几乎用这个代码得到了我想要的东西

\titleformat{\section}
{\LARGE}
{\rlap
    {\color{Fraoch!30}
        \rule[-0.4cm]{\linewidth}{1.2cm}
    }
    {\normalfont}
    {\filright
        \raisebox{1em}{
            \fcolorbox{black}{white}{
                    \footnotesize
                    \enspace SECTION \thesection\enspace
                }
        }
    }
}
{1em}
{\Large\sectionfont\filcenter}

看起来像: 彩色 \section 标题

虽然很接近了,但除了我目前的 LaTeX-Fu 之外,还有两个问题:主要部分周围没有边框,并且主要文本不居中。我尝试了各种\colorbox\fcolorbox咒语,但都没有成功,所以我想知道 tex.stack 上是否有人可以帮忙?

我的 MWE 集中在一个地方:

\documentclass{article}
\usepackage{fontspec}
\usepackage{lipsum}
\usepackage{enumitem}
\usepackage[table,x11names]{xcolor}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{xparse}
\usepackage{imakeidx}
\usepackage{bbding}
\usepackage{titlesec}
\usepackage[hyperindex]{hyperref}

\defaultfontfeatures{Ligatures=TeX}
%% \setmainfont{Hoefler Text}

\newcounter{cnt}
\setcounter{cnt}{0}

\NewDocumentCommand{\voc}{ m O{\O} O{#1}} {%
    \stepcounter{cnt}%
    \index[english]{#2|textit}
    \index{#3}%
    #1 & #2\\%
}
\newfontfamily\sectionfont{Goudy Bookletter 1911}
\definecolor{Fraoch}{named}{LightPink4}

\begin{document}
\titleformat{\section}[frame]
{\normalfont}
{\filright
    \footnotesize
    \enspace SECTION \thesection\enspace
}
{8pt}
{\Large\bfseries\sectionfont\filcenter}

{\setcounter{section}{9}
\section{UNIT 1 OF 9, English Translations}
\subsection{Intro}
\begin{tabular}{lr}
    \toprule
    \rowcolor{Fraoch!40}
    Gaelic & English\\
    \midrule
    \voc{Anna}[female name]
    \voc{Calum}[male name]
    \voc{Eilidh}[female name]
    \bottomrule
\end{tabular}
\titleformat{\section}
{\LARGE}
{\rlap
    {\color{Fraoch!30}
        \rule[-0.4cm]{\linewidth}{1.2cm}
    }
    {\normalfont}
    {\filright
        \raisebox{1em}{
            \fcolorbox{black}{white}{
                    \footnotesize
                    \enspace SECTION \thesection\enspace
                }
        }
    }
}
{1em}
{\Large\sectionfont\filcenter}
{\setcounter{section}{9}
\section{UNIT 1 OF 9, English Translations}
\subsection{Intro}
\begin{tabular}{lr}
    \toprule
    \rowcolor{Fraoch!40}
    Gaelic & English\\
    \midrule
    \voc{Anna}[female name]
    \voc{Calum}[male name]
    \voc{Eilidh}[female name]
    \bottomrule
\end{tabular}

\end {document}

我在制作 MWE 时注意到,我的版本与原始版本不一致。这也成了我的问题……

答案1

以下是如何执行此操作的示例。使用包explicit中的选项titlesec并在 中定义标题parbox。使用叠加tikz图片绘制标题的彩色框。绘图的高度tikz是使用标题的保存框加上您喜欢的长度计算得出的,它将与部分标签框重叠。您可以根据自己的喜好调整一些参数。这样,​​星号版本的部分标题将具有与编号版本相同的格式。

\documentclass{article}
\usepackage{fontspec}
\usepackage{lipsum}
\usepackage{enumitem}
\usepackage[table,x11names]{xcolor}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{xparse}
\usepackage{imakeidx}
\usepackage{bbding}
\usepackage[explicit]{titlesec}
\usepackage[hyperindex]{hyperref}
\defaultfontfeatures{Ligatures=TeX}
%% \setmainfont{Hoefler Text}

\newcounter{cnt}
\setcounter{cnt}{0}

\NewDocumentCommand{\voc}{ m O{\O} O{#1}} {%
    \stepcounter{cnt}%
    \index[english]{#2|textit}
    \index{#3}%
    #1 & #2\\%
}
\newfontfamily\sectionfont{Goudy Bookletter 1911}
\definecolor{Fraoch}{named}{LightPink4}
\usepackage{tikz}
\usepackage{calc}
\titleformat{\section}[display]
{\footnotesize}
{%
\fcolorbox{black}{white}{%
\enspace SECTION \thesection\enspace}%
}
{2pt}
{%
\sbox0{\parbox{\textwidth}{\Large\sectionfont\filcenter#1}}%
\tikz[remember picture,overlay,blend mode=overlay]
{\draw[fill=Fraoch!40] (0.5\pgflinewidth,-\dp0-5pt) rectangle (\textwidth-0.5\pgflinewidth,\ht0+5pt);}%
\parbox{\textwidth}{\Large\sectionfont\filcenter#1}%
}
\begin{document}
\setcounter{section}{9}
\section{UNIT 1 OF 9, English Translations}
\subsection{Intro}
\begin{tabular}{lr}
    \toprule
    \rowcolor{Fraoch!40}
    Gaelic & English\\
    \midrule
    \voc{Anna}[female name]
    \voc{Calum}[male name]
    \voc{Eilidh}[female name]
    \bottomrule
\end{tabular}
\section{Example of a super super super super super super super super super long title}
\lipsum[1]
\section*{Example of a super super super super super super super super super long title without number}
\end {document}

在此处输入图片描述

相关内容