imakeidx
我在学习编程的文档中使用包。我有两个单独的索引:一个用于一般概念,一个用于所有命令、函数、模块等。我使用单独的index_cmd_style.ist
文件来设置第二个索引的布局。我想使用它\ttfamily
来格式化命令索引的每个条目,并将一般索引条目保留为默认值。
我尝试使用\indexsetup{othercode=\ttfamily}
但它改变了两个索引的字体。
如果我使用\index[cmd]{\texttt{while}}
,它会将条目排序在符号。如果我使用\index[cmd]{\ttfamily while}
,它的排序也是这个条目下的符号此外,它还格式化页码。
但是,如果我不使用该index_cmd_style.ist
文件,\index[cmd]{\texttt{while}}
那就成功了!
有人知道如何仍然使用*.ist
文件来格式化布局但更改某个特定索引的每个条目的字体吗?
谢谢你的回答,Sylvain
这是我的 MWE:
\documentclass[a4paper]{article}
\usepackage{imakeidx}
\makeindex[title=General Index]
\makeindex[name=cmd, title=Index of Commands, options= -s index_cmd_style.ist]
\begin{document}
For a loop\index{loop} one can use the \texttt{while}\index[cmd]{while} command.
One could also use \texttt{for}\index[cmd]{\ttfamily for} or \texttt{do \dots{} while}\index[cmd]{\texttt{do \dots{} while}}.
\printindex
\printindex[cmd]
\end{document}
这是我的index_cmd_style.ist
文件内容:
headings_flag 1
heading_prefix "{\\large\\sffamily\\bfseries "
heading_suffix "}\\nopagebreak\n"
delim_0 " \\dotfill "
delim_1 " \\dotfill "
delim_2 " \\dotfill "
答案1
\indexsetup
对所有索引列表进行一般设置,而不是针对特定索引列表。
在我看来,最好改变\item_0
其中的风格.ist
以明确使用\ttffamily
。
\documentclass[a4paper]{article}
\usepackage{imakeidx}
\makeindex[title=General Index]
\makeindex[name=cmd, title=Index of Commands, options= -s index_cmd_style.ist]
\begin{document}
For a loop\index{loop} one can use the \texttt{while}\index[cmd]{while} command.
\index[cmd]{loop}
One could also use \texttt{for}\index[cmd]{for} or \texttt{do \dots{} while}\index[cmd]{do \dots{} while}.
\printindex
\printindex[cmd]
\end{document}
修改的index_cmd_style.ist
headings_flag 1
heading_prefix "{\\large\\sffamily\\bfseries "
heading_suffix "}\\nopagebreak\n"
item_0 "\n \\item \\ttfamily "
delim_0 " \\dotfill "
delim_1 " \\dotfill "
delim_2 " \\dotfill "