В моем индексе я хотел бы сгруппировать определенные элементы под именем групповой записи. Поскольку я уже использую три доступных уровня (элемент, подэлемент, подподэлемент), я попытался создать запись без номера страницы. В приведенном ниже примере за "Weird Languages" не должен следовать номер страницы, поскольку он предназначен как заголовок класса того, что следует далее.
\documentclass[12pt,twoside,a4paper,openright]{book}
\usepackage{xunicode}
\usepackage{imakeidx}
\makeindex[name=texts,title=Texts,columns=1,options=-s mystyle -c -l]
\begin{document}
\index[texts]{Script@\string\textbf{Weird Languages}}
3.28\index[texts]{Script!Aramaic!3.28}
5.1\index[texts]{Script!Greek!5.1}
8.1\index[texts]{Script!Demotic!8.1}
\printindex[texts]
\end{document}
На данный момент результат таков:
Как скрыть номер страницы отдельной записи, в данном случае «Странные языки», или как добавить элемент без номера страницы, сохранив при этом обычные номера страниц для других элементов?
решение1
Вот один трюк, который сработал, когда я его использовал.
в преамбуле добавить следующие определения:
\newcommand{\idxnopage}[1]{{}}
\providecommand{\gobble}[1]{{}}
\newcommand{\idxsechead}[1]{\textbf{#1}\gobble}
используйте его следующим образом, вставив соответствующий аргумент сортировки и текст:
\index{<sort argument>@\idxsechead{<header text>} |idxnopage}
Я не смог придумать «комбинированное» определение, которое включало бы \idxnopage
. (возможно, david или egreg смогут улучшить это.)
редактировать:Вот небольшой пример, который создаст описанный выше вывод. Обратите внимание, что важно запустить makeindex
файл .idx
, созданный при первом запуске Latex, а затем снова обработать .tex
файл через Latex, чтобы фактически включить индекс в вывод.
\documentclass{article}
\usepackage{makeidx}
\newcommand{\idxnopage}[1]{{}}
\providecommand{\gobble}[1]{{}}
\newcommand{\idxsechead}[1]{\textbf{#1}\gobble}
\makeindex
\begin{document}
Here is some text\index{some text} that we want indexed.
We also want a ``header'' in the index.
\index{00@\idxsechead{Header} |idxnopage}
\printindex
\end{document}
решение2
Просто для доказательства концепции. Взяв .ind
файл, сгенерированный из файла-примера, приведенного выше, вы имеете:
\begin{theindex}
\item Script
\subitem Aramaic
\subsubitem 3.28, 1
\subitem Demotic
\subsubitem 8.1, 1
\subitem Greek
\subsubitem 5.1, 1
\item \string, \textbf{Weird Languages}{1}
\end{theindex}
Если изменить на:
\begin{theindex}
\item \textbf{Weird Languages}
\item Script
\subitem Aramaic
\subsubitem 3.28, 1
\subitem Demotic
\subsubitem 8.1, 1
\subitem Greek
\subsubitem 5.1, 1
\end{theindex}
и запустите xelatex
еще раз с noautomatic
опциейimakeidx
, вы получите 'Странные языки' выше 'Script' и на том же уровне, но без ссылки на страницу. Для разового редактирования или двух это довольно просто.