我正在使用来自“The Legrand Orange Book”的模板(tex 文件的名称是 main.tex),作者有一个非常漂亮的模板,如下所示:
但是,使用 WinEdt 的“制作索引”后,我的索引就变得很单调,没有像上面那样的颜色。他在模板中提到要运行:
makeindex main.idx -s StyleInd.ist
从命令行。我如何在我的文档中实现此索引模板。在他可用的文件夹中,他已经有 .idx 和 ind 文件。但每当我运行 WinEdt 的“制作索引”时,它都会被覆盖,看起来像:
我怎样才能使 WinEdt 中的索引看起来像上面的第一张图片?
答案1
我找到了一个版本的样式文件MyStyle.ist
这里:
delim_0 "\\dotfill\ "
delim_1 "\\dotfill\ "
headings_flag 1
heading_prefix "\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{" heading_suffix "}}};\\vspace*{0.2cm}\\nopagebreak\n"
它使用来自其他包的命令和 color ocre
。以下示例使用包imakeidx
来生成索引,因为问题标有同名的标签。
完整示例:
\documentclass{article}
% Setup for MyStyle.ist
\usepackage{calc}
\usepackage{xcolor}
\definecolor{ocre}{HTML}{F16723}
\usepackage{tikz}
\usepackage{imakeidx}
\makeindex[options=-s MyStyle.ist]
\begin{document}
% Some empty pages for generating the index entries
\setcounter{page}{6}\index{Citation}\null\newpage
\index{Definitions}\null\newpage
\index{Examples!Equation and Text}\index{Corollaries}\null\newpage
\index{Examples!Paragraph of Text}\null\newpage
% Index
\begingroup
% \fbox* settings to fix the code in MyStyle.ist
\setlength{\fboxsep}{5pt}%
\setlength{\fboxrule}{0pt}%
\printindex
\endgroup
\end{document}
变化
如果 makeindex 的样式文件是针对某个项目的,那么样式文件可以以 TeX 文件的名称保存,但使用扩展名mst
( \jobname.mst
)。如果 makeindex 自动加载这样的文件,则无需通过选项指定样式文件(参见上文:-s MyStyle.ist
)。
环境filecontents
可用于将样式文件的内容放入 TeX 文件中。如果文件不存在,则写入,但不会更新。如果filecontents
加载了包,则文件总是书面的,即使它存在。
我不会使用复杂的 TeX 代码,而是使用可以在 TeX 文件中定义的标记命令。
完整示例,对样式代码进行了一些更改:
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.mst}
delim_0 "\\IndexDotfill "
delim_1 "\\IndexDotfill "
headings_flag 1
heading_prefix " \\IndexHeading{"
heading_suffix "}\n"
\end{filecontents*}
\documentclass{article}
% Setup for MyStyle.ist
\usepackage{xcolor}
\definecolor{ocre}{HTML}{F16723}
\usepackage{tikz}
\newcommand*{\IndexDotfill}{%
\nobreak\dotfill\ \nobreak
}
\renewcommand*{\indexspace}{%
\par
\vspace{25pt plus 6pt minus 4pt}%
}
\newcommand*{\IndexHeading}[1]{%
\tikz\node[
rounded corners=5pt,
draw=ocre,
fill=ocre!10,
line width=1pt,
inner sep=5pt,
align=center,
font=\sffamily\bfseries\large,
minimum width=\linewidth-\pgflinewidth,
] {#1};%
\nopagebreak
\par
\vspace{2mm}%
}
\usepackage{imakeidx}
\makeindex
\begin{document}
% Some empty pages for generating the index entries
\setcounter{page}{6}\index{Citation}\null\newpage
\index{Definitions}\null\newpage
\index{Examples!Equation and Text}\index{Corollaries}\null\newpage
\index{Examples!Paragraph of Text}\null\newpage
% Index
\printindex
\end{document}
答案2
makeindex
只是为了让您知道如何在 WinEdt的命令行中动态添加其他选项。
打开“执行模式”对话框(选项菜单),并为 MakeIndex 应用程序选择“现场输入额外开关”选项
在编译时,系统会提示你插入额外选项并输入-s StyleInd.ist
如果您想永久添加它,请-s StyleInd.ist
在“开关”字段中输入