On 4/19/2015 9:47 AM, Robert Blackstone wrote:
On 16 Apr 2015, at 15:38 , Hans Hagen
gave me the following: \startluacode
document.indexentries = { ["rule"] = [[Rule(s)]], ["ruleimperfect"] = [[+ \quote{imperfect to perfect, from}]], ["galilei"] = [[Galilei, Vincenzo]], }
function document.getindexentry(n) context("\\index[%s]{%s}",n,document.indexentries[n] or ("<" .. n .. ">")) end
\stopluacode
\unexpanded\def\InEn[#1]% {\ctxlua{document.getindexentry("#1")}}
\starttext That this rule \InEn[rule] \InEn[ruleimperfect] was not applied by everybody is for example shown in {\em Fronimo}% \InEn[galilei]
etc etc
Hi Hans, sorry to bother you again on this topic.
This code works beautifully in this way, with only a few index entries at the top of the file, before \starttext. But how can I deal with the thousand or more index items in my project, which I have collected in four separate dedicated files with indexentries, like the three shown in the example-code.
I have really no idea what else should be in these files, what sort of name they should have, in particular extension, and how and where I can input them. I use TeXShop as my texteditor but that is probably not relevant here.
Can you give me some guidance, please?
\startluacode document.indexentries = { ["rule"] = [[Rule(s)]], ["ruleimperfect"] = [[+ \quote{imperfect to perfect, from}]], ["galilei"] = [[Galilei, Vincenzo]], } function document.loadindexentries(filename) local fullname = resolvers.findfile(filename) if fullname ~= "" then local data = io.loaddata(fullname) for a, b in string.gmatch(data,"%s*(%S+)%s+([^\n\r]+)") do document.indexentries[a] = b end end end function document.getindexentry(n) local ie = document.indexentries[n] if not ie then logs.report("index","missing entry %a",n) end context("\\index[%s]{%s}",n,ie or ("<" .. n .. ">")) end \stopluacode \unexpanded\def\LoadInEn[#1]{\ctxlua{document.loadindexentries("#1")}} \unexpanded\def\InEn [#1]{\ctxlua{document.getindexentry("#1")}} \LoadInEn[whatever.txt] \starttext That this rule \InEn[rule] \InEn[ruleimperfect] was not applied by everybody is for example shown in {\em Fronimo}% \InEn[galilei] \InEn[unknown] etc etc \InEn[GalileiFronimo] \InEn[Cadence] \InEn[CadenceP] \InEn[PlagalCad] \index[Fronimo]{{\em Fronimo} (Galilei)} (1584), Vincenzo Galileo's treatise on lute playing and the intabulation% \index[Intabulation]{intabulation} of vocal music. \page whatever.txt: GalileiFronimo +{\em Fronimo} Cadence cadence(s) CadenceP + plagal PlagalCad plagal cadence ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------