具有自定义边框的自定义框环境

具有自定义边框的自定义框环境

我尝试创建一种自定义数据类型,它有一个简短的 ID、描述和所有者注释。使用minipage无边框的数据类型并不是最佳选择,因为很难看到项目之间的分隔。

我认为使用全边框不太美观。因此,是否可以只使用左边框并获得更好的分离效果?

我想知道实现它的最佳方法是什么(我不一定寻找minipage,任何解决方案都可以)。

\noindent\begin{minipage}\[t\]\[1\totalheight\]\[b\]{1\columnwidth}%
\begin{description}
\item \[{ID}\] 0445ax
\item \[{Description}\] Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Etiam purus urna, placerat non lectus at, blandit venenatis
nibh. In hac habitasse platea dictumst. Vestibulum ante ipsum primis
in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus
malesuada, libero et faucibus varius, nibh lectus fringilla sapien,
in tempor dui metus vitae mauris. 
\item \[{Owner\,Coment}\] Sed cursus consequat enim, eget elementum erat
volutpat in. Nam efficitur felis eget urna cursus vestibulum. Duis
non felis fringilla, tempor massa ut, sagittis nibh. Vivamus nec erat
eget risus tincidunt tristique id eu ex. Suspendisse potenti.
\end{description}
%
\end{minipage}

在此处输入图片描述

答案1

使用更多缩进来排版描述环境。我为此使用了 KOMA-script addmargin 环境。如果您有另一个文档类,可能必须加载 scrextend 包。

\documentclass{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{blindtext, lipsum}

\newcommand{\customdata}[3]{
  \textbf{ID}\hspace{2em} #1
  \begin{addmargin}[1cm]{0pt}
    \begin{description}
    \item[Description] #2
    \item[Owner Comment] #3
    \end{description}
  \end{addmargin}
  \bigskip
  }

\begin{document}

\customdata{0445ax}{\blindtext}{\blindtext}

\customdata{03425ax}{\blindtext}{\blindtext}


\end{document}

编辑

我不明白 OP 所说的边界是什么意思,但也许这会有所帮助:

\documentclass{article}%{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{scrextend}

\newcommand{\lipusm}{%
  Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Etiam purus urna, placerat non lectus at, blandit venenatis
nibh. In hac habitasse platea dictumst. Vestibulum ante ipsum primis
in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus
malesuada, libero et faucibus varius, nibh lectus fringilla sapien,
in tempor dui metus vitae mauris.
}

\newcommand{\customdata}[3]{%
  \rule{1ex}{4ex}~\textbf{ID}\hspace{2em} #1

  \begin{addmargin}[1.2cm]{0pt}
    \begin{description}
    \item[Description] #2
    \item[Owner Comment] #3
    \end{description}
  \end{addmargin}
  \bigskip
  }

\begin{document}

\customdata{0445ax}{\lipusm}{\lipusm}

\customdata{03425ax}{\lipusm}{\lipusm}


\end{document}

图片的图片

答案2

一种可能的解决方案是tcolorbox。它使用已定义的环境mydesc来适应tcolorbox边框。它控制页面之间的间隔。

\documentclass{article}
\usepackage{lipsum}
\usepackage[most]{tcolorbox}

\newenvironment{mydesc}{%
\begin{description}}{\end{description}}

\tcolorboxenvironment{mydesc}{% 
    enhanced, breakable,
    blanker,
    before skip=6pt,
    after skip=6pt,
    left=4mm,
    borderline west={1mm}{0pt}{red}}

\newcommand{\mydata}[3]{
\begin{mydesc}
\item[ID] #1
\item[Description] #2
\item[Owner Comment] #3
\end{mydesc}}

\begin{document}
\lipsum[1]

\mydata{0445ax}{\lipsum[2]}{\lipsum[3]}

\mydata{0445ax}{\lipsum[2]}{\lipsum[3]}

\mydata{0445ax}{\lipsum[2]}{\lipsum[3]}

\mydata{0445ax}{\lipsum[2]}{\lipsum[3]}
\end{document}

在此处输入图片描述

相关内容