我正在寻找与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) 的手动调整。