![如何限制索引一行中的页码数量?](https://linux22.com/image/431651/%E5%A6%82%E4%BD%95%E9%99%90%E5%88%B6%E7%B4%A2%E5%BC%95%E4%B8%80%E8%A1%8C%E4%B8%AD%E7%9A%84%E9%A1%B5%E7%A0%81%E6%95%B0%E9%87%8F%EF%BC%9F.png)
我正在使用 PDFLaTeX 和 makeidx 为书籍编制索引。一些索引条目有许多关联的页码。第一行包含太多页码,以至于条目名称和第一个页码之间没有空格,在本例中,没有点。参见图片。
我想限制条目数,使得条目名称和第一个数字之间留出最小的空格 - 比如至少 3 个点。或者我想在第一行和下一个换行行之间均匀分布页码。或者任何能提供更多空间的好解决方案。
我尝试减小 IST 文件中的缩进大小,但没有效果。
我的 IST 文件如下所示:
%MakeIndex style style file IndexStyle.ist
% Reduce size of indent from default '16' to '8' - to try prevent page numbers squashing against entry name
indent_length 0
indent_space "\t"
% Big letter for Index headings
heading_prefix "{\\bfseries\\hfil " % Insert in front of letter
heading_suffix "\\hfil}\\nopagebreak\n" % Append after letter
headings_flag 1 % Turn on headings (uppercase)
% Add dots between entry and page numbers
delim_0 "\\dotfill "
delim_1 "\\dotfill "
delim_2 "\\dotfill "
答案1
LaTeX 定义\dotfill
为:
\def\dotfill{%
\leavevmode
\cleaders \hb@xt@ .44em{\hss.\hss}\hfill
\kern\z@}
这里的问题是\hfill
最小宽度可以为 0,这不是您想要的。
因此,您可以更改.ist
文件以使用例如\mydotfill
而不是然后\dotfill
定义\mydotfill
为:
\def\mydotfill{%
\leavevmode
\cleaders \hbox to .44em{\hss.\hss}\hskip 1em plus1fill
\kern 0pt}
这将确保您至少有 1em 的引导点。