From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/58510 Path: news.gmane.org!not-for-mail From: Philipp Gesang Newsgroups: gmane.comp.tex.context Subject: Re: tooltips and glossary Date: Tue, 4 May 2010 14:28:59 +0200 Message-ID: <20100504122859.GA24304@aides> References: Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1708899444==" X-Trace: dough.gmane.org 1272976220 7653 80.91.229.12 (4 May 2010 12:30:20 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 4 May 2010 12:30:20 +0000 (UTC) Cc: odradek5@gmail.com To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Tue May 04 14:30:18 2010 connect(): No such file or directory Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([195.12.62.10]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1O9HGM-00051m-2Q for gctc-ntg-context-518@m.gmane.org; Tue, 04 May 2010 14:30:10 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 2C2E0C9B7A; Tue, 4 May 2010 14:30:08 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id v5KuwZRl2vzx; Tue, 4 May 2010 14:30:05 +0200 (CEST) Original-Received: from balder.ntg.nl (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 00E13C9B7E; Tue, 4 May 2010 14:30:05 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id D2090C9B7E for ; Tue, 4 May 2010 14:30:03 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id D8IwtZi-aKM2 for ; Tue, 4 May 2010 14:29:52 +0200 (CEST) Original-Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by balder.ntg.nl (Postfix) with ESMTP id EFC00C9B7A for ; Tue, 4 May 2010 14:29:51 +0200 (CEST) Original-Received: from ix.urz.uni-heidelberg.de (cyrus-portal.urz.uni-heidelberg.de [129.206.100.176]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id o44CTZYT008674 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 4 May 2010 14:29:35 +0200 Original-Received: from extmail.urz.uni-heidelberg.de (extmail.urz.uni-heidelberg.de [129.206.100.140]) by ix.urz.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id o44CTmYH030880 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 4 May 2010 14:29:48 +0200 Original-Received: from localhost (mnhm-4d011547.pool.mediaWays.net [77.1.21.71]) (authenticated bits=0) by extmail.urz.uni-heidelberg.de (8.13.4/8.13.1) with ESMTP id o44CTjjM023140 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 4 May 2010 14:29:45 +0200 In-Reply-To: X-Operating-System: Linux aides 2.6.34-rc3 User-Agent: Mutt/1.5.20 (2010-04-22) X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.12 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: ntg-context-bounces@ntg.nl Errors-To: ntg-context-bounces@ntg.nl Xref: news.gmane.org gmane.comp.tex.context:58510 Archived-At: --===============1708899444== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="NMuMz9nt05w80d4+" Content-Disposition: inline --NMuMz9nt05w80d4+ Content-Type: multipart/mixed; boundary="XsQoSWH+UP9D9v3l" Content-Disposition: inline --XsQoSWH+UP9D9v3l Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable (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: >=20 > > Try this one: http://www.tex.ac.uk/tex-archive/info/context-top-ten/cmd= s.pdf > > -> page 14 >=20 > 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 =E2=80=A6) but you may fit it to your needs. As for the tooltips, unfortuna= tely 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. >=20 > 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: >=20 > \gloss{strange word}{short definition} >=20 > 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: >=20 > \gloss{strange word} >=20 > 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: >=20 > \gref{strange word} >=20 > 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! >=20 > maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-co= ntext > webpage : http://www.pragma-ade.nl / http://tex.aanhet.net > archive : http://foundry.supelec.fr/projects/contextrev/ > wiki : http://contextgarden.net > _________________________________________________________________________= __________ --=20 () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments --XsQoSWH+UP9D9v3l Content-Type: text/x-tex; charset=us-ascii Content-Disposition: attachment; filename="glossarium.tex" Content-Transfer-Encoding: quoted-printable \setupinteraction[state=3Dstart] \ctxlua{dofile("glossarium.lua")} % Use \gloss#1#2 somewhere before \starttext, in a secondary file if you li= ke. % #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,=20 % 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 defi= ned 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 --XsQoSWH+UP9D9v3l Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="glossarium.lua" Content-Transfer-Encoding: quoted-printable -- ---------------------------------------------------------------------------= ----- -- FILE: glossarium.lua -- USAGE: ConTeXt MkIV only -- DESCRIPTION: ad-hoc glossary -- AUTHOR: Philipp Gesang (Phg), -- VERSION: 1.0 -- CREATED: 04/05/10 13:00:54 CEST -- REVISION: 1 ---------------------------------------------------------------------------= ----- -- gloss =3D {} gloss.tracker, gloss.content =3D {}, {} function gloss.warn( text ) context.message( "=3D=3D GLOSSARY: " .. text ) end function gloss.newgloss( keyword, entry ) if gloss.content[keyword] then gloss.warn( "Entry for " .. keyword .. " exists. Skipping." ) else gloss.content[keyword] =3D entry end end function gloss.usegloss( keyword, explained_here) if gloss.content[keyword] then local indstring =3D "glossind:" .. keyword if explained_here ~=3D "" and not gloss.tracker[keyword] then local refstring =3D "gloss:" .. keyword context.reference({ refstring }, "") gloss.tracker[keyword] =3D 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 =3D {} 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 =3D "gloss:" .. keyword local indstring =3D "glossind:" .. keyword context.noindentation() context.reference({ indstring }, "") context.bgroup()=20 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 =20 --XsQoSWH+UP9D9v3l-- --NMuMz9nt05w80d4+ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iEYEARECAAYFAkvgEwsACgkQ02lYlJYWs9ISwgCgq34KwpkwyhmB1x60yMTsOYHW XFwAn0mQY9fK1w/rO3vJ0ECPatsFHQJK =BjX3 -----END PGP SIGNATURE----- --NMuMz9nt05w80d4+-- --===============1708899444== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ___________________________________________________________________________________ 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 ___________________________________________________________________________________ --===============1708899444==--