乳胶新手在这里。
我需要为所有\subsection
标题设置背景颜色。整行应该改变颜色,而不仅仅是文本的一部分。
这确实有效:
\subsection{\colorbox{Gray}{Title}}
但它不会为整条线着色。此外,我想在一个地方为所有\subsections
.
我的 google-fu 让我失望了。关于如何做我想做的任何建议?
要制作\colorbox
线条的宽度,请使用\makebox
:
\subsection{\colorbox{Gray}{\makebox[\hfill][l]{Title}}}
我不是 100% 确定 " \hfill
" 是您需要放在第一组方括号中的内容。您可能需要对该部分进行试验。一个值得尝试的替代方案是
\subsection{\colorbox{Gray}{\makebox[\width][s]{Title\hfill}}}
要在一个地方为所有小节配置它,最简单的事情是定义一个包装器命令:
\newcommand{\mysubsection}[1]
{\subsection{\colorbox{Gray}{\makebox[\hfill][l]{#1}}}}
您也可以重新定义\subsection
,但是您必须了解它使用的内部命令并注意匹配您的文档类的其他格式。我不推荐它。
扩展 Zack 的答案,这是我的解决方案:
如果您希望文本左对齐
\newcommand{\mysubsection}[1]{
\setlength\fboxsep{4pt} %% spacing around box contents
\subsection*{\colorbox{bgcol}{\makebox[\textwidth][l]{\color{textcol}#1\hfill}}}
}
或者如果你想让它居中
\newcommand{\mysubsection}[1]{
\setlength\fboxsep{4pt} %% spacing around box contents
\subsection*{\colorbox{bgcol}{\makebox[\textwidth]{\color{textcol}#1}}}
}
如果您使用全局设置,您可以删除 \setlength\fboxsep 的本地声明。显然 bgcol 和 textcol 需要在文档序言的前面定义。
如果在 multicols 环境中,您可以使用 \textwidth 或 \columnwidth,或其中任何一个的相对数量,这取决于您如何布局以及您希望它们看起来如何。
我正在使用 multicols 的文本跨越 100% 的列。但发现使用 \textwidth 或 \columnwidth 与下方文本正文的宽度相比,标题悬垂到右侧,因此为了纠正这个问题,我实际上最终使用了:
\newcommand{\mysubsection}[1]{
\setlength\fboxsep{4pt} %% spacing around box contents
\subsection*{\colorbox{bgcol}{\makebox[0.97\textwidth]{\color{textcol}#1}}}
}
警告:我使用此代码从“Overfull \hbox”收到错误消息。我不知道如何解决这个问题,但输出工作正常,所以这对我来说不是问题。在不同的程序或构建上,这可能会给您带来问题!