From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/7839 Path: main.gmane.org!not-for-mail From: Hans Hagen Newsgroups: gmane.comp.tex.context Subject: Re: Pesky sidebars. Date: Fri, 10 May 2002 01:12:03 +0200 Sender: owner-ntg-context@let.uu.nl Message-ID: <5.1.0.14.1.20020510010704.033db188@remote-1> References: <200205081717.42337.john@wexfordpress.com> NNTP-Posting-Host: coloc-standby.netfonds.no Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Trace: main.gmane.org 1035398282 22772 80.91.224.250 (23 Oct 2002 18:38:02 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Wed, 23 Oct 2002 18:38:02 +0000 (UTC) Cc: ntg-context@ntg.nl Original-To: John Culleton In-Reply-To: <200205081717.42337.john@wexfordpress.com> Xref: main.gmane.org gmane.comp.tex.context:7839 X-Report-Spam: http://spam.gmane.org/gmane.comp.tex.context:7839 At 05:17 PM 5/8/2002 -0400, John Culleton wrote: >Is there something wrong with my overall approach? Of course -) You should use the other background mechanism, the atributes one, which (of course) is not yet documented since it's quite new and under development (details.pdf will cover it). However, that method would be overkill, so best use a simpler approach. The attached file demos it. (BTW, i haven't used side bars for years and don't expect to use them in the future, so testing is for others) Hans You can test the following file: texexec --mode=demo --pdf m-yesno It supports colered sidebars, crossing pages, nested bars, etc ============ m-yesno.tex ========================= %D \module %D [ file=m-yesno, %D version=2000.05.10, %D title=\CONTEXT\ Extra Modules, %D subtitle=Handy, Yes or No?, %D author=Hans Hagen, %D date=\currentdate, %D copyright=PRAGMA-ADE] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \newcounter\currentsidebar \newdimen\sidebardistance \definesystemvariable{sr} \def\setupsidebars {\dodoubleargument\dosetupsidebars} \def\dosetupsidebars[#1][#2]% {\ifsecondargument \getparameters[\??sr#1][#2]% \else \getparameters[\??sr][#1]% \fi} % \setupMPvariables % [mpos:bar] % [linecolor=red, % linewidth=2pt, % distance=5pt] \setupsidebars [\c!lijndikte=2pt, \c!lijnkleur=red, \c!afstand=.5\bodyfontsize] \def\definesidebar {\dodoubleempty\dodefinesidebar} \def\dodefinesidebar[#1][#2]% {\copyparameters [\??sr#1][\??sr] [\c!lijndikte,\c!lijnkleur,\c!afstand]% \getparameters [\??sr#1][#2]} \def\startsidebar {\dosingleempty\dostartsidebar} \def\dostartsidebar[#1]% {\bgroup \dontleavehmode \checktextbackgrounds \doglobal\increment\currentsidebar \doifelsenothing{#1} {\advance\sidebardistance\@@srafstand} {\doifelsevaluenothing{\??sr#1\c!afstand} {\advance\sidebardistance\@@srafstand} {\sidebardistance\getvalue{\??sr#1\c!afstand}}}% \startpositionoverlay{text-1}% \expanded{\setMPpositiongraphicrange {b:side:\currentsidebar}% {e:side:\currentsidebar}% {mpos:bar}% {self=side:\currentsidebar, linewidth=\getvalue{\??sr#1\c!lijndikte}, linecolor=\getvalue{\??sr#1\c!lijnkleur}, distance=\the\sidebardistance}}% \stoppositionoverlay \bpos{side:\currentsidebar}\ignorespaces} \def\stopsidebar {\removelastspace\tpos{side:\currentsidebar}\egroup} \startMPpositionmethod{mpos:bar} \startMPpositiongraphic{mpos:bar}{linecolor,linewidth,distance}% StartPage ; path p ; p := if \MPp\MPbself=\MPp\MPeself : (xpart ulcorner Field[Text][Text],\MPy\MPbself+\MPh\MPbself) -- (xpart llcorner Field[Text][Text],\MPy\MPeself-\MPd\MPeself) ; elseif RealPageNumber=\MPp\MPbself : (xpart ulcorner Field[Text][Text],\MPy\MPbself+\MPh\MPbself) -- (llcorner Field[Text][Text]) ; elseif RealPageNumber=\MPp\MPeself : (ulcorner Field[Text][Text]) -- (xpart llcorner Field[Text][Text],\MPy\MPeself-\MPd\MPeself) ; else : (ulcorner Field[Text][Text]) -- (llcorner Field[Text][Text]) ; fi ; draw p shifted (-\MPvar{distance},0) withpen pencircle scaled \MPvar{linewidth} withcolor \MPvar{linecolor} ; anchor_par(\MPanchor\MPbself) ; StopPage ; \stopMPpositiongraphic \MPpositiongraphic{mpos:bar}{}% \stopMPpositionmethod \protect \doifnotmode{demo}{\endinput} \showframe \setupcolors[state=start] \definesidebar[whow][rulecolor=green,distance=] \starttext \input tufte \par \startsidebar \input tufte \par \input tufte \par \startsidebar[whow] \input tufte \par \input tufte \par \input tufte \par \stopsidebar \input tufte \par \input tufte \stopsidebar \input tufte \par \input tufte \par \startsidebar \input tufte \par \input tufte \par \input tufte \par \input tufte \par \input tufte \stopsidebar \input tufte \par \input tufte \par \startsidebar \input tufte \input tufte \input tufte \input tufte \input tufte \stopsidebar \stoptext ------------------------------------------------------------------------- Hans Hagen | PRAGMA ADE | pragma@wxs.nl Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com ------------------------------------------------------------------------- information: http://www.pragma-ade.com/roadmap.pdf documentation: http://www.pragma-ade.com/showcase.pdf -------------------------------------------------------------------------