使用以下代码可以轻松获取 \section 标题的无色版本:
{\normalfont}
{\filright
\footnotesize
\enspace SECTION \thesection\enspace
}
{8pt}
{\Large\bfseries\sectionfont\filcenter}
我几乎用这个代码得到了我想要的东西
\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}
虽然很接近了,但除了我目前的 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}