答案1
如何将一个简单的\raisebox
包裹在一个宏中,同时考虑\itemsep
和\parsep
值(感谢外接限制,我已将其更改为\glueexpr
,因为所有涉及的长度都是胶水,而不是普通长度!)
\documentclass{article}
\usepackage{enumitem}
\newcommand{\raisecontent}[1]{%
\raisebox{\glueexpr\baselineskip/2+\parsep/2+\itemsep/2+\lineskip/2}[\ht\strutbox][\ht\strutbox]{#1}%
}
\begin{document}
\begin{enumerate}
\item $Y^2 - 1 = 0$
\item $Y^2 + 1 = 0$ \raisecontent{\quad (text)}
\end{enumerate}
\begin{enumerate}[itemsep=40pt]
\item $Y^2 - 1 = 0$
\item $Y^2 + 1 = 0$ \raisecontent{\quad (text)}
\end{enumerate}
\end{document}
答案2
另一种解决方案基于tabularx
和listliketab
,它模拟表内的列表环境:
\documentclass{article}
\usepackage{tabularx, listliketab, multirow}
\begin{document}
\storestyleof{enumerate}
\begin{listliketab}
\newcounter{tabenum}\setcounter{tabenum}{0}
\newcommand{\tabitem}{\addtocounter{tabenum}{1}\thetabenum.}
\noindent\begin{tabularx}{\linewidth}{@{}L l@{\quad}X@{}}
\tabitem & $Y^2 - 1 = 0$ & \multirow{2}{=}{(Text)}\\
\tabitem & $Y^2 + 1 = 0$
\end{tabularx}
\end{listliketab}
\end{document}