我怎样才能使调整框环境的边距适合文本宽度?

我怎样才能使调整框环境的边距适合文本宽度?

我正在尝试创建一个具有彩色背景的环境。我以两种方式定义了它:

\documentclass{article}

\usepackage[x11names]{xcolor}
\usepackage{adjustbox}
\newsavebox{\savedbox}

\newenvironment{colbox1}[1]
    {
    \begin{adjustbox}{minipage=[c]{\textwidth},margin= 5mm 5mm 5mm 5mm, bgcolor=#1,env=center}
    }
    {
    \end{adjustbox}
    }


\newsavebox{\savedbox}
\newenvironment{colbox2}[1]
    {
    \newcommand\colboxcolor{#1}
    \begin{lrbox}{\savedbox}
    \begin{minipage}[c]{\textwidth}
    }
    {
    \end{minipage}
    \end{lrbox}
    \begin{center}
      \colorbox{\colboxcolor}{\usebox{\savedbox}}
    \end{center}
    }

\begin{document}
Praesent fermentum erat rhoncus commodo feugiat. Etiam ut metus quis ex vehicula pretium. Aliquam erat volutpat. Morbi blandit justo a ex imperdiet finibus. Sed libero urna, efficitur vitae eros sagittis, pulvinar tempor eros. Fusce fermentum eget ante vitae auctor. Donec vitae ante accumsan, pretium urna id, lacinia nunc. Aenean augue felis, pretium eget nisi non, bibendum hendrerit urna. Aenean aliquet tempor augue laoreet posuere. Pellentesque vitae est faucibus, sollicitudin odio in, elementum enim. Maecenas ornare lorem in nunc semper, at malesuada neque eleifend. Sed non ante tempus, congue nibh ac, finibus ipsum. Nunc quis pretium elit, a faucibus metus.

\begin{colbox1}{Cornsilk2}
    Pellentesque vitae est faucibus, sollicitudin odio in, elementum enim. Maecenas ornare lorem in nunc semper, at malesuada neque eleifend.
\end{colbox1}

Aliquam erat volutpat. Morbi blandit justo a ex imperdiet finibus. Sed libero urna, efficitur vitae eros sagittis, pulvinar tempor eros. Fusce fermentum eget ante vitae auctor. Donec vitae ante accumsan, pretium urna id, lacinia nunc. Aenean augue felis, pretium eget nisi non.

\begin{colbox2}{Cornsilk2}
    Pellentesque vitae est faucibus, sollicitudin odio in, elementum enim. Maecenas ornare lorem in nunc semper, at malesuada neque eleifend.
\end{colbox2}

\end{document}

我希望框有边距并适合文本宽度。在 中colbox1,如果我写入0.8\textwidth,我会得到一个不大于文本宽度的框。但是我想让彩色背景的宽度与文本的宽度完全相同。(如果有人知道创建此类框的具体方法,我也很想知道。)

参见此打印图像: pdflatex 输出

答案1

使用tcolorbox无框架和sharp corners(可调边距的 2 号):

盒子

\documentclass{article}

\usepackage[x11names]{xcolor}
\usepackage[most]{tcolorbox}

\newtcolorbox{colbox}[1]{colback=#1,colframe=#1,sharp corners}
\newtcolorbox{colbox2}[1]{colback=#1,colframe=#1,left=5mm,right=5mm,top=5mm,bottom=5mm,sharp corners}

\begin{document}
Praesent fermentum erat rhoncus commodo feugiat. Etiam ut metus quis ex vehicula pretium. Aliquam erat volutpat. Morbi blandit justo a ex imperdiet finibus. Sed libero urna, efficitur vitae eros sagittis, pulvinar tempor eros. Fusce fermentum eget ante vitae auctor. Donec vitae ante accumsan, pretium urna id, lacinia nunc. Aenean augue felis, pretium eget nisi non, bibendum hendrerit urna. Aenean aliquet tempor augue laoreet posuere. Pellentesque vitae est faucibus, sollicitudin odio in, elementum enim. Maecenas ornare lorem in nunc semper, at malesuada neque eleifend. Sed non ante tempus, congue nibh ac, finibus ipsum. Nunc quis pretium elit, a faucibus metus.

\begin{colbox}{Cornsilk2}
    Pellentesque vitae est faucibus, sollicitudin odio in, elementum enim. Maecenas ornare lorem in nunc semper, at malesuada neque eleifend.
\end{colbox}

Aliquam erat volutpat. Morbi blandit justo a ex imperdiet finibus. Sed libero urna, efficitur vitae eros sagittis, pulvinar tempor eros. Fusce fermentum eget ante vitae auctor. Donec vitae ante accumsan, pretium urna id, lacinia nunc. Aenean augue felis, pretium eget nisi non.

\begin{colbox2}{Cornsilk2}
    Pellentesque vitae est faucibus, sollicitudin odio in, elementum enim. Maecenas ornare lorem in nunc semper, at malesuada neque eleifend.
\end{colbox2}

\end{document}

答案2

如果我理解正确的话,那么您只需要通过左右边距减少小页面宽度,即使用\textwidth-10mm而不是\textwidth

\documentclass{article}

\usepackage[x11names]{xcolor}
\usepackage{lipsum}% for example text
\usepackage{adjustbox}

\newenvironment{colbox1}[1]
    {%
    \begin{adjustbox}{minipage=[c]{\textwidth-10mm},margin= 5mm 5mm 5mm 5mm, bgcolor={#1},env=center}%
    }
    {%
    \end{adjustbox}%
    }

\begin{document}
\lipsum[1]
\begin{colbox1}{Cornsilk2}
    Pellentesque vitae est faucibus, sollicitudin odio in, elementum enim. Maecenas ornare lorem in nunc semper, at malesuada neque eleifend.
\end{colbox1}
\lipsum[2]

\end{document}

截屏

相关内容