我需要一些建议,如何为包含单栏和双栏页面的文档创建一致的实心标题样式。在单栏模式下,标题应填满整个页面,但在双栏模式下,标题应仅填满栏的宽度。
类似这样的事情几乎可以奏效:
\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}