(Preliminary remark to M.S.: please, please, configure your MUA to correctly reply to the current thread!)
Hi Michael, I'm cc'ing you in case the list eats the attachments. On 2010-05-04 <04:44:21>, Michael Saunders wrote: > Marius: > > > Try this one: http://www.tex.ac.uk/tex-archive/info/context-top-ten/cmds.pdf > > -> page 14 > > Thanks, but that looks like it's just some extracts from cont-eni > translated from Engijsh into Engrish along with a distracting No, it's plain English. Unfamiliar phrases are just one consequence of a language becoming the world standard. Do you want to flame Italians or French for not adhering to the norms of classical Latin? You don't. There's no point at all in even mentioning somebody's stylistic idiosyncrasies on the internets. Just face it: the world won't adopt English as a global means of communication without interfering with its norms. If you don't understand something why don't you contact the author, his email adress is right there on the first page. > more clear. A glossary is like a little dictionary in the back of a > book that defines the specialized words and phrases that the book uses > that might not be known to the general reader. Here is a definition > of "glossary": > Ideally, I'd like a system where I could keep the entries in a bib > database or in a special .tex file. The records would include the > headword and the gloss, and maybe a cross reference to the point in > the text that dealt with the headword definitively---the point where > the term was explained. (A document that defines and explains the new > words and phrases it coins---imagine such a thing!) It would be nice > if there were a command that would automatically link this point in > the text with the glossary entry. LaTeX has several packages > (glosstex, gloss, glossary, glossaries) that do things like this. I append a snippet that should allow basic glossaries. It doesn't provide much functionality (capitalization might have to be implemented …) but you may fit it to your needs. As for the tooltips, unfortunately I don't know how to create them. The functionality would be nice, though, as long as no javascript is involved. (As for the code, it's certainly not context style, I'm aware of that but don't have the time to care.) Awaiting your feedback, Philipp > To do this in Context, I will probably have to do it all manually, > defining a command to set an entry and then doing all the > alphabetization and cross-referencing by hand. > > What I would really, really, like is to add short definitions to each > glossary record that could pop up as tooltips when the reader hovers > over an unfamiliar word. Since there is no mechanism for glossaries > in Context, there is no mechanism to build this into, but I'm still > interested in doing it. The idea is, I could write something like: > > \gloss{strange word}{short definition} > > The text would read "strange word". When you hover over it with the > cursor, a tooltip would appear saying "short definition". It would be > great if this were linked to a glossary mechanism so I wouldn't have > to keep writing the short definition---I could say something like: > > \gloss{strange word} > > and its short definition would be looked up automatically for the > tooltip. The automatic reference to the word might look like this, in > the text: > > \gref{strange word} > > which would cause the page number at that point to be printed at the > end of the glossary entry for "strange word". > ___________________________________________________________________________________ > If your question is of interest to others as well, please add an entry to the > Wiki! > > maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context > webpage : http://www.pragma-ade.nl / http://tex.aanhet.net > archive : http://foundry.supelec.fr/projects/contextrev/ > wiki : http://contextgarden.net > ___________________________________________________________________________________ -- () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments
\setupinteraction[state=start] \ctxlua{dofile("glossarium.lua")} % Use \gloss#1#2 somewhere before \starttext, in a secondary file if you like. % #1: gloss reference key (used as index) % #2: the entry (explanation) \def\gloss#1#2{% \ctxlua{gloss.newgloss("#1", "\luaescapestring{#2}")} } \def\dousegloss[#1]#2{% \ctxlua{gloss.usegloss("#2", "#1")}% } % Use this in your text to create a reference to the glossary. % #1: optional, If this is the main passage where you explain the entry in detail, % the glossary will link back here. (Just make it non-empty.) % #2: the gloss key \def\usegloss{\dosingleempty\dousegloss} % This is meant to create the glossary after the text: % The gloss key is typeset in bold face and will reference the point in the % main text where \usegloss was called with a nonempty first arg. \def\placeglossary{\ctxlua{gloss.place_glossary()}} \starttext \gloss{glossary}{% A collection of glosses; a list with explanations of abstruse, antiquated, dialectal, or technical terms; a partial dictionary. (As defined by M.~Saunders)% } \gloss{index}{% An index (plural: indexes) is a list of words or phrases ('headings') and associated pointers ('locators') to where useful material relating to that heading can be found in a document. (As def'ed by the English Wikipedia) } test \usegloss{glossary} test. \page Here \usegloss{index} just occurs. \page The glossary entry \usegloss[exp]{index} is explained here. \page Here \usegloss{index} just occurs again. \page Here we'll deal with \usegloss[exp]{glossary} in detail. \page Here \usegloss{index} just occurs again. \page Here \usegloss{index} just occurs again. \page Here we mention \usegloss{glossary}. \page Here \usegloss{index} just occurs again. \page \placeglossary \stoptext
-- -------------------------------------------------------------------------------- -- FILE: glossarium.lua -- USAGE: ConTeXt MkIV only -- DESCRIPTION: ad-hoc glossary -- AUTHOR: Philipp Gesang (Phg), <megas.kapan...@gmail.com> -- VERSION: 1.0 -- CREATED: 04/05/10 13:00:54 CEST -- REVISION: 1 -------------------------------------------------------------------------------- -- gloss = {} gloss.tracker, gloss.content = {}, {} function gloss.warn( text ) context.message( "== GLOSSARY: " .. text ) end function gloss.newgloss( keyword, entry ) if gloss.content[keyword] then gloss.warn( "Entry for " .. keyword .. " exists. Skipping." ) else gloss.content[keyword] = entry end end function gloss.usegloss( keyword, explained_here) if gloss.content[keyword] then local indstring = "glossind:" .. keyword if explained_here ~= "" and not gloss.tracker[keyword] then local refstring = "gloss:" .. keyword context.reference({ refstring }, "") gloss.tracker[keyword] = true end context.goto(keyword, {indstring}) else gloss.warn( "No entry for " .. keyword .. ". Skipping." ) end end function gloss.place_glossary () -- get all keywords and sort them local sort_me = {} for key, _ in pairs(gloss.content) do table.insert(sort_me, key) end table.sort(sort_me) -- pretty print them somehow for _, keyword in ipairs(sort_me) do local refstring = "gloss:" .. keyword local indstring = "glossind:" .. keyword context.noindentation() context.reference({ indstring }, "") context.bgroup() context.bf() context.goto( keyword, { refstring } ) --context(keyword) context.egroup() -- leave some space before entry context.hskip1em() context(gloss.content[keyword]) context.par() end end
pgpG8D4rwYKGq.pgp
Description: PGP signature
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________