帮助构建框架环境

帮助构建框架环境

在尝试使用该包创建框架环境时framed,我偶然发现了一个无法解决的问题。我想实现以下目标:

在此处输入图片描述

不幸的是代码如下:

\documentclass[letterpaper]{article}
\usepackage{xcolor}
\usepackage{calc}
\usepackage{framed}

\newenvironment{defn}[1]{%
\def\FrameCommand{\fboxsep=\FrameSep%
{\color{#1}\hfil\hbox to \hsize{\leaders\hrule height 2pt depth 2pt\hfil}\hfil}\colorbox{yellow!20}%
}%
\MakeFramed {\advance\hsize -\width \FrameRestore}}%
{\endMakeFramed}
\begin{document}
\begin{defn}{blue}
test test
\end{defn}

\end{document}

我明白了在此处输入图片描述

问题很明显,框架颜色正确,但水平线放置不正确。我知道应该有某种形式\vskip或排序,但我不知道如何放置。如果有人问过这个问题,请重定向我。我更喜欢使用包framed(但mdframed欢迎使用一个。)

答案1

这很简单mdframed. 您可以使用(例如)

\newmdenv[backgroundcolor=yellow!20,
            leftline=false,
            rightline=false,
            bottomline=false,
            linewidth=3pt,
            linecolor=blue]{myframe}

截屏

如果你想要一个使用可选的第一个参数来指定背景颜色的环境,那么你可以使用,例如,

\newenvironment{defn}[1][yellow!20]{%
\myframe[backgroundcolor=#1]}
{\endmyframe}

完整的 MWE 如下

\documentclass{article}
\usepackage[xcolor]{mdframed}
\usepackage{lipsum}

\newmdenv[backgroundcolor=yellow!20,
            leftline=false,
            rightline=false,
            bottomline=false,
            linewidth=3pt,
            linecolor=blue]{myframe}

\newenvironment{defn}[1][yellow!20]{%
\myframe[backgroundcolor=#1]}
{\endmyframe}
\begin{document}
\begin{defn}[red]
\lipsum[2]
\end{defn}

\lipsum[2]

\begin{myframe}
  \lipsum[1]
\end{myframe}


\end{document}

相关内容