使用“intext”选项的两级条目

使用“intext”选项的两级条目

在 ConTeXt 中,如何获取输出由以下代码给出,但是使用 itemize 环境

\starttext
\quad---~Sed ut perspiciatis, unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab
illo inventore veritatis et quasi architecto beatae vitae dicta sunt,
explicabo.\par
\quad---~Sed ut perspiciatis, unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab
illo inventore veritatis et quasi architecto beatae vitae dicta sunt,
explicabo.\par
\quad\quad~---~Sed ut perspiciatis, unde omnis iste natus error sit
voluptatem accusantium doloremque laudantium, totam rem aperiam eaque ipsa,
quae ab illo inventore veritatis et quasi architecto beatae vitae dicta
sunt, explicabo.\par
\quad\quad~---~Sed ut perspiciatis, unde omnis iste natus error sit
voluptatem accusantium doloremque laudantium, totam rem aperiam eaque ipsa,
quae ab illo inventore veritatis et quasi architecto beatae vitae dicta
sunt, explicabo.\par
\quad---~Sed ut perspiciatis, unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab
illo inventore veritatis et quasi architecto beatae vitae dicta sunt,
explicabo.
\stoptext

我尝试过这个,但没有成功(只有当有一个级别的项目化时它才有效):

\definesymbol[emdashone][\quad---~]
\definesymbol[emdashtwo][\quad\quad~---~]
\setupitemize[1][packed, fit, intext][symbol=emdashone]
\setupitemize[2][packed, fit, intext][symbol=emdashtwo]
\starttext
\startitemize
    \item Sed ut perspiciatis, unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab
illo inventore veritatis et quasi architecto beatae vitae dicta sunt,
explicabo.
    \item Sed ut perspiciatis, unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab
illo inventore veritatis et quasi architecto beatae vitae dicta sunt,
explicabo.
    \startitemize
        \item Sed ut perspiciatis, unde omnis iste natus error sit
voluptatem accusantium doloremque laudantium, totam rem aperiam eaque ipsa,
quae ab illo inventore veritatis et quasi architecto beatae vitae dicta
sunt, explicabo.
        \item Sed ut perspiciatis, unde omnis iste natus error sit
voluptatem accusantium doloremque laudantium, totam rem aperiam eaque ipsa,
quae ab illo inventore veritatis et quasi architecto beatae vitae dicta
sunt, explicabo.
    \stopitemize
    \item Sed ut perspiciatis, unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab
illo inventore veritatis et quasi architecto beatae vitae dicta sunt,
explicabo.
\stopitemize
\stoptext

答案1

实现此目的的一种方法是明确设置每个符号的宽度,并将符号右对齐。从视觉上看,这会给出您想要的输出。例如:

\definesymbol[emdash][---]
\setupitemize[1][packed, intext][symbol=emdash, width=2em, itemalign=left, distance=0.5ex]
\setupitemize[2][packed, intext][symbol=emdash, width=3em, itemalign=left, distance=0.5ex]

不幸的是,直觉\setupitemize[1,2][...][...=...]不起作用。

答案2

Aditya 帮助下的完整解决方案:

\definesymbol[emdash][---]
\setupitemize[each][packed, intext][%
    itemalign=left,
    symbol=emdash,
    distance=\spaceamount]
\setupitemize[1][width=2em]
\setupitemize[2][width=\dimexpr 3em + \interwordspace \relax]
\setupitemize[3][width=\dimexpr 4em + 2\interwordspace \relax]
\setupitemize[4][width=\dimexpr 5em + 3\interwordspace \relax]

\starttext
\startitemize
    \item Sed ut perspiciatis, unde omnis iste natus error sit 
voluptatem accusantium doloremque laudantium, totam rem aperiam 
eaque ipsa, quae ab illo inventore veritatis et quasi architecto 
beatae vitae dicta sunt, explicabo.
    \item Sed ut perspiciatis, unde omnis iste natus error sit 
voluptatem accusantium doloremque laudantium, totam rem aperiam 
eaque ipsa, quae ab illo inventore veritatis et quasi architecto 
beatae vitae dicta sunt, explicabo.
    \startitemize
        \item Sed ut perspiciatis, unde omnis iste natus error 
sit voluptatem accusantium doloremque laudantium, totam rem 
aperiam eaque ipsa, quae ab illo inventore veritatis et quasi 
architecto beatae vitae dicta sunt, explicabo.
        \item Sed ut perspiciatis, unde omnis iste natus error 
sit voluptatem accusantium doloremque laudantium, totam rem 
aperiam eaque ipsa, quae ab illo inventore veritatis et quasi 
architecto beatae vitae dicta sunt, explicabo.
        \startitemize
            \item Sed ut perspiciatis, unde omnis iste natus 
error sit voluptatem accusantium doloremque laudantium, totam rem 
aperiam eaque ipsa, quae ab illo inventore veritatis et quasi 
architecto beatae vitae dicta sunt, explicabo.
            \item Sed ut perspiciatis, unde omnis iste natus 
error sit voluptatem accusantium doloremque laudantium, totam rem 
aperiam eaque ipsa, quae ab illo inventore veritatis et quasi 
architecto beatae vitae dicta sunt, explicabo.
            \startitemize
                \item Sed ut perspiciatis, unde omnis iste natus 
error sit voluptatem accusantium doloremque laudantium, totam rem 
aperiam eaque ipsa, quae ab illo inventore veritatis et quasi 
architecto beatae vitae dicta sunt, explicabo.
                \item Sed ut perspiciatis, unde omnis iste natus 
error sit voluptatem accusantium doloremque laudantium, totam rem 
aperiam eaque ipsa, quae ab illo inventore veritatis et quasi 
architecto beatae vitae dicta sunt, explicabo.
            \stopitemize
        \stopitemize
    \stopitemize
\stopitemize
\stoptext

相关内容