LaTeX新手在这里。
我需要为所有\subsection
个标题设置背景颜色。整行应该改变颜色,而不仅仅是文本部分。
这确实有效:
\subsection{\colorbox{Gray}{Title}}
但它并没有整个颜色。另外,我想在一个地方为所有\subsections
配置它。
我的google-fu让我失望了。关于如何做我想做的任何建议?
答案 0 :(得分:2)
要使\colorbox
行宽,请使用\makebox
:
\subsection{\colorbox{Gray}{\makebox[\hfill][l]{Title}}}
我不是百分百肯定“\hfill
”是你需要放在第一组方括号中的东西。您可能需要尝试该部分。另一个值得尝试的是
\subsection{\colorbox{Gray}{\makebox[\width][s]{Title\hfill}}}
要在一个地方为所有子部分配置它,最简单的方法是定义一个包装器命令:
\newcommand{\mysubsection}[1]
{\subsection{\colorbox{Gray}{\makebox[\hfill][l]{#1}}}}
您也可以重新定义\subsection
,但是您必须了解它使用的内部命令,并注意匹配您的文档类的其他格式。我不推荐它。
答案 1 :(得分:2)
扩展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”收到错误消息。我不知道如何解决这个问题,但输出工作正常,所以这对我来说不是问题。在不同的程序或构建上,这可能会导致您的问题!