![改变引用文本的背景颜色的最简单、最规范的方法是什么?](https://linux22.com/image/377539/%E6%94%B9%E5%8F%98%E5%BC%95%E7%94%A8%E6%96%87%E6%9C%AC%E7%9A%84%E8%83%8C%E6%99%AF%E9%A2%9C%E8%89%B2%E7%9A%84%E6%9C%80%E7%AE%80%E5%8D%95%E3%80%81%E6%9C%80%E8%A7%84%E8%8C%83%E7%9A%84%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
本网站中有很多关于更改引用文本背景颜色的问题,但我对大量不同的方法感到困惑和沮丧,每种方法都使用不同的附加包。我无法相信如此常见且概念简单的任务竟然没有一个基本的、规范的解决方案。(当然,这种解决方案可能不适用于特定情况,但只有在这种情况下我才会考虑引入专门的工具。)
基本上,我正在寻找外观类似的东西
此效果(但没有花哨的边框,只有背景颜色变化)
...或者
this effect (but without the change of font or foreground color, just the background color change)
...或者最好介于两者之间,即后者只是简单的颜色变化,但没有字体的变化。
难道“裸 LaTeX”不能提供这种方法吗?
答案1
一个基于的简单代码framed
,quoting
可以跨页面跳转:
\documentclass{article}
\usepackage[x11names]{xcolor}
\usepackage{framed}
\usepackage{quoting}
\colorlet{shadecolor}{LavenderBlush2}
\usepackage{lipsum}
\newenvironment{shadedquotation}
{\begin{shaded*}
\quoting[leftmargin=0pt, vskip=0pt]
}
{\endquoting
\end{shaded*}
}
\begin{document}
\lipsum*[1-4]
\begin{shadedquotation}
\lipsum*[5-6]
\end{shadedquotation}
\lipsum*[7-10]
\end{document}
答案2
颜色支持需求xcolor
(或者仅仅是color
)。
\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum} % for mock text
\newsavebox{\coloredquotationbox}
\newenvironment{coloredquotation}
{%
\begin{trivlist}
\begin{lrbox}{\coloredquotationbox}
\begin{minipage}{\dimexpr\linewidth-2\fboxsep}
}
{%
\end{minipage}
\end{lrbox}
\item\relax
\parbox{\linewidth}{
\begingroup
\color[RGB]{224,215,188}%
\hrule
\color[RGB]{249,245,233}%
\hrule
\color[RGB]{224,215,188}%
\hrule
\endgroup
\colorbox[RGB]{249,245,233}{\usebox{\coloredquotationbox}}\par\nointerlineskip
\begingroup
\color[RGB]{224,215,188}%
\hrule
\color[RGB]{249,245,233}%
\hrule
\color[RGB]{224,215,188}%
\hrule
\endgroup
}
\end{trivlist}
}
\begin{document}
\lipsum*[3]
\begin{coloredquotation}
\lipsum*[4]
\end{coloredquotation}
\lipsum*[5]
\end{document}
答案3
tcolorbox
缺少一个(几乎不是规范的?)示例。
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\definecolor{linequote}{RGB}{224,215,188}
\definecolor{backquote}{RGB}{249,245,233}
\newtcolorbox{myquote}{%
enhanced, breakable,
size=fbox,
frame hidden, boxrule=0pt,
sharp corners,
colback=backquote,
borderline horizontal={.5pt}{0pt}{linequote},
borderline horizontal={.5pt}{1pt}{linequote}
}
%% Important!!
%% Use ! before "O{}" with xparse 2018-05-12
%% See: https://tex.stackexchange.com/q/434928/1952
\NewTCBListing{mycode}{ !O{} }{%
enhanced, breakable,
size=fbox,
frame hidden, boxrule=0pt,
sharp corners,
colback=gray!30,
listing only,
listing options={%
style=tcblatex,
keywordstyle=\color{brown!70!black},
texcsstyle=*\color{brown!70!black}
},
#1}
\listfiles
\begin{document}
\lipsum[1]
\begin{myquote}
\lipsum[2]
\end{myquote}
\begin{mycode}
\documentclass{article}
\begin{document}
Hello
\end{document}
\end{mycode}
\end{document}
更新最小默认版本带有一个可选参数来更改任何内容。
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\definecolor{linequote}{RGB}{224,215,188}
\definecolor{backquote}{RGB}{249,245,233}
\newtcolorbox{myquote}[1][]{%
enhanced, breakable,
size=minimal,
frame hidden, boxrule=0pt,
sharp corners,
colback=backquote,
#1
}
\begin{document}
\lipsum[2]
\begin{myquote}
\lipsum[2]
\end{myquote}
\begin{myquote}[colback=red!30, size=small]
\lipsum[2]
\end{myquote}
\end{document}