仅在两个索引之一中更改条目的字体

仅在两个索引之一中更改条目的字体

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 "

在此处输入图片描述

相关内容