索引の表示場所の変更

索引の表示場所の変更

- sk attack の投稿
返信数: 14
【環境】
ハードウエア: MacBook Air, Apple M2、
OS:macOS Ventura 13.4.1、
TeX: pdfTeX 3.141592653-2.6-1.40.25 (TeX Live 2023)


【ご相談内容】
ご存知の通り、\usepackage{makeidx}や\usepackage{imakeidx}で
索引を作成すると論文の最終ページに表示されます。
これを別ページに挿入することは可能でしょうか?
具体的は序章と2章の間に、論文中で使用される記号の
索引一覧を表示できたらと考えています。
どなたか方法をご存知でした教えて頂けると助かります。
sk attack への返信

Re: 索引の表示場所の変更

- 岩熊 哲夫 の投稿
1章の最後に \printindex と入れるだけじゃ駄目なんでしょうか?
あるいは,索引には,普通の語句の索引と記号の索引との
二種類があって,それを別々のページに出したいということで
しょうか。だとすると,記号の索引を \jobname.idx じゃない
ファイルに出さないといけませんね。ちょっと面倒かな?
岩熊 哲夫 への返信

Re: 索引の表示場所の変更

- sk attack の投稿
ご助言ありがとうございます。

>1章の最後に \printindexと入れるだけじゃ駄目なんでしょうか?

確かに
 目次 1章 索引 2章
の順番になりました。しかし、
 目次 1章(改ページあり)索引(改ページなし)2章
という状態です(添付したsample1.pdf参照)。全て改ページなしにする方法が知りたいです。

\printindexの位置を目次(\tableofcontents)の後かつ1章の前にすると索引は表示されませんでした。ちなみにエラーは表示されませんでした。ご参考までにそのlogのコピーを下にペーストしておきます。

希望は
 目次(改ページなし)索引(改ページなし)1章 2章
とできたらいいなと考えております・・・


----(ここから)----
This is e-upTeX, Version 3.141592653-p4.1.0-u1.29-230214-2.6 (utf8.euc) (TeX Live 2023) (preloaded format=platex 2023.7.14) 15 JUL 2023 19:02
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**sample2.tex
(./sample2.tex
pLaTeX2e <2023-02-14>+1, based on
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-06-30>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/size10.clo
File: size10.clo 2023/05/17 v1.4n Standard LaTeX file (size option)
)
\c@part=\count184
\c@section=\count185
\c@subsection=\count186
\c@subsubsection=\count187
\c@paragraph=\count188
\c@subparagraph=\count189
\c@figure=\count190
\c@table=\count191
\abovecaptionskip=\skip48
\belowcaptionskip=\skip49
\bibindent=\dimen156
)
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/inputenc.sty
Package: inputenc 2021/02/14 v1.3d Input encoding file
\inpenc@prehook=\toks18
\inpenc@posthook=\toks19
)
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/fontenc.sty
Package: fontenc 2021/04/29 v2.0v Standard LaTeX package
)
(/usr/local/texlive/2023/texmf-dist/tex/latex/imakeidx/imakeidx.sty
Package: imakeidx 2016/10/15 v1.3e Package for typesetting indices in a synchro
nous mode

(/usr/local/texlive/2023/texmf-dist/tex/latex/xkeyval/xkeyval.sty
Package: xkeyval 2022/06/16 v2.9 package option processing (HA)

(/usr/local/texlive/2023/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/usr/local/texlive/2023/texmf-dist/tex/generic/xkeyval/xkvutils.tex
\XKV@toks=\toks20
\XKV@tempa@toks=\toks21

(/usr/local/texlive/2023/texmf-dist/tex/generic/xkeyval/keyval.tex))
\XKV@depth=\count192
File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA)
))
(/usr/local/texlive/2023/texmf-dist/tex/generic/iftex/ifxetex.sty
Package: ifxetex 2019/10/25 v0.7 ifxetex legacy package. Use iftex instead.

(/usr/local/texlive/2023/texmf-dist/tex/generic/iftex/iftex.sty
Package: iftex 2022/02/03 v1.0f TeX engine tests
))
(/usr/local/texlive/2023/texmf-dist/tex/generic/iftex/ifluatex.sty
Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead.
)
(/usr/local/texlive/2023/texmf-dist/tex/latex/tools/multicol.sty
Package: multicol 2023/03/30 v1.9f multicolumn formatting (FMi)
\c@tracingmulticols=\count193
\mult@box=\box68
\multicol@leftmargin=\dimen157
\c@unbalance=\count194
\c@collectmore=\count195
\doublecol@number=\count196
\multicoltolerance=\count197
\multicolpretolerance=\count198
\full@width=\dimen158
\page@free=\dimen159
\premulticols=\dimen160
\postmulticols=\dimen161
\multicolsep=\skip50
\multicolbaselineskip=\skip51
\partial@page=\box69
\last@line=\box70
\mc@boxedresult=\box71
\maxbalancingoverflow=\dimen162
\mult@rightbox=\box72
\mult@grightbox=\box73
\mult@firstbox=\box74
\mult@gfirstbox=\box75
\@tempa=\box76
\@tempa=\box77
\@tempa=\box78
\@tempa=\box79
\@tempa=\box80
\@tempa=\box81
\@tempa=\box82
\@tempa=\box83
\@tempa=\box84
\@tempa=\box85
\@tempa=\box86
\@tempa=\box87
\@tempa=\box88
\@tempa=\box89
\@tempa=\box90
\@tempa=\box91
\@tempa=\box92
\@tempa=\box93
\@tempa=\box94
\@tempa=\box95
\@tempa=\box96
\@tempa=\box97
\@tempa=\box98
\@tempa=\box99
\@tempa=\box100
\@tempa=\box101
\@tempa=\box102
\@tempa=\box103
\@tempa=\box104
\@tempa=\box105
\@tempa=\box106
\@tempa=\box107
\@tempa=\box108
\@tempa=\box109
\@tempa=\box110
\@tempa=\box111
\c@minrows=\count199
\c@columnbadness=\count266
\c@finalcolumnbadness=\count267
\last@try=\dimen163
\multicolovershoot=\dimen164
\multicolundershoot=\dimen165
\mult@nat@firstbox=\box112
\colbreak@box=\box113
\mc@col@check@num=\count268
))
\sample2@idxfile=\write3
\openout3 = `sample2.idx'.


Writing index file sample2.idx
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
File: l3backend-dvips.def 2023-04-19 L3 backend support: dvips
\l__pdf_internal_box=\box114
\g__pdf_backend_object_int=\count269
\l__pdf_backend_content_box=\box115
\l__pdf_backend_model_box=\box116
\g__pdf_backend_annotation_int=\count270
\g__pdf_backend_link_int=\count271
\g__pdf_backend_link_sf_int=\count272
)
(./sample2.aux)
\openout1 = `sample2.aux'.

LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for JY1/mc/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for JT1/mc/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <14.4> not available
(Font) Font shape `JT1/gt/m/n' tried instead on input line 10.
LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <14.4> not available
(Font) Font shape `JY1/gt/m/n' tried instead on input line 10.
(./sample2.toc
LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <10> not available
(Font) Font shape `JT1/gt/m/n' tried instead on input line 1.
LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <10> not available
(Font) Font shape `JY1/gt/m/n' tried instead on input line 1.
)
\tf@toc=\write4
\openout4 = `sample2.toc'.

[1

]
runsystem(makeindex -s example_style.ist sample2.idx)...executed safely (allowe
d).

(./sample2.ind) [2

\indexentry{keywords}{2}
\indexentry{Index}{2}
\indexentry{generate}{2}
\indexentry{great}{2}
\indexentry{others}{2}
\indexentry{important}{2}
\indexentry{Index!nested}{2}
\indexentry{section}{2}
\indexentry{keywords!used}{2}
] (./sample2.aux)
***********
pLaTeX2e <2023-02-14>+1, based on
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-06-30>
***********
)
Here is how much of TeX's memory you used:
1339 strings out of 475892
21922 string characters out of 5779632
1911080 words of memory out of 5000000
22624 multiletter control sequences out of 15000+600000
565948 words of font info for 61 fonts, out of 8000000 for 9000
929 hyphenation exceptions out of 8191
57i,5n,65p,260b,172s stack positions out of 10000i,1000n,20000p,200000b,200000s

Output written on sample2.dvi (2 pages, 1036 bytes).
----(ここまで)----

sk attack への返信

Re: 索引の表示場所の変更

- 岩熊 哲夫 の投稿
えっと,僕のシステムは古いので違うかもしれませんが,theindex の定義を変更すればいいだけでは?プリアンブルに

\makeatletter
\renewenvironment{theindex}
{\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
% \twocolumn[\section*{\indexname}]%
\section*{\indexname}%
\@mkboth{\MakeUppercase\indexname}%
{\MakeUppercase\indexname}%
\thispagestyle{plain}\parindent\z@
\parskip\z@ \@plus .3\p@\relax
\columnseprule \z@
\columnsep 35\p@
\let\item\@idxitem}
% {\if@restonecol\onecolumn\else\clearpage\fi}
{}
\makeatother

を入れれば,ご希望通りになりますが,ご質問者の sample1 では索引が二段組じゃないし,2節が改ページ無しになっているので,僕のシステムの article.cls とは違うようです。なので参考まで。ご自分がお使いの article.cls から theindex の定義をコピペして改ページが無いようにすればいいだけです。
岩熊 哲夫 への返信

Re: 索引の表示場所の変更

- 和田 勇 の投稿
岩隈さんのでも良いかと思いますが ...

imakeindex に nonewpage オプションをつけたらと思い、
かつて当フォーラムに叩き台として投稿した百人一首のデータでテストしていましたが思わしい結果は得られず ...悶々...
そもそも「各章毎に索引を作りたい」という要求が出てきたら ...

  この上記の要求があるなら以下を検討してください。

だとするとn回の mendex は非現実的....
章毎に章目次が必要なときは minitoc を使いましたが、類似の索引版はと
「latex chapter miniindex」で検索してしてみました。

https://tex.stackexchange.com/questions/219625/make-list-of-indexed-keywords-for-each-section
Make list of indexed keywords for each section

などが見つかります。試したわけではないのですが、一度検討してみてはいかがでしょうか?
pagebreak 問題は岩隈さんのを組み込めるかと思います。
岩熊 哲夫 への返信

Re: 索引の表示場所の変更

- 和田 勇 の投稿
岩隈さんのでも良いかと思いますが ...

imakeindex に nonewpage オプションをつけたらと思い、
かつて当フォーラムに叩き台として投稿した百人一首のデータでテストしていましたが思わしい結果は得られず ...悶々...
そもそも「各章毎に索引を作りたい」という要求が出てきたら ...

  この上記の要求があるなら以下を検討してください。

だとするとn回の mendex は非現実的....
章毎に章目次が必要なときは minitoc を使いましたが、類似の索引版はと
「latex chapter miniindex」で検索してしてみました。

https://tex.stackexchange.com/questions/219625/make-list-of-indexed-keywords-for-each-section
Make list of indexed keywords for each section

などが見つかります。試したわけではないのですが、一度検討してみてはいかがでしょうか?
mendex の代わりに makeglossaries を利用するようです。

pagebreak 問題は岩隈さんのを組み込めるかと思います。
和田 勇 への返信

Re: 索引の表示場所の変更

- sk attack の投稿
アドバイスありがとうございました。
全て解決し思いとおりになりました。
感謝です。

忘備録として解決方法を具体的に記しておきます:

1)プリアンプルの
 \usepackage{imakeidx}
にオプションをつけて
 \usepackage[nonewpage]{imakeidx}
と変更する

2)索引を挿入したい位置に \printindex を書く

以上
sk attack への返信

Re: 索引の表示場所の変更

- 和田 勇 の投稿
ちょっと前のログを見ると documentclass  は articles でしたね。
僕は他の documentclass も含めてテストしていて、悶々していたにですが ..
多分、articles 以外では、きっと望み通りの結果は得られないと思います。

PS お願い
この種の疑問がある場合は、できればソースを提供してくださいね。
検証環境を想定・作成するのが面倒なので。

PS2
目新しい use package を使うときは DeclareOption をチェックすべし
和田 勇 への返信

Re: 索引の表示場所の変更

- sk attack の投稿
>多分、articles 以外では、きっと望み通りの結果は得られないと思います。

documentclass はarticleの他に amsart, jsarticleでも問題ありませんでした。

>この種の疑問がある場合は、できればソースを提供してくださいね。

そうですね。久しぶりの質問なのでボケてました。参考までに忘備録も兼ねてソースファイルをアップロードしておきます。

sk attack への返信

Re: 索引の表示場所の変更

- 和田 勇 の投稿
>>多分、articles 以外では、きっと望み通りの結果は得られないと思います。

言葉足らずでした。「article系」とした方が適切ですね。

> documentclass はarticleの他に amsart, jsarticleでも問題ありませんでした

添付された sample3.tex ですと、jlreq でも問題はないですね。
内容から、article だと判断しているみたいに思える。

ただし  \chapter などがある  report や book などだと
索引(Alphabetical Index)の前にpagebreake が発生します。
和田 勇 への返信

Re: 索引の表示場所の変更

- sk attack の投稿
ご回答ありがとうございます。

その後、トラブルが発生しました・・・

amsartクラスでimakeidxをつかい索引をつくると、
索引自体は好きなページに表示できたのですが、
全く違うところで問題が発覚しました.amsartクラスでは
通常,2ページ以降のヘッダーには,著者名と論文タイトルの
省略形が交互に現れるはずですが,それがすべて「INDEX」
となってしまいます.参考としてtexソース「sample4.tex」を添付いたします。

お忙しいところすみませんが、またご助言頂けたらと思います。
sk attack への返信

Re: 索引の表示場所の変更

- 和田 勇 の投稿

アメリカ数学会で受理されるか否かは私には分かりませんが、 この手の問題は fancyhdr を利用するのが簡便だと思います。

diff --git a/sample4.tex b/sample4.tex
index ccc1508..3697108 100644
--- a/sample4.tex
+++ b/sample4.tex
@@ -1,5 +1,6 @@
 \documentclass{amsart}
 \usepackage[nonewpage]{imakeidx}
+\usepackage{fancyhdr}

 \makeindex[columns=4, title=Alphabetical Index, options= -s example_style.ist]

@@ -15,6 +16,11 @@

 \printindex

+\pagestyle{fancy}
+\lhead{}\rhead{}
+\renewcommand{\headrulewidth}{0pt}% ヘッダーの下線を消すには必要です。
+\chead[\shorttitle]{\shortauthors}% 著者、タイトル情報源から 逆かもしれない
+
 \section{Introduction}
 In this example, several keywords\index{keywords} will be used which are important and deserve to appear in the Index\index{Index}.
和田 勇 への返信

Re: 索引の表示場所の変更

- sk attack の投稿
解決策をご教示頂き感謝申し上げます。要望を満たすものになりました。

忘備録として出来上がったtexソース「sample6.tex」を添付いたします。
sk attack への返信

Re: 索引の表示場所の変更

- 和田 勇 の投稿

fancyhdr の警告メッセージの抑制

前回 fancyhdr を紹介したときの対処忘れでしたね ... :-(

以下のようなメッセージがページ数分ほど記録されていると思います。 表示内容をみて、警告メッセージを抑制すると良いと思います。

348-Package fancyhdr Warning: \headheight is too small (8.0pt):
349:(fancyhdr)                Make it at least 12.0pt, for example:
350-(fancyhdr)                \setlength{\headheight}{12.0pt}.
351-(fancyhdr)                You might also make \topmargin smaller to compensate:

fancyhdr の宣言場所

現状ご希望通りの動作のようですが、個人的に単に気持ち悪いだけですが ... \shorttitle\shortauthors\title\author で設定されるようなので宣言場所を移動した方が良いと思います。\message{DEBUG \shorttitle } のようなデバッグ行で確認できると思います。

ページコントロールとヘッダーについて

目次の部分が2ページになったとき、2ページ目のヘッダーが表示されないのが気になりますが、おそらく気が付かないのでシカとしても可能かもしれません。 ページの調整はループカウントの増減で試してみてください。

再検証&テストしたソースの差分

diff --git a/sample6.tex b/sample6.tex
index b22e9a8..14b7afa 100644
--- a/sample6.tex
+++ b/sample6.tex
@@ -9,7 +9,7 @@
 \lhead{}\rhead{}
 \renewcommand{\headrulewidth}{0pt}
 \chead[\shorttitle]{\shortauthors}
-
+\setlength{\headheight}{12.0pt}% 改ページ毎に表示される警告メッセージの抑制

 \title[Newtypes]{Pluripotentiality of Newtypes }

@@ -36,5 +36,12 @@ will also show up. Terms in the index can also be nested \index{Index!nested}
 \section{Second section}
 This second section\index{section} may include some special word, and expand the ones already used\index{keywords!used}.

-
+{
+  \section{This is 2nd section} This is 2nd section.
+  \section{This is 3rd section} This is 3rd section.
+  \newcount\mycounter % int mycounter
+  \mycounter=4 \loop\ifnum\mycounter<81 % for-loop as from 4 to n
+  \section{This is {\number\mycounter}th section} This is {\number\mycounter}th section.
+  \advance\mycounter by1\repeat % end for
+}
 \end{document}
和田 勇 への返信

Re: 索引の表示場所の変更

- sk attack の投稿
警告メッセージの抑制方法を教えて頂きありがとうございます。それに加えループカウントの増減方法もおしえて頂き助かります。重ね重ねありがとうございます。