� wrote:

Hello to all,

I have a problem: I want to add a kind of glossary on a book. It will
be, in fact, an explanation of acronyms ('NATO: North Atlantic Treaty
Organisation' for instance).

But... I'd want it on every page, only for the acronyms used on the
current page (and alphabetically sorted if possible)...

I tried using layers (with or without tying them to backgrounds),
blocks (\begin... \end...), buffers, list of synonyms, etc. but I had
problems with one of the requirements or another. :-)

My first idea was to use blocks for each page :

\beginABREV[1]
NATO: North Atlantic Treaty Organisation
\endABREV

\beginABREV[1]
BLOB: Binary Large Object
\endABREV

and to use them with \useblocks[ABREV][\pagenumber] in the footer. To
be sure to give the right page number to \beginABREV, I tried to
define a label and use it, something like (from memory, I don't have
my code near to me):

\reference[abbrev\ABREVcount]% Put a label
\beginABREV[{\ref[r][abbrev\ABREVcount]}]% and use the label to get
the current page on subsequent runs.

but I went on a nightmare of expansion problems... Plus it didn't
eliminate duplicates nor sort the acronyms. But it would have been a
start... :-)

Can someone point me to the right direction?
well, instead of making some complex new mechanism, why not misuse notes ....

% output=pdf

\definenote
 [glossary]
 [way=bypage,
  location={page,high},
  factor=0,
  width=\leftmarginwidth,
  scope=page,
  conversion=empty, % no number
  rule=,
  before=,
  after=]

\setuplayout
 [width=middle,
  height=middle,
  backspace=5cm,
  margin=4cm,
  margindistance=.25cm,
  cutspace=2cm]

\setuptexttexts
 [margin]
 [\setups{glossary}]
 []

\startsetups glossary

   \vbox to \textheight {
       \placenotes[glossary]
       \vfill
   }

\stopsetups

\setupnotedefinition
 [glossary]
 [location=left,
  width=fit,
  distance=.5em,
  align={right,tolerant,stretch},
  headstyle=bold,
  hang=1]

% ok, we will plug in some code (will go into the kernel)

\unprotect

\def\ownnotesymbol#1% #1 gets number passed
 {\executeifdefined{\??vn::\currentnote}\empty}

\def\setnotesymbol[#1]#2#3%
 {\prewordbreak % prevent lookback
  \gdef\lastnotenumber{#2}%
  \setgvalue{\??vn::#1}{#3}
  \dolastnotesymbol}

\def\ownnote[#1]#2#3#4%
 {\setnotesymbol[#1]{#2}{#3}%
  \setnotetext  [#1]{#4}}

\protect

% here we hook the code into the footnote handler

\defineconversion
 [ownnote]
 [\ownnotesymbol]

\setupnote
 [glossary]
 [conversion=ownnote,
  textcommand=,
  textstyle=,
  numbercommand=]

\showframe

\starttext

\dorecurse{10}
 {\dorecurse{5}
{I'm \ownnote[glossary]{whowing}{whow}{whatever needs to be glossed:~\recurselevel} a bit.
     \input tufte \relax}}

\stoptext

if there is interest i can add the glossary defs (maybe using a different name) to the kernel.

I'm a bit puzzled why the notes don't split well ... maybe taco has an idea (he knows ttp -)

concerning abbreviations ... maybe some day i'll add a feature like this to it

Hans

Hans

_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

Reply via email to