我正在编写一本手册,使用描述列表列出 GUI 菜单项及其下级参数。当嵌入列表作为上级列表项的描述时,会出现不良效果。嵌入的列表不会出现在下一行。
- 我想知道为什么。
- 我想知道如何修复它。
我尝试使用\null
、、、和之后的上级,\phantom{a}
但无济于事。\vphantom{a}
\hphantom{a}
\item
例子
\documentclass{article}
\usepackage{fontspec}
\usepackage{enumitem}
\usepackage{xparse}
\NewDocumentEnvironment{parameters}{}
{%
\small
\setlist[description]{font=\tt,nosep,labelwidth=20pt,leftmargin=30pt,}
\begin{description}
}%
{%
\end{description}
}
\begin{document}
\begin{description}%<- Superior
\item [Apple]%<- Superior
\begin{parameters}%<- Inferior
\item [Citris] 0%<- Inferior
\item [ExcludeFromFridge] 1%<- Inferior
\item [ConsumeCold]%<- Inferior
\end{parameters}%<- Inferior
\item [Beer]%<- Superior
\begin{parameters}%<- Inferior
\item [Citris] 0%<- Inferior
\item [ExcludeFromFridge] 0%<- Inferior
\item [ConsumeCold] 1%<- Inferior
\end{parameters}%<- Inferior
\end{description}%<- Superior
\end{document}
输出
期望输出
答案1
对于这种情况,您不需要xparse
,并且 的功能enumitem
最适合。我已经parameters
使用\newlist
(of enumitem
) 定义了一个新列表。同样,使用enumitem
提供before
键,我们可以强制换行。我们必须告诉 TeX 更改垂直模式。
\documentclass{article}
\usepackage{fontspec}
\usepackage{enumitem}
\newlist{parameters}{description}{1}
\setlist[parameters]{before={\mbox{}\leavevmode},font=\ttfamily,nosep,labelwidth=20pt,leftmargin=30pt,}
\begin{document}
\begin{description}%<- Superior
\item [Apple]%<- Superior
\begin{parameters}%<- Inferior
\item [Citris] 0%<- Inferior
\item [ExcludeFromFridge] 1%<- Inferior
\item [ConsumeCold]%<- Inferior
\end{parameters}%<- Inferior
\item [Beer]%<- Superior
\begin{parameters}%<- Inferior
\item [Citris] 0%<- Inferior
\item [ExcludeFromFridge] 0%<- Inferior
\item [ConsumeCold] 1%<- Inferior
\end{parameters}%<- Inferior
\end{description}%<- Superior
\end{document}