diff --git a/doc/NEWS.ja.md b/doc/NEWS.ja.md index 2aabe6c4d..63572b517 100644 --- a/doc/NEWS.ja.md +++ b/doc/NEWS.ja.md @@ -1,3 +1,7 @@ +# Version 2.1.0の主な変更点 + +* config.ymlの``makeindexcommand``と``makeindexoptions``をサポートしました。 + # Version 2.0.0の主な変更点 ## 新機能 diff --git a/doc/NEWS.md b/doc/NEWS.md index aeee1d63c..e403f5017 100644 --- a/doc/NEWS.md +++ b/doc/NEWS.md @@ -1,3 +1,7 @@ +# Version 2.1.0 + +* Add parameters ``makeindexcommand`` and ``makeindexoptions`` in config.yml. + # Version 2.0.0 ## New Features @@ -535,4 +539,3 @@ To support language parameter for syntax highlighting, if you use review-ext.rb * add headline level 5 and 6 (paragraph, subparagraph) * escape all dash * add ``begin{alltt}..\end{alltt}`` into ``\reviewemlist``, ``\reviewlist`` and ``\reviewcmd`` - diff --git a/doc/config.yml.sample b/doc/config.yml.sample index 5550ca1af..934d1c297 100644 --- a/doc/config.yml.sample +++ b/doc/config.yml.sample @@ -217,8 +217,8 @@ epubmaker: # # NCX目次の見出しレベルごとの飾り(配列で設定)。EPUB3ではNCXは作られない # ncxindent: - #- - #- - + #- + #- - # フックは、各段階で介入したいときのプログラムを指定する。自動で適切な引数が渡される # プログラムには実行権限が必要 # ファイル変換処理の前に実行するプログラム。スタイルシートのコンパイルをしたいときなどに利用する。 @@ -289,6 +289,12 @@ epubmaker: # # LaTeX用のdvi変換コマンドのオプションを指定する # dvioptions: "-d 5" +# +# LaTeX用の索引作成コマンドを指定する +# makeindexcommand: "mendex" +# +# LaTeX用の作品作成コマンドのオプションを指定する +# makeindexoptions: "-c -g -U" # 以下のパラメータを有効にするときには、 # pdfmaker: @@ -317,4 +323,3 @@ pdfmaker: # 奥付を作成するか。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる colophon: true # pdfmaker:階層を使うものはここまで - diff --git a/doc/format.ja.md b/doc/format.ja.md index 8a8ded511..026535f7f 100644 --- a/doc/format.ja.md +++ b/doc/format.ja.md @@ -654,6 +654,8 @@ Re:VIEW のタグ範囲を超えて何か特別な行を挿入したい場合、 * `@{識別子}` : インラインの画像を出力します。 * `@{数式}` : インラインの数式を出力します。 * `@{|ビルダ|〜}` : 生の文字列を出力します。 +* `@{〜}` : 文字列を出力し、文字列を索引に登録します。 +* `@{〜}` : 文字列を出力せずに、文字列を索引に登録します。 ## 著者用タグ(プリプロセッサ命令) diff --git a/doc/format.md b/doc/format.md index 3143b2048..04cbdf1e9 100644 --- a/doc/format.md +++ b/doc/format.md @@ -731,6 +731,8 @@ Note: `//raw` and `@` may break structured document easily. @{samplephoto}:: inline image @{a + \alpha}:: TeX inline equation @{|html|ABC}:: inline raw data inline. `\}` is `}` and `\\` is `\`. +@{text}:: print the text and register it to the index +@{text}:: register the text to the index without printing it ``` ## Commands for Authors (pre-processor commands) @@ -850,4 +852,3 @@ Sample layout file(layout.html.erb): ``` - diff --git a/doc/pdfmaker.ja.md b/doc/pdfmaker.ja.md index b739509f4..3e2c03ab1 100644 --- a/doc/pdfmaker.ja.md +++ b/doc/pdfmaker.ja.md @@ -27,6 +27,15 @@ dvicommand: dvipdfmx dvioptions: "-d 5" ``` +## 索引を出力するには + +config.yml で makeindexcommand オプションを指定すると、索引が出力されるようになります。このオプションには "mendex" などの索引作成コマンドを指定してください。コマンドオプションは makeindexoptions オプションで指定できます。 + +```yaml +makeindexcommand: mendex +makeindexoptions: "-c -g -U" +``` + ## 旧来の pLaTeX を使用するには 既存のドキュメントについて、利用しているマクロやパッケージが upLaTeX でうまく動かない、あるいはこれまでと異なる紙面ができてしまう場合は、pLaTeX に戻したいと思うかもしれません。 diff --git a/doc/pdfmaker.md b/doc/pdfmaker.md index 642b1f365..7fd76a345 100644 --- a/doc/pdfmaker.md +++ b/doc/pdfmaker.md @@ -27,6 +27,17 @@ dvicommand: dvipdfmx dvioptions: "-d 5" ``` +## How to print the index + +If you specify `makeindexcommand` option in config.yml, the index will be printed. +Specify a command such as "mendex" to this option. +You can specify the command options by `makeindexoptions` option. + +```yaml +makeindexcommand: mendex +makeindexoptions: "-c -g -U" +``` + ## How to use old pLaTeX You also use pLaTeX with Re:VIEW 2.0. diff --git a/lib/review/pdfmaker.rb b/lib/review/pdfmaker.rb index 7f498a72b..04dfbb6ba 100644 --- a/lib/review/pdfmaker.rb +++ b/lib/review/pdfmaker.rb @@ -183,11 +183,19 @@ def generate_pdf(yamlfile) warn "command configuration is prohibited in safe mode. ignored." else texcommand = @config["texcommand"] if @config["texcommand"] + makeindexcommand = @config["makeindexcommand"] if @config["makeindexcommand"] dvicommand = @config["dvicommand"] if @config["dvicommand"] - dvioptions = @config["dvioptions"] if @config["dvioptions"] texoptions = @config["texoptions"] if @config["texoptions"] + makeindexoptions = @config["makeindexoptions"] if @config["makeindexoptions"] + dvioptions = @config["dvioptions"] if @config["dvioptions"] + end + 2.times do + system_or_raise("#{texcommand} #{texoptions} book.tex") + end + if File.exist?("book.idx") + system_or_raise("#{makeindexcommand} #{makeindexoptions} book.idx") end - 3.times do + 2.times do system_or_raise("#{texcommand} #{texoptions} book.tex") end call_hook("hook_aftertexcompile") @@ -399,4 +407,3 @@ def call_hook(hookname) end end end - diff --git a/templates/latex/layout.tex.erb b/templates/latex/layout.tex.erb index 93a2aed2a..d3c2ba3bd 100644 --- a/templates/latex/layout.tex.erb +++ b/templates/latex/layout.tex.erb @@ -237,6 +237,11 @@ <%= @config["usepackage"] %> <%- end -%> +<%- if @config["makeindexcommand"] -%> +\usepackage{makeidx} +\makeindex +<%- end -%> + \begin{document} \reviewmainfont @@ -308,6 +313,12 @@ <%= @input_files["POSTDEF"] %> <%- end -%> +<%- if @config["makeindexcommand"] -%> +\cleardoublepage +\phantomsection +\printindex +<%- end -%> + %%% profile <%- if @config["profile"] -%> <%= @custom_profilepage %>