From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/71699 Path: news.gmane.org!not-for-mail From: Hans Hagen Newsgroups: gmane.comp.tex.context Subject: Re: Solution to a "superscript" problem? Date: Wed, 12 Oct 2011 22:09:18 +0200 Message-ID: <4E95F3EE.303@wxs.nl> References: <6c17f9dcc01621f20e74d6673d9a0bca@pi-xi.net> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1318450198 19486 80.91.229.12 (12 Oct 2011 20:09:58 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 12 Oct 2011 20:09:58 +0000 (UTC) Cc: ntg-context@ntg.nl To: context@pi-xi.net Original-X-From: ntg-context-bounces@ntg.nl Wed Oct 12 22:09:53 2011 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 1RE57h-0007xa-Cy for gctc-ntg-context-518@m.gmane.org; Wed, 12 Oct 2011 22:09:53 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 65B38CB035; Wed, 12 Oct 2011 22:09:52 +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 pdJDEVZ64ZAE; Wed, 12 Oct 2011 22:09:49 +0200 (CEST) Original-Received: from balder.ntg.nl (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id C0D30CB032; Wed, 12 Oct 2011 22:09:49 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id DD252CB030 for ; Wed, 12 Oct 2011 22:09:48 +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 nPKXuCvUTCvu for ; Wed, 12 Oct 2011 22:09:37 +0200 (CEST) Original-Received: from filter3-til.mf.surf.net (filter3-til.mf.surf.net [194.171.167.219]) by balder.ntg.nl (Postfix) with ESMTP id B8A4ECB032 for ; Wed, 12 Oct 2011 22:09:37 +0200 (CEST) Original-Received: from smtp.ziggozakelijk.nl (D57D1DA2.static.ziggozakelijk.nl [213.125.29.162]) by filter3-til.mf.surf.net (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id p9CK9aXO005859 for ; Wed, 12 Oct 2011 22:09:37 +0200 X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=10.100.1.101; Original-Received: from [10.100.1.101] (unverified [10.100.1.101]) by pragma-net.nl (SurgeMail 5.3h2) with ESMTP (TLS) id 8829-1713362 for multiple; Wed, 12 Oct 2011 22:09:34 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1 In-Reply-To: <6c17f9dcc01621f20e74d6673d9a0bca@pi-xi.net> X-Authenticated-User: hagen@controller-9 X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN) X-CanIt-Geo: ip=213.125.29.162; country=NL; region=11; city=Den Haag; latitude=52.0833; longitude=4.3000; http://maps.google.com/maps?q=52.0833,4.3000&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 0eFHU9AOX - c5508848e257 - 20111012 X-Scanned-By: CanIt (www . roaringpenguin . com) on 194.171.167.219 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:71699 Archived-At: On 12-10-2011 21:43, Otso Helenius wrote: > Hello, > > I've been trying to come up with a few methods to add definitions to > text with the help of the metafun and context manuals. The first method > adds the definition as sort of a "superscript" on top of the word, and > the second one marks multiple words with a curly bracket and adds the > definition on top of the tip of the bracket. > > Here is the (ugly and hackish) code: > > > > \startuniqueMPgraphic{defline} > path p; p:=(0,0)..controls (0,1) and (1,1)..(1,1)--(6,1)..controls(7,1) > and (7,1)..(7,2)--(7,2)..controls(7,1) and > (7,1)..(8,1)--(13,1)..controls(13,1) and (14,1)..(14,0); > draw (0,0)--(0,12pt) withcolor white; > draw p xscaled (\overlaywidth/15) yscaled 5 shifted (0,9mm) withpen > pencircle scaled 0.25mm withcolor red; > \stopuniqueMPgraphic > > \defineoverlay[curlybracket][\includeMPgraphic{defline}] > > \def\sentencedef[#1][#2]{\setbox\scratchbox=\hbox{#2}\hbox to > \the\wd\scratchbox{\cbox{\hbox{\tfxx\color[red] > #1}\\\hbox{\framed[background=curlybracket,frame=off]{#2}}}}} > > \def\worddef[#1][#2]{\setbox\scratchbox=\hbox{#2}\hbox to > \the\wd\scratchbox{\cbox{\hbox{\rotate[rotation=25]{\tfxx\color[red] > #1}}\\\hbox{#2}}}} > > \starttext > > \hbox{\worddef[def1][Lorem] ipsum \worddef[def2][dolor] sit > \worddef[def3][amet] consectetur \worddef[def4][adipiscing] elit.} > > \hbox{\sentencedef[def5][Lorem ipsum] dolor sit \sentencedef[def6][amet > consectetur] adipiscing elit.} > > \stoptext > > > > I haven't figured a way to add the curly bracket graphic neatly nor > position the definition correctly on top of it. > > I would be very interested in any advice regarding these two functions > and how to rewrite both of them in a more elegant way. Wikifyable ... \startuniqueMPgraphic{defline}{width} path p ; p := ( 0,0) .. controls (0,1) and ( 1,1) .. ( 1,1) -- ( 6,1) .. controls (7,1) and ( 7,1) .. ( 7,2) -- ( 7,2) .. controls (7,1) and ( 7,1) .. ( 8,1) -- (13,1) .. controls (13,1) and (14,1) .. (14,0) ; draw p xysized (\MPvar{width},ExHeight) withpen pencircle scaled .1ExHeight withcolor \MPcolor{red} ; \stopuniqueMPgraphic \defineoverlay[curlybracket][\includeMPgraphic{defline}] \unexpanded\def\WordDef {\dodoubleargument\doWordDef} \def\doWordDef[#1][#2]% {\dontleavehmode\hbox\bgroup \setbox\scratchbox\hbox{#2}% \raise\strutheight\hbox to \wd\scratchbox{\hss\rotate[rotation=25]{\tfxx\color[red]#1}\hss}% \hskip-\wd\scratchbox \box\scratchbox \egroup} \unexpanded\def\LineDef {\dodoubleargument\doLineDef} \def\doLineDef[#1][#2]% {\dontleavehmode\hbox\bgroup \setbox\scratchbox\hbox{#2}% \raise1.5\strutht\hbox to \wd\scratchbox{\hss\rotate[rotation=25]{\tfxx\color[red]#1}\hss}% \hskip-\wd\scratchbox \raise0.9\strutht\hbox to \wd\scratchbox{\uniqueMPgraphic{defline}{width=\the\wd\scratchbox}}% \hskip-\wd\scratchbox \box\scratchbox \egroup} \starttext \WordDef[def1][Lorem] ipsum \WordDef[def2][dolor] sit \WordDef[def3][amet] consectetur \WordDef[def4][adipiscing] elit. \LineDef[def5][Lorem ipsum] dolor sit \LineDef[def6][amet consectetur] adipiscing elit. \stoptext ----------------------------------------------------------------- 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 ----------------------------------------------------------------- ___________________________________________________________________________________ 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 ___________________________________________________________________________________