我想要一行黑色背景的文本,文字为白色。这一行是单独的,因此可以作为一个段落。
我希望线条整个宽度都有颜色,而不只是文本有颜色。
该解决方案必须在一个小页面内起作用。
答案1
您可以使用以下组合\colorbox
:
\documentclass{article}
\usepackage{xcolor}
\usepackage{showframe}
\usepackage{adjustbox}
\newcommand*\mylineI[1]{%
\par\noindent
\colorbox{black}{\makebox[\dimexpr\linewidth-2\fboxsep\relax][l]{\strut\color{white}#1}}%
\par}
\newcommand*\mylineII[1]{%
\par\noindent\adjustbox{bgcolor=black,innercode={\color{white}}{},}%
{\makebox[\linewidth][l]{\strut #1}}%
\par%
}
\begin{document}
\mylineI{Text Text Text Text}
\mylineII{Text Text Text Text}
\end{document}
\myline{Text Text Text Text}
\end{document}
编辑:第二条命令使用包adjustbox
。因此您有一些额外的选择。
当然,代码可以扩展宽度、额外间距和\xspace
。
答案2
这个怎么样?
\colorbox{black}{%
\begin{minipage}[b]{\dimexpr\textwidth-2\fboxsep\relax}
\strut\color{white}hello
\end{minipage}%
}
执行相同操作的新环境是
\setlength\fboxsep{0pt}
\makeatletter\newenvironment{blackbox}
{\noindent\begin{lrbox}{\@tempboxa}\begin{minipage}[b]{\dimexpr\textwidth-2\fboxsep\relax}\strut\color{white}}
{\end{minipage}\end{lrbox}\colorbox{black}{\usebox{\@tempboxa}}}
\makeatother
其结果与
\begin{blackbox}
hello
\end{blackbox}
请注意,如果在它之前使用unless,则会导致框溢出\setlength\fboxsep{0pt}
。这样,输出如下所示