考虑以下代码/图片:
\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\begin{document}
\noindent
\begin{tabular}{@{}p{2.62cm}@{}p{9.5cm}@{}}
$\varliminf,\varlimsup$ & test test test test test test test test test test test \dotfill 123\\
$\varliminf,\varlimsup$ & test test test test test test test test test test test test \dotfill 123\\
$\varliminf,\varlimsup$ & test test test test test test test test test test test test test \dotfill 123\\
$\varliminf,\varlimsup$ & test test test test test test test test test test test test test test \dotfill 123\\
$\varliminf,\varlimsup$ & test test test test test test test test test test test test test test test \dotfill 123\\
$\liminf,\limsup$ & idem \dotfill 123 \\
\end{tabular}
\end{document}
我对第 6 项中的第 3 项和第 4 项不满意:第 3 项中数字前的空格太少(用点填充!),第 4 项中缺少点。我尝试进行调整这个帖子,但没有成功。我只是不明白它是如何工作的。
\zdotfill
不应引入未填充空间(未填充=没有点),它应该只有 1cm 的最小长度(用点填充),其他一切都应该按照\dotfill
。
错误代码:
\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\newcommand{\zdotfill}{\hskip 1cm plus 1fill\dotfill}
\begin{document}
\noindent
\begin{tabular}{@{}p{2.62cm}@{}p{9.5cm}@{}}
$\varliminf,\varlimsup$ & test test test test test test test test test test test \zdotfill 123\\
$\varliminf,\varlimsup$ & test test test test test test test test test test test test \zdotfill 123\\
$\varliminf,\varlimsup$ & test test test test test test test test test test test test test \zdotfill 123\\
$\varliminf,\varlimsup$ & test test test test test test test test test test test test test test \zdotfill 123\\
$\varliminf,\varlimsup$ & test test test test test test test test test test test test test test test \zdotfill 123\\
$\liminf,\limsup$ & idem \zdotfill 123 \\
\end{tabular}
\end{document}
答案1
你需要:
将 的重新定义限制
\hfill
在 之后立即完成的组内\dotfill
,否则您将破坏\hfill
文档中使用的其他命令(可能是 LaTeX 内部使用的);确保从
\dotfill
您插入的领导者\zdotfill
不构成有效的断点,否则当它们恰好位于行尾时,根据 TeX 的段落中断算法,它们会被丢弃(您所见证的);确保在调用之前没有空格标记
\zdotfill
,否则这又是一个可能的断点,而断点恰好出现在您不想要的位置。
我将重命名您的\zdotfill
命令\mindotfill
,以免与来自的命令混淆参考值(准确地说,从它的dotfill
模块来看)。
\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\newcommand{\mindotfill}{%
\nolinebreak
{\def\hfill{\hskip 1cm plus 1fill\relax}%
\dotfill
}%
}
\begin{document}
\noindent
\begin{tabular}{@{}p{2.62cm}@{}p{9.5cm}@{}}
$\varliminf,\varlimsup$ & test test test test test test test test test test test\mindotfill 123\\
$\varliminf,\varlimsup$ & test test test test test test test test test test test test\mindotfill 123\\
$\varliminf,\varlimsup$ & test test test test test test test test test test test test test\mindotfill 123\\
$\varliminf,\varlimsup$ & test test test test test test test test test test test test test test\mindotfill 123\\
$\varliminf,\varlimsup$ & test test test test test test test test test test test test test test test\mindotfill 123\\
$\liminf,\limsup$ & idem\mindotfill 123\\
\end{tabular}
\end{document}
供您参考,\dotfill
定义为:
\dotfill:
macro:->\leavevmode \cleaders \hb@xt@ .44em{\hss .\hss }\hfill \kern \z@
这里所做\mindotfill
的是修改 使用的 〈skip〉\cleaders
,它在本定义中由 生成\hfill
(\hb@xt@ .44em{\hss .\hss }
只生成一个\hbox
包含单个点的合适宽度的字符)。TeX 将前导符同化为粘合符,这就是为什么它们在行末被丢弃的原因。