From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/28451 Path: news.gmane.org!not-for-mail From: "Johan Sandblom" Newsgroups: gmane.comp.tex.context Subject: Writing a ConTeXt module for R Date: Tue, 6 Jun 2006 20:00:19 +0200 Message-ID: <97a06f070606061100o2cd059bawa46a56d19e9f7c7@mail.gmail.com> Reply-To: johan.sandblom@ki.se, mailing list for ConTeXt users NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_53429_1829720.1149616819402" X-Trace: sea.gmane.org 1149616835 5453 80.91.229.2 (6 Jun 2006 18:00:35 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 6 Jun 2006 18:00:35 +0000 (UTC) Original-X-From: ntg-context-bounces@ntg.nl Tue Jun 06 20:00:32 2006 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from ronja.vet.uu.nl ([131.211.172.88] helo=ronja.ntg.nl) by ciao.gmane.org with esmtp (Exim 4.43) id 1Fnfqv-0007vv-J8 for gctc-ntg-context-518@m.gmane.org; Tue, 06 Jun 2006 20:00:29 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 14B7B12839; Tue, 6 Jun 2006 20:00:29 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (smtp.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 01055-02; Tue, 6 Jun 2006 20:00:24 +0200 (CEST) Original-Received: from ronja.vet.uu.nl (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id C9272127FD; Tue, 6 Jun 2006 20:00:23 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 0B59F127FD for ; Tue, 6 Jun 2006 20:00:23 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (smtp.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 30731-03 for ; Tue, 6 Jun 2006 20:00:21 +0200 (CEST) Original-Received: from nz-out-0102.google.com (nz-out-0102.google.com [64.233.162.204]) by ronja.ntg.nl (Postfix) with SMTP id 120B8127FB for ; Tue, 6 Jun 2006 20:00:20 +0200 (CEST) Original-Received: by nz-out-0102.google.com with SMTP id n29so1435528nzf for ; Tue, 06 Jun 2006 11:00:19 -0700 (PDT) Original-Received: by 10.65.182.3 with SMTP id j3mr4853027qbp; Tue, 06 Jun 2006 11:00:19 -0700 (PDT) Original-Received: by 10.64.242.11 with HTTP; Tue, 6 Jun 2006 11:00:19 -0700 (PDT) Original-To: "mailing list for ConTeXt users" X-Virus-Scanned: amavisd-new at ntg.nl X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.7 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 X-Virus-Scanned: amavisd-new at ntg.nl Xref: news.gmane.org gmane.comp.tex.context:28451 Archived-At: ------=_Part_53429_1829720.1149616819402 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Since I sometimes use the open-source statistics environment R (http://www.r-project.org) as well as ConTeXt, I thought a module that could typeset R code as well as evaluate it on the fly would be useful. Borrowing largely without understanding but lots of trial and eror from m-gnustep.tex, I came up with the attached. Limited testing indicates it works, but at least one problem is apparent: the R code snippets have one unnecessary line break to start them and two after the end. How can I fix that? Of course, any other suggestions are also welcome. A recent R needs to be in the path, but given that, it seems to work on Windows XP as well as Linux. Regards, Johan PS Emacs users may appreciate the following to get r-mode where appropriate: (require 'mmm-mode) (setq mmm-global-mode 'maybe) (setq mmm-submode-decoration-level 2) (mmm-add-group 'context-plus '((context-MP :submode metapost-mode :face mmm-code-submode-face :front ".*\\\\start\\w*MP\\w*\\({\\w*}\\|\\[\\w*\\]\\|\\)\\W" :back ".*\\\\stop\\w*MP") (context-R :submode r-mode :face mmm-comment-submode-face :front ".*\\\\startR.*\\W" :back ".*\\\\stopR.*"))) (add-to-list 'mmm-mode-ext-classes-alist '(context-mode nil context-plus)) -- Johan Sandblom N8, MRC, Karolinska sjh t +46851776108 17176 Stockholm m +46735521477 Sweden "What is wanted is not the will to believe, but the will to find out, which is the exact opposite" - Bertrand Russell ------=_Part_53429_1829720.1149616819402 Content-Type: application/x-tex; name=t-rweave.tex Content-Transfer-Encoding: base64 X-Attachment-Id: f_eo4jneoh Content-Disposition: attachment; filename="t-rweave.tex" XHVucHJvdGVjdAoKXG5ld2NvdW50ZXJcUm51bWJlcgoKXGRlZlxzdGFydFIlCiAge1xiZ3JvdXAK ICAgXG9iZXlsaW5lcwogICBcY2F0Y29kZWBcJT1cQEBsZXR0ZXIKICAgXGNhdGNvZGVgXCM9XEBA bGV0dGVyCiAgIFxkb3N0YXJ0UiUKICB9JQoKXGRlZlxkb3N0YXJ0UiMxXHN0b3BSJQogIHtcZG9n bG9iYWxcaW5jcmVtZW50XFJudW1iZXIlCiAgIFxsZXRndmFsdWV7cmNzOm46XFJudW1iZXJ9XFJu dW1iZXIlCiAgIFxzZXRndmFsdWV7cmNzOmQ6XFJudW1iZXJ9eyMxfSUKICAgICAgXGVkZWZcUmZp bGUgIHtcYnVmZmVycHJlZml4IFItXFJudW1iZXJ9JQogICAgICBcYmdyb3VwJQogICAgICBcdGhl XGV2ZXJ5UiUKICAgICAgXGltbWVkaWF0ZVxvcGVub3V0XHNjcmF0Y2h3cml0ZT1cUmZpbGUuciUK ICAgICAgXGRlZlxwYXJ7XHJhd2NoYXJhY3RlcnsxMH19JQogICAgICBcaW1tZWRpYXRlXHdyaXRl XHNjcmF0Y2h3cml0ZXtcZ2V0dmFsdWV7cmNzOmQ6XFJudW1iZXJ9fSUKICAgICAgXGltbWVkaWF0 ZVxjbG9zZW91dFxzY3JhdGNod3JpdGUlCiAgICAgIFxlZ3JvdXAlCiAgICAgIFxzdGFydG1vZGVb Klx2IWZpcnN0XSUgCiAgICAgIFxydW5SJQogICAgICBcc3RvcG1vZGUKICAgICAgXHR5cGVSb3V0 JQogICBcZWdyb3VwfSUKClxkZWZcc3RhcnRSaGlkZGVuJQogIHtcYmdyb3VwCiAgIFxvYmV5bGlu ZXMKICAgXGNhdGNvZGVgXCU9XEBAbGV0dGVyCiAgIFxkb3N0YXJ0UmhpZGRlbnt9fQoKXGRlZlxk b3N0YXJ0UmhpZGRlbiMxXHN0b3BSaGlkZGVuCiAge1xkb2dsb2JhbFxpbmNyZW1lbnRcUm51bWJl cgogICBcbGV0Z3ZhbHVle3JjczpuOlxSbnVtYmVyfVxSbnVtYmVyCiAgIFxzZXRndmFsdWV7cmNz OmQ6XFJudW1iZXJ9eyMxfSUKICAgICAgXGVkZWZcUmZpbGUgIHtcYnVmZmVycHJlZml4IFItXFJu dW1iZXJ9JQogICAgICBcYmdyb3VwCiAgICAgIFx0aGVcZXZlcnlSJQogICAgICBcaW1tZWRpYXRl XG9wZW5vdXRcc2NyYXRjaHdyaXRlPVxSZmlsZS5yJQogICAgICBcZGVmXHBhcntccmF3Y2hhcmFj dGVyezEwfX0lCiAgICAgIFxpbW1lZGlhdGVcd3JpdGVcc2NyYXRjaHdyaXRle1xnZXR2YWx1ZXty Y3M6ZDpcUm51bWJlcn19JQogICAgICBcaW1tZWRpYXRlXGNsb3Nlb3V0XHNjcmF0Y2h3cml0ZSUK ICAgICAgXGVncm91cAogICAgICBcc3RhcnRtb2RlWypcdiFmaXJzdF0lIAogICAgICBccnVuUiUK ICAgICAgXHN0b3Btb2RlCiAgIFxlZ3JvdXB9CgpcbmV3dG9rc1xldmVyeVIKClxhcHBlbmR0b2tz CiAgICBcb2JleWxpbmVzClx0byBcZXZlcnlSCgpcZGVmXHJ1blIKICAgICB7XGV4ZWN1dGVzeXN0 ZW1jb21tYW5ke1IgLXEgLS1zYXZlIC0tcmVzdG9yZSA8IFxSZmlsZS5yID4gXFJmaWxlLlJvdXR9 fQoKXGRlZlx0eXBlUm91dAogIHtcdHlwZWZpbGV7XFJmaWxlLlJvdXR9fQoKXHByb3RlY3QgXGRv aWZub3Rtb2Rle2RlbW99e1xlbmRpbnB1dH0KClxzdGFydHRleHQKClxzdGFydFIKYSA8LSAiYmxh IgpiIDwtICJibGFibGEiCmxzKCkKXHN0b3BSCgpibGEgYmxhCgpcc3RhcnRSaGlkZGVuCnJtKGxp c3Q9bHMoKSkKc2F2ZS5pbWFnZSgpClxzdG9wUmhpZGRlbgoKYmxhCgpcc3RhcnRSCmxzKCkKdXNo YXBlIDwtIGMocmV4cCg1MDAwMDApLCAxMi1yZXhwKDUwMDAwMCkpCnBkZigidXNoYXBlLnBkZiIp CnBhcihtZnJvdz1jKDEsMikpCmhpc3QodXNoYXBlKQpwbG90KGRlbnNpdHkodXNoYXBlKSwgbWFp bj0iRGVuc2l0eSIpICAgICAgICAgICAgIApkZXYub2ZmKCkKXHN0b3BSCgpcaW5wdXQgdHVmdGUK ClxpbnB1dCBrbnV0aAoKXHN0YXJ0Ugp4IDwtIHJub3JtKDkwMCkKeSA8LSByZXhwKDkwMCkKIyB0 ZXN0IGNvbW1lbnQKZiA8LSBnbCg5LDksOTAwKQpzdW1tYXJ5KGFvdih5fngrRXJyb3IoZikpKQps aWJyYXJ5KGxhdHRpY2UpCnBkZigibGF0dGljZS5wZGYiKQp4eXBsb3QoeX54fGYpCmRldi5vZmYo KQpcc3RvcFIKClxwbGFjZWZpZ3VyZVtoZXJlXXt9e1xleHRlcm5hbGZpZ3VyZVtsYXR0aWNlXX0K XHBsYWNlZmlndXJlW2hlcmVde317XGV4dGVybmFsZmlndXJlW3VzaGFwZV19CgpcaW5wdXQgdHVm dGUKClxzdGFydFIKKHRlc3QgPC0gIi4qXFxcXCBbXXt9PT8hKyUjfDx8PkAkIikKY2F0KHRlc3Qp ClxzdG9wUgoKXGlucHV0IGJyeXNvbgoKXGlucHV0IGtudXRoCgpcc3RhcnRSCmEuZGYgPC0gZGF0 YS5mcmFtZShhPTE6MiwgYj1ybm9ybSgyKSkKYS5kZiRhCnRlc3RmdW5jdGlvbiA8LSBmdW5jdGlv bihhPU5VTEwsIC4uLikgewogIGZvcihpIGluIDE6bGVuZ3RoKGEpKSB7CiAgICBnc3ViKGFbW2ld XSwgIihbYS1yXXxbQS1SXSkiLCAiYmxhIil9CiAgcHJpbnQoYSl9ClxzdG9wUgoKXHN0b3B0ZXh0 ------=_Part_53429_1829720.1149616819402 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ntg-context mailing list ntg-context@ntg.nl http://www.ntg.nl/mailman/listinfo/ntg-context ------=_Part_53429_1829720.1149616819402--