R 如何在bookdown中使用zhmakeindex代替makeindex

R 如何在bookdown中使用zhmakeindex代替makeindex,r,r-markdown,chinese-locale,bookdown,R,R Markdown,Chinese Locale,Bookdown,在。我发现在./inst/example中,makeindex对我的书非常有用。我想在我的中添加中文索引,但makeindex不能像预期的那样为中文索引工作 我可以使用zhmakeindex而不是makeindex编译索引,而无需更改tex文件,如中的示例所示 如前所述 bash xelatex-交互=batchmode zhmakeindex.tex bibtex Zhmake指数 zhmakeindex zhmakeindex xelatex-交互=batchmode zhmakeindex

在。我发现在./inst/example中,makeindex对我的书非常有用。我想在我的中添加中文索引,但makeindex不能像预期的那样为中文索引工作

我可以使用
zhmakeindex
而不是
makeindex
编译索引,而无需更改
tex文件
,如中的示例所示

如前所述

bash
xelatex-交互=batchmode zhmakeindex.tex
bibtex Zhmake指数
zhmakeindex zhmakeindex
xelatex-交互=batchmode zhmakeindex.tex
xelatex-交互=batchmode zhmakeindex.tex


如何在bookdown中使用
zhmakeindex
而不是
makeindex
?我找不到写入
makeindex
zhmakeindex
命令的位置。谢谢。

使用当前开发版本的tinytex软件包,您可以在
.Rprofile
中设置全局选项
tinytex.makeindex
,或者在书中设置R代码块:

devtools::install_github('yihui/tinytex')
options(tinytex.makeindex= 'zhmakeindex')
进一步的命令行选项可以通过全局选项
tinytex.makeindex.args
传递,例如

options(tinytex.makeindex.args = c('-z', 'pinyin'))

谢谢@yihui这里是我的解决方案。完整的源代码请参阅,我在pandoc中发现了一个bug

在./latex/template.tex中,我添加了此代码

```乳胶

\usepackage[texindy]{imakeidx}
\makeindex[title=\titleindex,columns=2,intoc=true,columnseprule=true]
\indexsetup{
    othercode={%
        \thispagestyle{main}%
    }
}
```

在./index.Rmd中,为了使用zhmakeindex,我添加了以下代码

```R

```

这是结果


非常感谢。我正在测试,我发现了一些问题,例如如何添加zhmakeindex的选项
-z拼音
等。如果工作正常,我会回来。拼写错误,就像您的源代码一样,应该是
zhmakeindex
而不是
zhmakeidx
,我通过
tinytex.makeindex.args
添加了对进一步选项的支持。请参阅我的最新答案。谢谢你指出错误!我使用了另一个latex包
imakeidx
,它比
makeidx
包更高级,makeindex选项可以添加到tex文件中。只是测试一下。非常感谢你。
options(
    htmltools.dir.version = FALSE, formatR.indent = 2, width = 55, digits = 4, tinytex.makeindex =  zhmakeindex, tinytex.makeindex.args = '-s imakeidx.ist'
)