在装有 MacTex(最新版)的 Mac(Maverick)上,我可以使用 Texshop 的引擎(B)编译以下(A)MWE,但无法使用 Texmaker 的(C)自定义命令。我搜索了两天,没有找到解决方案:
(A)MWE.tex 用于设置 Biber、索引和命名法(使用 Makeindex)
\listfiles
\documentclass{article}
\usepackage[authordate,backend=biber]{biblatex-chicago}
\usepackage{makeidx}
\usepackage{robustindex}
\makeindex
\usepackage{nomencl}
\makenomenclature
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\printnomenclature
\nomenclature{Alpha}{alpha test}%
Here is \index{some} text \autocite{A01}.
\printbibliography
\printindex
\end{document}
(B)Texshop 的功能引擎:
#!/bin/bash
pdflatex -synctex=1 "$1"
for file in *.idx ; do
makeindex -s *.ist $file
done
for file in *.bcf ; do
biber $file
done
pdflatex -synctex=1 "$1"
for file in *.nlo ; do
bfname=$(dirname "$1")/"`basename "$1" .tex`"
makeindex "$bfname".nlo -s nomencl.ist -o "$bfname".nls
done
pdflatex -synctex=1 "$1"
(C)Texmaker 的命令不起作用(注意:my_index_style.ist 与 mwe.tex 位于工作目录中)
"/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode|"/usr/texbin/biber" %|"/usr/texbin/makeindex" %.idx -s my_index_style.ist|"/usr/texbin/makeindex" %.nlo -s nomencl.ist -o %.nls|"/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode|"/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode|open %.pdf
结果是
Input index file MWE.idx not found. Usage: makeindex [-ilqrcgLT] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 ...]
Process exited with error(s)
(D)当然,我尝试在 Texmaker 中单独运行命令:
"/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode %.tex
作品
a."/usr/texbin/biber" %
似乎 100 次中有 99 次它都会冻结 Texmaker(看到一个带有两个白色和两个黑色四分之一圆的圆圈?!),所以我需要killall texmaker
。
b."/usr/texbin/makeindex" %.idx -s index_style_wenger.ist
进程正常退出(第一次运行 pdflatex 后) c."/usr/texbin/makeindex" %.nlo -s nomencl.ist -o %.nls
进程正常退出(第一次运行 pdflatex 后)
有人能帮忙吗?我想使用 Texmaker,因为它有更好的功能来处理大型多文件项目。
更新:正如下面的评论所建议的,我尝试过:
"/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode && “/usr/texbin/biber" % && “/usr/texbin/makeindex" %.idx -s index_style_wenger.ist && “/usr/texbin/makeindex" %.nlo -s nomencl.ist -o %.nls && “/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode| && “/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode && open %.pdf
导致
Process started
This is makeindex, version 2.15 [TeX Live 2013] (kpathsea + Thai support). Scanning style file ./index_style_wenger.ist.....
.....done (10 attributes redefined, 2 ignored). Scanning input file MWE.idx....done (1 entries accepted, 0 rejected). Sorting entries...done (0 comparisons). Generating output file MWE.ind....done (6 lines written, 0 warnings). Output written in MWE.ind. Transcript written in MWE.ilg.
Process exited normally
但最终参考书目和索引都可以,但没有显示命名法。
答案1
这不是一个直接的答案,而是一种与您的方法相当且更易于管理的方法。
添加 Texmaker 用户命令
arara -v %.tex
并在文档中添加前缀
% arara: pdflatex
% arara: makeindex: { style: index_style_wenger.ist }
% arara: nomencl
% arara: biber
% arara: pdflatex
% arara: pdflatex: { synctex: yes }
\documentclass{article}
运行arara
而不是pdflatex
将执行与您尝试传递给单个工具的命令序列完全相同的命令序列。
您的优点是,为了不运行所有这些命令,您只需禁用一个或多个命令,这是通过在!
前导 后添加 来获得的%
。
这需要 Java,如果您尚未安装它,系统将提示您安装。