\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}[align=parleft]
\item[2.1] An example \dotfill 21
\item[2.2] A longer example like this such that the line wraps down to the next line and the last entry gets wrapped to the next line \dotfill 22
\item[2.31] Another example \dotfill 132
\end{enumerate}
\end{document}
我使用“\dotfill”,但点与文本底部对齐。
答案1
我\cdotfill
为此使用了一个命令:
\documentclass{article}
\usepackage{enumitem}
\makeatletter
\newcommand\cdotfill{%
\leavevmode\cleaders\hb@[email protected]{\hss$\cdot$\hss}\hfill\kern\z@
}
\makeatother
\begin{document}
\begin{enumerate}[align=parleft]
\item[2.1] An example \cdotfill 21
\item[2.2] A longer example like this such that the line wraps down to the next line and the last entry gets wrapped to the next line \ddotfill 22
\item[2.31] Another example \ddotfill 132
\end{enumerate}
\end{document}
输出:
这是你想要的吗?
编辑:稍微解释一下该命令,以便你可以尝试一下:
\leavevmode
确保启用水平模式,因此它不会垂直堆叠框(“离开垂直模式”)\cleaders
表示将重复执行以下语句,直到达到某个跳过位置\hb@xt@
是 TeX 基元的缩写\hbox to
,定义给定长度的水平框(在本例中为.44em
){\hss$\cdot$\hss}
是 hbox 内的对象,其中\hss
是可以占用任意长度的水平空间\hfill
是 的第二个参数\cleaders
。它表示“填充整个左侧空间”,并且由于它是在 的上下文中使用的\cleaders
,因此整个左侧空间会重复用框填充。\kern\z@
确定在数字前添加的空格,其中\z@
是 TeX 原语0pt
(因此当前没有添加空格,\kern
仅表示固定宽度的水平空间。
答案2
基于 Jaytar 的精彩答案,您可能希望避免在右边距换行。
但是,我见过的所有引导点都在基线上。使用这种基于宏的方法,您只需更改 的定义即可更改引导点\toclikeentry
。
\documentclass{article}
\usepackage{enumitem}
\usepackage{etoolbox}
\usepackage{showframe} % just for the example
\let\cdotfill\dotfill
\patchcmd{\cdotfill}
{\hss.\hss}
{\hss\textperiodcentered\hss}
{}{}
\newcommand{\changerightskip}{%
\setlength{\rightskip}{3em}%
\setlength{\parfillskip}{-3em}%
}
\newlist{toclikeI}{enumerate}{1}
\setlist[toclikeI]{align=parleft}
\newenvironment{toclike}{\toclikeI\changerightskip}{\endtoclikeI}
\newcommand{\toclikeentry}[3]{\item[#1]#2\cdotfill#3}
\begin{document}
\begin{toclike}%\changerightskip
\toclikeentry{2.1}{An example}{21}
\toclikeentry{2.2}{%
A longer example like this such that the line
wraps down to the next line and the last entry
gets wrapped to the next line}{22}
\toclikeentry{2.31}{Another example}{132}
\end{toclike}
\end{document}