词汇表来自 overleaf 和 arara 中的回忆录手册

词汇表来自 overleaf 和 arara 中的回忆录手册

我正在读回忆录手册我对第 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

相关内容