mdframed 带标签的盒子外面

mdframed 带标签的盒子外面

我正在寻找与mdframed以下类似的两个盒子:

在此处输入图片描述

第一个框很简单,但我不知道如何在第二个框的左侧放置标签。虚线的位置应固定:特别是,第二条线的位置不应取决于标签“(i)”的长度。我该怎么做?

我尝试使用\llap,但标签被裁剪了。

第一个框的 MWE:

\documentclass{article}

\usepackage[framemethod=TikZ]{mdframed}
\usepackage{lipsum}
\mdfdefinestyle{testframe}{topline=false,rightline=false,bottomline=false,%
innerleftmargin=1em,linecolor=white,%
tikzsetting={draw=black,line width=.5pt,dashed,dash pattern= on 1pt off 3pt} }

\begin{document}

\begin{mdframed}[style=testframe]
\lipsum[3]
\end{mdframed}

\end{document}

答案1

5月31日更新:根据 Marco Daniel 的解决方案修改而成。结合了他对标签的定位,还为标签添加了固定的文本宽度、“右边距”和“跳过下方”。


我自己的解决方案是在'testframe'的样式定义中添加如下内容:

在此处输入图片描述

\documentclass{article}

\usepackage[framemethod=TikZ]{mdframed}
\usepackage{lipsum}
\usetikzlibrary{calc}
\newcommand{\mdfLABEL}[1]{\node[text width=2em,align=right,anchor=north east,%
               outer sep=0pt,inner sep=0pt] at ($ (O|-P)
                    -(\the\mdflength{innerleftmargin},0)
                    -0.5*(\the\mdflength{middlelinewidth},0)
                   - (0,\the\mdflength{innertopmargin})
                   + (0,0.5pt)
                 $) {#1};}

\mdfdefinestyle{testframe}{topline=false,rightline=false,bottomline=false,%
    innerleftmargin=1em,linecolor=white,rightmargin=2em,skipbelow=1em,%
    tikzsetting={draw=black,line width=.5pt,dashed,dash pattern= on 1pt off 3pt},%
    firstextra={\mdfLABEL{(i)}},%
    singleextra={\mdfLABEL{(i)}},%
    secondextra={\mdfLABEL{$\phantom{.}$}},%
    middleextra={\mdfLABEL{$\phantom{.}$}},%
}

\begin{document}

\begin{mdframed}[style=testframe]
\lipsum[3]
\end{mdframed}

\end{document}

请注意,已加载 tikz 库calc来计算标签的坐标。此外,还进行了 +(0,0.5pt) 的手动调整。

相关内容