改变引用文本的背景颜色的最简单、最规范的方法是什么?

改变引用文本的背景颜色的最简单、最规范的方法是什么?

本网站中有很多关于更改引用文本背景颜色的问题,但我对大量不同的方法感到困惑和沮丧,每种方法都使用不同的附加包。我无法相信如此常见且概念简单的任务竟然没有一个基本的、规范的解决方案。(当然,这种解决方案可能不适用于特定情况,但只有在这种情况下我才会考虑引入专门的工具。)

基本上,我正在寻找外观类似的东西

此效果(但没有花哨的边框,只有背景颜色变化)

...或者

this effect (but without the change of font or foreground color, just the background color change)

...或者最好介于两者之间,即后者只是简单的颜色变化,但没有字体的变化

难道“裸 LaTeX”不能提​​供这种方法吗?

答案1

一个基于的简单代码framedquoting可以跨页面跳转:

\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}

在此处输入图片描述

相关内容