Re: 索引ページ番号の重複(1 と \textbf{1})

名前: .
日時: 2010-02-12 20:26:29
IPアドレス: 59.134.169.*

>>54469 反応がないようですね. # 実際,私自身,開発者でもなんでもなく,また,ソースコードなどを調べるほどの # 気力はない(つまり仕様を知るわけでもなく,わざわざ調べ出してくるほど # お節介でもない)ので静観していましたし. とりあえず,ユーザの立場からいい加減なことを言えば, 件の処理のされ方は(仕様かどうかは知らないが)そういうものだと思うのが妥当 ではないでしょうか. 実際,「あるひとつのの索引項目が,同じページで,相異なる書式指定をもって 複数回索引に拾われた」場合(「無指定」というのもひとつの書式とみなします), 「どの書式指定のものを残し,どの書式指定のものは省略するのか」の選択は 一律にソフトウェア側でやるようなことではないでしょうから. # さらには,「書式指定の取捨選択の基準」自体が索引項目ごとに異なるという # 場合すら考えられます. もっとも,「『無指定』のものと別の書式指定のものが両方現れる場合には, 『無指定』のもののみ省略」くらいの処理でしたら,次のサンプルのような ことができます. %%% 後に示すサンプルファイルの索引は, %%% 次の内容をもった ist ファイルを用いて作成してください. delim_0 "\\indexentrysep " delim_1 "\\indexentrysep " delim_2 "\\indexentrysep " delim_t "\\indexentrystop " delim_n "\\indexentrydelim " encap_prefix "\\pageformat{" encap_infix "}{" encap_suffix "}" %%% サンプル(ind ファイルの作成時には,上記の ist ファイルを使用) \documentclass{article} \usepackage{makeidx} \makeindex \makeatletter \def\indexentrysep#1\indexentrystop{% \nobreak\dotfill \let\@curr@page\@empty \let\@format@list\@empty \def\@indexentrydelim{\def\@indexentrydelim{\indexentrydelim}}% \@index@format@pages#1\indexentrydelim\@nil\indexentrydelim} \def\@index@format@pages#1\indexentrydelim{% \def\@tempa{#1}% \ifx\@tempa\@nnil \ifx\@curr@page\@empty\else \@index@write@curr@page \fi \else \@index@format@pages@check@format#1\pageformat{}{}\@nil \ifx\@temppage\@curr@page \ifx\@curr@format\@empty\else \@tempswatrue \def\@index@elt##1{% \def\@tempa{##1}% \ifx\@tempa\@curr@format \@tempswafalse \fi}% \@format@list \if@tempswa \toks@\expandafter{\@curr@format}% \ifx\@format@list\@empty \edef\@format@list{\noexpand\@index@elt{\the\toks@}}% \else \@temptokena\expandafter{\@format@list}% \edef\@format@list{% \the\@temptokena \noexpand\@index@elt{\the\toks@}}% \fi \fi \fi \else \ifx\@curr@page\@empty\else \@index@write@curr@page \fi \let\@curr@page\@temppage \ifx\@curr@format\@empty \let\@format@list\@empty \else \toks@\expandafter{\@curr@format}% \edef\@format@list{\noexpand\@index@elt{\the\toks@}}% \fi \fi \expandafter\@index@format@pages \fi} \def\@index@format@pages@check@format#1\pageformat#2#3#4\@nil{% \def\@curr@format{#2}% \ifx\@curr@format\@empty \def\@temppage{#1}% \else \def\@temppage{#3}% \fi} \def\@index@write@curr@page{% \ifx\@format@list\@empty \@indexentrydelim \@curr@page \else \def\@index@elt##1{% \@indexentrydelim \@nameuse{##1}{\@curr@page}}% \@format@list \fi} \def\indexentrydelim{, } \def\indexentrystop{} \def\pageformat#1{\csname #1\endcsname} \makeatother \begin{document} This is a meaningless sample \LaTeX\index{LaTeX@\LaTeX}\index{LaTeX@\LaTeX|textbf} document. \newpage This is a meaningless sample \LaTeX\index{LaTeX@\LaTeX|textbf}\index{LaTeX@\LaTeX} document. \newpage This is a meaningless sample \LaTeX\index{LaTeX@\LaTeX|textbf}\index{LaTeX@\LaTeX}\index{LaTeX@\LaTeX|textit} document. \newpage This is a meaningless sample \LaTeX\index{LaTeX@\LaTeX} document. \printindex \end{document}

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)