我正在读回忆录手册我对第 17.3 节有关词汇表的内容有疑问。我有这个 MWE,我称之为example.tex
\documentclass{memoir}
\makeindex
\makeglossary[acro]
\begin{document}
A term for the index: limit\index{Limit}. Now an entry for the glossary \glossary[acro]{HTML}{HyperText Markup Language}.
\clearpage
\printindex
\clearpage
\renewcommand{\glossaryname}{Acronyms}
\printglossary[acro]
\end{document}
如果我按照手册中的方法在我的计算机上编译它,例如使用以下链
lualatex example.tex
makeindex example.idx
makeindex -s basic.gst -o acro.gls acro.glo
lualatex example.tex
一切顺利,basic.gst
正如回忆录手册中所说:
%%% basic.gst basic makindex glossary style file
%%% Output style parameters
preamble "\\begin{theglossary}"
postamble "\n\\end{theglossary}\n"
item_0 "\n\\glossitem"
delim_0 "{\\memglonum{"
encap_suffix "}}}"
headings_flag 1
heading_prefix "\\doglobookmark{"
heading_suffix "}"
%%% Input style parameters
keyword "\\glossaryentry"
但我有两个问题:(1)如果我想在 overleaf 中编译它,索引可以正确构建,但词汇表无法编译,什么都没有构建。那么有没有办法让回忆录词汇表在 overleaf 中工作?(2)我不确定如何使用编译它arara
。根据手册,options
获取原始命令行选项列表并将其附加到实际的系统调用中,所以我尝试了:
% arara: lualatex
% arara: makeindex
% arara: makeindex: { options: [ '-s basic.gst', '-o acro.gls acro.glo' ] }
% arara: lualatex
但我总是失败地说:
Index style file -o acro.gls acro.glo not found.
Usage: makeindex [-ilqrcgLT] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 ...]
那么第二个问题是,如何将此选项传递给arara
?
答案1
(我是 Overleaf 的支持人员。)Overleaf 使用 latexmk 来处理您的文件。我们添加了许多常见辅助处理步骤的规则。您可以在以下位置查看这些规则的详细信息Overleaf 如何编译我的项目?。
我们的词汇表和索引默认规则未设置为与memoir
的用于准备首字母缩略词列表的方法配合使用makeindex
。您可以修改glo2gls
子程序以与memoir
的设置配合使用:
##############
# Glossaries #
##############
add_cus_dep( 'glo', 'gls', 0, 'glo2gls' );
add_cus_dep( 'acn', 'acr', 0, 'glo2gls'); # from Overleaf v1
sub glo2gls {
system("makeindex -s basic.gst -o acro.gls acro.glo");
}
使用您的示例代码,您还需要加载hyperref
包并提供定义以\doglobookmark
避免由文件内容引起的错误消息.gst
。
如果您使用 的原始定义所处理的任何其他内容glo2gls
,则可能需要将其拆分为两个子程序,而不是重新定义现有的子程序。
完整示例
例子.tex
\documentclass{memoir}
\makeindex
\makeglossary[acro]
\usepackage{hyperref}
\makeatletter
\newcommand\doglobookmark[1]{%
\def\@tempa{Symbols}\def\@tempb{#1}%
\ifx\@tempa\@tempb %
\phantomsection\pdfbookmark[0]{Analphabetics}{Analphabetics-glo}%
\else%
\phantomsection\pdfbookmark[0]{#1}{#1-glo}%
\fi%
}
\makeatother
\begin{document}
A term for the index: limit\index{Limit}. Now an entry for the glossary \glossary[acro]{HTML}{HyperText Markup Language}.
\clearpage
\printindex
\clearpage
\renewcommand{\glossaryname}{Acronyms}
\printglossary[acro]
\end{document}
基本商品及服务税
%%% basic.gst basic makindex glossary style file
%%% Output style parameters
preamble "\\begin{theglossary}"
postamble "\n\\end{theglossary}\n"
item_0 "\n\\glossitem"
delim_0 "{\\memglonum{"
encap_suffix "}}}"
headings_flag 1
heading_prefix "\\doglobookmark{"
heading_suffix "}"
%%% Input style parameters
keyword "\\glossaryentry"
Overleaf 项目示例:https://www.overleaf.com/read/tjcjgwkvpbbm