mendexの-s オプションの使い方 特に2つある場合

mendexの-s オプションの使い方 特に2つある場合

- 古島 健太 の投稿
返信数: 21
mendexの-s オプションがうまくいかないのです.すみませんが教えてください。 TeXworksでやってます. Windows10 経験したこと; タイプセットはpLaTeX(ptex2pdf) documentclassは \documentclass[12pt,b5paper,dvipdfmx]{jsbook} でやってます. 2つの.istファイルを以下のように作りました. %%%%%%%%%%%%%% MYINDEX.IST %%%%%%%%%%%%%%%%%%%%%%%% delim_0 " \\dotfill\\ " delim_1 " \\dotfill\\ " delim_2 " \\dotfill\\ " lethead_flag 1 letter_head 2 lethead_prefix "\n\\centerline{\\gtfamily $\\bigstar$" lethead_suffix "行}\\par\\nobreak" %%%%%%%%%%%%%%% MYINDEX頭文字なし.IST %%%%%%%%%%% delim_0 " \\dotfill\\ " delim_1 " \\dotfill\\ " delim_2 " \\dotfill\\ " lethead_flag 0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 要するに索引部分をちょっとカッコ良くしたいのです. DOSコマンドでは他のoptionは一応うまく動いたのです.
古島 健太 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 和田 勇 の投稿
ベタ書きになってしまっていますので、
投稿画面の ウィンドウ の左下に「Moodleオートフォーマット」のプルダウンメニュが見えますか?
見えなければ右下に「高度」の文字をクリックすると現れます。
そこで「プレーンテキストフォーマット」などを選択すると良いかと思います。
なお、投稿後30分ほどは変更や削除などの作業ができます。

まず、うまくゆく DOS コマンドでの方法を教えてください。
その方法を TeXworks の設定に反映させようと思っていますので。

さて、TeXworks でのビルドの操作はどのように行なっていますか?

今回の要件を実現するにはおそらく latexmk 相当を利用して
latex / mendex / latex / latex / dvipdfmx  などとされていると思います。
ですので、
  TeXworks のビルド方法、や
   latexmk 併用であれば、latexmkrc ファイル
の情報も必要になります。

1) TeXworks のビルド方法関連するファイルの情報は以下の二つ

   %USERPROFILE%\.texlive2022\texmf-config\texworks\configuration\tools.ini
   %USERPROFILE%.texlive2022\texmf-config\texworks\TUG\TeXworks.ini

   ※ texlive 同梱の TeXworks を想定しています
   ※ 2022 は texlive のバージョンによって異なります
   ※ 今回は tools.ini だけでも良さそうです

2) latexmk 関連ファイル(存在しない場合もあります)

   %USERPROFILE%\.latexmkrc
  カレントディレクトリの .latexmkrc

※当フォーラムでの添付ファイルは一投稿1ファイルですので、zip などで一つにまとめていただいても良いです。



PS 参考までに

最近 索引 まで作成するドキュメントと格闘中で 私は以下のような方法を利用しています。

ポイントは
 ドキュメントのタイプセット方法を一行目に書いておき、
  llmk でその行を読み込ませ
実行する方法です。
通常は lualatex や pltex2pdf -l などと書き込めば良いのですが、
索引が必要な場合は、私は以下のように書き込んでいます。

a) 対象のメイン .tex の最初の行に以下のような記述をしておきます

   %#! cluttex --engine=platex --max-iterations=4 --makeindex='mendex -c -g -l -r -s jpbase.ist' --output-directory=out

    ※ -max-iterations はデフォルトが 3 なので状況によって調整
    ※ 中間生成ファイルはシステムのテンポラリディレクトリに書き込まれますが
     --output-directory=out とすることで容易にログファイルにアクセスできるようにしています
     なお out ディレクトリは自動では作成しないので事前に作成する必要があります。

b) ビルドは、「 llmk  メイン.tex 」が動作するエントリでビルド

  普段は CLI ベースですが、上記の設定を TeXworks の設定で試したこともあります。
  vscode でも同様のエントリを作成すれば良いと思います。
和田 勇 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 古島 健太 の投稿
和田勇さま
  返信ありがとうございます。
見ているのですがなんだか難しそう.
とりあえずお礼の返信.
和田 勇 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 古島 健太 の投稿
すみませんが教えてください。前と関連するけど新しい疑問なのです.
mendexのことです.
Windows10
platex -kanji=utf8 -synctex=1 教科書.tex
のDOSコマンドでやってます.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1.  mendex -s MYINDEX.ist 教科書.idx
    -s MYINDEX.ist  はTeXworksではどんな具合にやるのですか?
2. Texworksのタイプセット一覧にmendex,upmendexが見えないのです.
MakeIndex , pLaTeX(ptex2pdf)はあります,載せて使いたいのです.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
奥村著,164pageを読み込んではいるのですが.
古島 健太 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 和田 勇 の投稿
その設定方法をお伝えしようとしていましたが、
操作方法がなんとなく分かりましたので、それを元に回答します。

教科書.tex のビルド作業は 
  DOS コマンドでの操作一つ一つを
  「タイプセット」メニュから選んで、順次実行
されていたとしています。それ以外であれば、再度質問してください。

TeX Wiki TeXworks/設定 を参考にした設定画面例を参考にしてください
https://texwiki.texjp.org/?TeXworks%2F%E8%A8%AD%E5%AE%9A

設定した内容は.texlive2022\/texmf-config/texworks/configuration/tools.ini に
記録され、以降タイプセットメニューから利用できます。
前回 「tools.ini」の情報を求めた理由の一つはこれを確認するためです。

   --- tool.ini.backup    2023-02-24 11:33:44.955696100 +0900
    +++ ~\.texlive2022\texmf-config\texworks\configuration\tools.ini
   @@ -111,3 +111,9 @@
    program=upmendex.exe
    arguments=$basename
    showPdf=false
    +
    +[020]
    +name=myMendex
    +program=medex.exe
    +arguments=-s, MYINDEX.ist, $basename
    +showPdf=false

#検証に必要な情報が提供されていないので、 この設定での検証は行なっていません。

この方法では、別の .ist を使う場合、別途登録しなければなりません。

さらにタイプセットメニューから
  「platex] 選んで
  「myMendex」選んで、
  「platex」を最低二回実行
というのが面倒であれば latexmk を利用するようエントリを設定すると
操作が簡単になります。

latexmk の場合、別の .ist を使う場合は
  カレントにそれようの .latexmkrcを設定する
などの対策が必要です。

そんなこんな問題点の解決策として、前回の PS に書いたように
  各ファイルの先頭行に書かれたビルド方法を解釈してくれる llmk
を最近利用するようにしています。
添付 スクリーンショット 2023-02-25 11.07.51.png
和田 勇 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 古島 健太 の投稿
和田勇さま
いま読ませていただきました.ありがとうございます.
これでまた認識が向上するものと思われます.詳しくは次回.
和田 勇 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 和田 勇 の投稿
追加情報
mendex では pdf 作成しないので
左下の「実行後、PDFを表示する」で
アンチェックしていただくというのを忘れていました。
和田 勇 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 古島 健太 の投稿
和田勇さま
お世話になってます.
-s オプションが効いているということでは未だ解決していません.
.texファイルを含む関係書類も見てください.
古島 健太 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 和田 勇 の投稿
◆インストールされた TeXLive について
  tools.ini に ConTeXt MkIV の文字列が散見されていますね。
  ログから見ConTeXt ると W32TEX (*1)だというのはわかるのですが
  参考までにインストーラは何を利用されたか教えてください。

  (*1)W32TEX がダメだとは言いませんが、
    アップデートは基本配布されていませんのでお含みおきを!!

◆ MYINDEX.ist
  \bigstar を利用する場合には、ams 関連のパッケージが必要のようです。

     \usepackage{amsmath,amssymb} % for \bigstar 参照 美文書8版 p107-109

◆tools.ini & TeXworks のメニュー設定
 添付された tools.ini には 2023年 02月 25日(土曜日) 10:03 の回答にあった
 「MakeIndex , pLaTeX(ptex2pdf)あります」とは違うので、別のものななかな?

 以下は、添付された tool.ini の必要な部分を表化したものです。

       メニューに表示されるもの  実行プログラム
    [001] name=ConTeXt MkIV program=mtxrun
    [002] name=ConTeXt MkIV Check program=mtxrun
    [003] name=ConTeXt MkIV Purge program=mtxrun
    [004] name=ConTeXt MkIV Server program=cmd.exe
    [005] name=ConTeXt MkIV Update program=mtxrun
    [006] name=ConTeXt MkIV Make program=mtxrun

  エントリがなければ、私の「2023年 02月 25日(土曜日) 11:30」
  の投稿を参考に、追加設定してください。

  こちらでは、 \usepackage{amsmath,amssymb} を教科書.tex に追記して
  上記の設定を施したのち
    「 pLaTeX(ptex2pdf)」
    「追加した mendex」
    「 pLaTeX(ptex2pdf)」
  として問題なく PDF に索引が表示されています。

  どうしても設定できない場合は。設定画面のスクリーンショットを見せてください。

◆私の最初の回答の PS 以降の llmk 利用について ...
 日本語ファイル名を利用sれているので、提案取り消します。
 理由は ...
   なんとか動かすことはできましたが、いくつか問題があります
   1)日本語ファイル名だとうまくいかないようです(macOS で試しています)
   2)llmk からcluttex 経由でビルドを試みますが以下の問題点があります
     a) ビルド作業は中間ファイル作成ディレクトリに移動して行われる
     b) そのため MYUNDEX.ist をそのディレクトリから見えるようにしてあげないといけない
     →解決方法
      --output-directory=out としておいて  -s ../MYINDEX.ist とすることで参照できるようになります。
 
 
和田 勇 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 古島 健太 の投稿
和田勇さま
スクリーンショットを送ります。myMendex
目的は単に索引が出るだけではなく索引項目とページ数字の間に点線が罫線されることです.dotfill
そもそも.batファイル主要platexを実行するとエラーがでるのです.
添付 スクリーンショット (7).png
古島 健太 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 和田 勇 の投稿
スクリーンショットにはできれば電話番号などが映り込まないように願います。

ログを比較したところ mendex の出力情報が若干異なるのが気にはなります。
以下に示す手順では、途中でエラーになるかもしれないことをお含みいただきますようお願いします。

では、一つづつ解決してゆきましょう
(今回はコマンドプロンプトで手動作業を行い
 索引部分で以下のように「 . . 」が表示されることを確認します)

          ★ も行
   素子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1


提供していただいた 教科書.TEX と追加ですが MYINDEX.IST の修正が必要です。

私の 2023年 02月 26日(日曜日) 00:44 投稿の以下の処置を 教科書.TEX に対して実施しましたか?

   ◆ MYINDEX.ist ← これは説明が悪いですね。(*1)
    \bigstar を利用する場合には、ams 関連のパッケージが必要のようです。

       \usepackage{amsmath,amssymb} % for \bigstar 参照 美文書8版 p107-109

   (*1) MYINDEX..IST で \bigstar を使用したい場合は 教科書.TEX で ams 関連パッケージの
     利用を宣言すること

追加 MYINDEX.IST の修正です。(これにはまって回答が遅れました)
k俺は一見わかりにくいのですが、
ある種のエディタはファイルの最終行を「改行」コードを出力しないものがあります。
このようなファイルの取り扱いが mendex は不得手てなようで、
例え mendex でエラーにならなくても、
次の「 pdf2tex -l 教科書」でエラーになってしまいます。
こうなるとタチの悪い情報が紛れ込んでしまい、
MYINDEX.IST を修正して mendex をやり直してもエラーになってしまうことがあります。

以上から、以下のことをコマンドプロンプトで実行してください
(当方は処理の都合上 Windows Terminal で行なっています)

1) 教科書.TEX に ams 関連のパッケージ使用宣言を書き込んでください
2)MYINDEX.IST の最終行に改行を入れてください
3)中間ファイルを消してください
  とはいえどれが中間ファイルがわからないと思いますので
  以下の簡便な方法で削除が可能です。 
  全部クリアという意味を込めたのでしょう、大文字 -C を利用します。

    latexmk -C 教科書

4)ptex2pdf -l 許可司書
5)mendex -s MYINDEX.IST 教科書
6)ptex2pdf -l 教科書
7)start 教科書.pdf

なお、当方で上記修正を施した上での処理結果を添付しておきます。
ちなみに私は、「https://qiita.com/munepi/items/2e1524859e24b5fb44bc」
『ぼくのかんがえたさいきょうのLaTeX索引スタイルファイル』を参考にして
jpbase.ist を利用しています。
添付 スクリーンショット 2023-02-26 20.00.01.png
和田 勇 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 古島 健太 の投稿
和田勇さま
ありがとうございます.
スクリーンショットを見て感心している所.
早速教えてくれたことを勉強していこうかと思います.
なお,個人情報は出さないようにします.
古島 健太 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 古島 健太 の投稿
ファイル名教科書.texをTest01.texに名前を変更したらうまくいきました.
実行BはTest01.tex
実行Cは教科書.tex
\usepackage{amsmath,amssymb} % for \bigstar 参照 美文書8版 p107-109
の件は修正しましたがこれで良いと思い込んでいます.
w32texはアンインストールした方が良いのですか?
漢字名でいきたいです.
古島 健太 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 和田 勇 の投稿
先に進みたかったのですが、確認してから次に進みたいと思います。

1)ファイル名を変更したら ....

  「うまく行った」という状況が不明なので以下の4つを含むファイルを添付してください。
  「教科書.tex」「Test01.tex」「教科書.log」「Test01.log」

  なお当方の検証は、提供していただいた「教科書.TEX」で実施しています。

2)「実行B」「実行C」とは?なんのことでしょうか?添付ファイルを忘れているのかしら?

  また「実行A」とかはありますか?お手数ですが、何を実施されたか教えてください。

3) W32TEX を使い続けたい ...

  W32TEX だからといって質問拒否することはありませんが、
  特段の理由がなければ私は「TeXlive」に移行してくださいとしかいえない

  念のため、以下情報で判断してくさい。

   https://texwiki.texjp.org/?W32TeX
   W32TeX(配布終了)→ TeX Live に移行してください †

4)漢字のファイル名

  漢字ファイル名でも普通は処理できるのですが、
  エラーになる場合もあることを承知のうえ、運用してください。

  システムロケールを CP932(SJIS) から 65001(UTF-8) に変更しているのかしら?
  以前の回答に添付された pdf ファイル名が文字化けするのはこの影響かな?

  以下は、添付された zip ファイルを文字コードを考慮して展開した時、表示されたものの一部です。  

    僕のtools.ini/奥村和田勇/教科書.TEX (254 B)... OK.
    僕のtools.ini/奥村和田勇/主要platex.bat (244 B)... OK.
    僕のtools.ini/奥村和田勇/%e3%83%81E%82%b9%e3%82%af%e3%83%88%e3%83%83%e3%83%97\%e5%a5%a5%e6%9d%91%e5%92%8c%e7%94%b0%e5%8b%87\%e6%95%99%e7%a7%91%e6%9b%b8.pdf (9767 B)... OK
和田 勇 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 古島 健太 の投稿
お世話になっています.
実行B,実行CはDOSのバッチファイルです.編集で見ていただいたら分かるように
2023年 02月 26日(日曜日) 20:26 の終わりの近くをバッチ作業にしたものです.
「教科書.tex」「Test01.tex」「Test01.log」
およびスクリーンショットを含んだフォルダーを圧縮したものを送らせていただきました。
「教科書.log」はlogが出ませんでした.それがスクリーンショットです.これを見ると
ファイル名 「教科書.tex 」を正常に認識していないようです.
「実行A」は作業動作の都合で残ったものです.
実行Bは「Test01.tex」
実行Cは「教科書.tex」
どちらも内容は同じ.
古島 健太 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 和田 勇 の投稿
この再度の質問は、
  コマンドプロンプトで、
  「教科書.TEX」をビルドする「 C.bat」で処理したい.
とのことですね。

本来「教科書」と表示されるべきところが
「謨咏ァ第嶌」のようになってますの
文字コードの問題です。

普段、Windows は使わないので詳しいことは説明できませんが
いくつか対処策はあります。とりあえず三つほど上げてみます。
運用方法によって取捨選択してください。

case 1) C.bat を SJIS に書き換える

     私は「  nkf --overwrite -s C.bat  」で書き換えました
     nkf が利用できなければ chocolety や scoop などで入れてください。

case 2) 汎用的に利用できる例えば any.bat のような bat ファイルを用意し
    「 any.bat 教科書  」のように実行する

latexmk -C %1
ptex2pdf -l %1
mendex -s MYINDEX.IST %1
ptex2pdf -l %1
start %1.pdf

case 3) C.bat を UTF-8 で運用したいならば Windows Terminal を利用

和田 勇 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 古島 健太 の投稿
更に一歩前進,

本来「教科書」と表示されるべきところが
「謨咏ァ第嶌」のようになってますの
文字コードの問題です。

これが解決.ファイル 実行C.bat の文字コードをANSに替えたら文字化けが起こらずもっともな出力が出ました.
今度はTexworksの方です.そもそもタイプセット一覧にmakeindex があっても mendexが見当たりません.
これはどうすると良いのですか?
古島 健太 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 和田 勇 の投稿
◆TeXworks の設定に関して

回答は「追加する」です。

希望するものがなければ、自ら追加しない限り、一歩も前進しません。

以下を参考にして追加設定してみてください。

 私の「2023年 02月 25日(土曜日) 11:30 」投稿や
 TeX Wiki TeXworks/設定 を参考
 https://texwiki.texjp.org/?TeXworks%2F%E8%A8%AD%E5%AE%9A

以前うまくいかなかったのは
教科書.tex に \bigstar 利用のための記述がなかったとと、
MYINDEX.IST のファイル終端コードの問題で、
エラーと判断されていたからですからです。

あるいは C.bat を TeXwork のメニューから利用したいというのでしょうか?

 一つのファイル名しかタイプセットできないし、
 ディレクトリを移動したら C.bat もコピーしなくちゃいけないし
 などなどの推奨できない理由があるので、
 実際に設定はしていませんが、
 原理的には
   適当な名前をつけ
   プログラム名は「cmd.exe」
   引数は「C.bat」
 とするだけで良いでしょう。

もっと汎用的にしたいというのなら、連絡ください。
和田 勇 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 古島 健太 の投稿
mendex は追加しました.
“ 私の「2023年 02月 25日(土曜日) 11:30 」投稿や
 TeX Wiki TeXworks/設定 を参考
 https://texwiki.texjp.org/?TeXworks%2F%E8%A8%AD%E5%AE%9A“ 
の指示通りのつもりです.
お聞きしたいのは 固有名詞MYINDEX.IST をどのようにしてTeXworksに伝えるか,です.
そこで編集設定の編集で
適当な名前をつけ >>> Mymendex
   プログラム名は >>>> cmd.exe
   引数は >>> 実行C.bat
ではいけませんか,ファイル 実行C.batの内容は
mendex -s MYINDEX.IST 教科書.tex
です.
ありがとうございました.
古島 健太 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 和田 勇 の投稿
前回説明した通り、汎用性がないので、
  設定されようとしている、ないし、した
方法は、私はお勧めしません。

さて「Mymendex」を選択しても動きませんでしたか?

TeXworks の「ウィンドウ」→「コンソール出力を表示」
でコンソールを表示した状態で操作すれば状況が表示されます。
動かないのであれば、表示された内容をコピペで貼り付けてください。

◆質問「MYINDEX.IST をどのようにしてTeXworksに伝えるか」の回答

CASE1
)追加設定されたであろう「Mymendex」を選ぶ場合は、
C.bat の中身の記述にしたがうだけなので C.bat 次第です。

CASE2)
https://okumuralab.org/tex/mod/forum/discuss.php?d=3541#p21874  の画像ように設定された場合は、「教科書.tex」と同じディレクトリにMYINDEX.IST を配置してください。

理由は以下の通り。
  Texwork は「タイプセットメニューから指示された処理」を
  対象となる「教科書.tex」のあるディレクトリをカレントとして
    「プログラム名」 「引数」 ....
  というコマンドを発行する
古島 健太 への返信

Re: mendexの-s オプションの使い方 特に2つある場合

- 古島 健太 の投稿
他のデータは
添付ファイルで
追って送らせていただきます。
mendexの-s オプションの使い方 特に2つある場合

mendexの-s オプションがうまくいかないのです.すみませんが教えてください。
TeXworksでやってます.
Windows10
経験したこと;
タイプセットはpLaTeX(ptex2pdf)
documentclassは
  \documentclass[12pt,b5paper,dvipdfmx]{jsbook}
でやってます.
2つの.istファイルを以下のように作りました.
%%%%%%%%%%%%%%  MYINDEX.IST  %%%%%%%%%%%%%%%%%%%%%%%%
delim_0 " \\dotfill\\ "
delim_1 " \\dotfill\\ "
delim_2 " \\dotfill\\ "
lethead_flag 1
letter_head 2
lethead_prefix "\n\\centerline{\\gtfamily $\\bigstar$"
lethead_suffix "行}\\par\\nobreak"
%%%%%%%%%%%%%%% MYINDEX頭文字なし.IST %%%%%%%%%%%
delim_0 " \\dotfill\\ "
delim_1 " \\dotfill\\ "
delim_2 " \\dotfill\\ "
lethead_flag 0

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
要するに索引部分をちょっとカッコ良くしたいのです.
DOSコマンドでは他のoptionは一応うまく動いたのです.