单列和双列文档的实心标题

单列和双列文档的实心标题

我需要一些建议,如何为包含单栏和双栏页面的文档创建一致的实心标题样式。在单栏模式下,标题应填满整个页面,但在双栏模式下,标题应仅填满栏的宽度。

类似这样的事情几乎可以奏效:

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}

\newcommand{\solidheading}[2][blue]{
  \sffamily\colorbox{#1}{\bfseries\textcolor{white}{#2}\hspace{0.6\linewidth}}
}

\begin{document}

\onecolumn

\solidheading{Page wide heading}

\lipsum

\twocolumn

\solidheading{Column wide heading}

\lipsum

\solidheading{Another column wide heading}

\lipsum


\end{document}

但是在环境中标题宽度有点太宽\twocolumn,在环境中标题宽度有点太窄\onecolumn

任何建议都将不胜感激。

更新

经过一番挣扎之后,我意识到自己很傻,并给文本添加了线宽。

因此改变这一行:

\sffamily\colorbox{#1}{\bfseries\textcolor{white}{#2}\hspace{0.6\linewidth}}

对此:

\noindent\sffamily\colorbox{#1}{\makebox[1.0\linewidth][l]{\bfseries\textcolor{white}{#2}}}

很有帮助,但是双列模式下的以下几行有点乱。所以它还不正确。

答案1

您可以使用\parbox宽度为

\dimexpr\columnwidth-2\fboxsep\relax

\newcommand{\solidheading}[2][blue]{%
  \noindent\sffamily\colorbox{#1}{\parbox[t]{\dimexpr\columnwidth-2\fboxsep\relax}%
     {\bfseries\textcolor{white}{#2}%
       }}%
       \vskip1ex %% adjust this as suitable
}

也许你应该把\sffamily它放进去\parbox

代码:

\documentclass{article}
\usepackage{xcolor}
\usepackage{kantlipsum}

\newcommand{\solidheading}[2][blue]{%
  \noindent\sffamily\colorbox{#1}{\parbox[t]{\dimexpr\columnwidth-2\fboxsep\relax}%
     {\bfseries\textcolor{white}{#2}%
       }}%
       \vskip1ex %% adjust this as suitable
}

\begin{document}

\onecolumn

\solidheading{Page wide heading}

\kant

\twocolumn

\solidheading{Column wide heading}

\kant

\solidheading{Another column wide heading}

\kant


\end{document}

在此处输入图片描述

在此处输入图片描述

相关内容