全部为一行,背景为黑色,文字为白色

全部为一行,背景为黑色,文字为白色

我想要一行黑色背景的文本,文字为白色。这一行是单独的,因此可以作为一个段落。

我希望线条整个宽度都有颜色,而不只是文本有颜色。

该解决方案必须在一个小页面内起作用。

答案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}。这样,输出如下所示

在此处输入图片描述

相关内容