From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/107724 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Fabrice L Newsgroups: gmane.comp.tex.context Subject: Filter module for R Date: Sun, 14 Jun 2020 23:26:28 -0400 Message-ID: Reply-To: mailing list for ConTeXt users Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) Content-Type: multipart/mixed; boundary="===============2782991951364841246==" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="120686"; mail-complaints-to="usenet@ciao.gmane.io" To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Mon Jun 15 05:27:03 2020 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane-mx.org Original-Received: from zapf.boekplan.nl ([5.39.185.232] helo=zapf.ntg.nl) by ciao.gmane.io with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jkfm2-000VNE-NK for gctc-ntg-context-518@m.gmane-mx.org; Mon, 15 Jun 2020 05:27:02 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 8BC9B163AAA; Mon, 15 Jun 2020 05:26:36 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DiWXxrxRUbCY; Mon, 15 Jun 2020 05:26:34 +0200 (CEST) Original-Received: from zapf.ntg.nl (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id A916A163575; Mon, 15 Jun 2020 05:26:34 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 9A733163575 for ; Mon, 15 Jun 2020 05:26:33 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RQmWIjQvl6sF for ; Mon, 15 Jun 2020 05:26:33 +0200 (CEST) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.219.48; helo=mail-qv1-f48.google.com; envelope-from=fabrice.alpha@gmail.com; receiver= Original-Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by zapf.ntg.nl (Postfix) with ESMTPS id CA146162FD0 for ; Mon, 15 Jun 2020 05:26:32 +0200 (CEST) Original-Received: by mail-qv1-f48.google.com with SMTP id g11so7132774qvs.2 for ; Sun, 14 Jun 2020 20:26:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:subject:message-id:date:to; bh=j/cWdxTCnYTG6NKlsnwkp3j2AJA4Ap3luOZhE+YkP3c=; b=XorRUgBUAeuoNaEsTp1yMPLj3nmHtWOSxrkuhAcMHwgitr61i/pyG2FdRCSoDCCrO8 +AnSdmSt3/fnVfbFJkS+kIUi80o04GrfxTcJ7inNKslqPfCEUiuFzZmetrE3k1YPAIku DPZEWTLTrtx9I3mi1HzAsN7iw8ZfYQh/rspanVD4UwlVGjhM/yeASQ0ULXFOL29n+Ka+ HevA/lip/qDBrW4ZA3HKH9qBWSg+nfEvgzk3Cf8Tir2P35+rQhz6kyJhfgkbac54M7RD otPzQYOzDiFbCejnMEzXJMYqHKYbCtdCMPdjc4KQJTEYJmlGgYRlJ7T0qb3XBWXp3Wkp TCMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:message-id:date:to; bh=j/cWdxTCnYTG6NKlsnwkp3j2AJA4Ap3luOZhE+YkP3c=; b=lvrNy3Mm6TkLqIcGsJaPNOoek49Eekxms8CKuDEIbYMkhdy0mNq0yDBMbKnYXicTbs fXapixki3vLlpQeRivFjDx50l8iab3YTwLMRSbMe/roYIgCqFIt+SYcqXRXNdZ74HDGd offfIXoVMsmLgoKQlfXgHbkhVVx4iiDmN2vyZHt94q12R0/IeWgk+eqMhjYloYY2djyt eEroGMfelm4x7W3Mwyl9YOHy+C4HFYX1pXvg+IpsWV5jJM62Pn2EBpSR/h6+IWgHAZmJ tZz8pRy4w50+CRzYgzAla2K7kdjiI4TbJhCXrDA126Wh8ZZryi/BeKq0Pgt5NjFn2ACC xFfA== X-Gm-Message-State: AOAM532pri2RJot/W9beRxqF9ckkcYeJ6lz6EtOVMiIUhrGJt4vERe23 miRJvS/iOjG51HPLV4QDkzIT0YMU X-Google-Smtp-Source: ABdhPJz+TBJAZvO+abpnyZG8Io+2eyb7xeGJq2YKNGEjnvKdeNpUPTmjS/UNKZIiAUqd6rKv9f70VQ== X-Received: by 2002:a0c:e5c1:: with SMTP id u1mr22937444qvm.140.1592191590548; Sun, 14 Jun 2020 20:26:30 -0700 (PDT) Original-Received: from [192.168.86.243] ([38.74.28.141]) by smtp.gmail.com with ESMTPSA id a21sm9215008qkk.43.2020.06.14.20.26.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 14 Jun 2020 20:26:29 -0700 (PDT) X-Mailer: Apple Mail (2.3608.80.23.2.2) X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.26 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: "ntg-context" Xref: news.gmane.io gmane.comp.tex.context:107724 Archived-At: --===============2782991951364841246== Content-Type: multipart/alternative; boundary="Apple-Mail=_14726439-C038-4C17-B4AD-7965CDF5CAD8" --Apple-Mail=_14726439-C038-4C17-B4AD-7965CDF5CAD8 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Hi, Following a question about the broken R module (R the statistical = software), Aditya suggested me the filter module (thanks to him). I=E2=80=99= m about to distribute a set of course notes to colleagues, and I need to = deal with details now. I have one problem and two questions. 1) the filter collect R code between \startR / \stopR and submit this = code to R. As it can be seen in the following minimal example, when a = label contains an accented character (=C2=AB Fr=C3=A9quence =C2=BB in my = example), the pdf graphic does not contains the =C2=AB =C3=A9 =C2=BB. = Strangely, the snippet of code (which is saved locally as =C2=AB = test2-temp-R-0.tmp =C2=BB (for test2.tex)) when submitted with the same = command as the filtercommand, works correctly; that means the same file = works when submitted to R outside of ConTeXt. I have no idea how to = solve this.=20 2) In a teaching context, we may want sometimes to show the code. The = filter module actually permits to show the output of the code submitted = to R (which can include or not the input commands); would it be possible = to typeset the submitted code ? 3) Finally, using "R CMD BATCH=E2=80=A6 =C2=BB as the filtercommand add = an extra line at the end of the output file which can be typeset to = visualize results. Would it be possible by a magic trick to deleter the = last line of the file ? Here is a minimal code: % =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94= =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2= =80=94 \usemodule[filter] \defineexternalfilter [R] [ filtercommand=3D{R CMD BATCH -q --no-timing --save --restore = \externalfilterinputfile\space \externalfilteroutputfile}, output=3D\externalfilterbasefile.out, directory=3Doutput, readcommand=3D\typefile, read=3Dno, cache=3Dyes, purge=3Dyes ] \starttext Some text... \startR[read=3Dyes] pdf("RPlots/MyHistogram.pdf",5,5) X <- rnorm(200,mean=3D10,sd=3D2) hist(X, col =3D "red3" , xlab=3D"Score QI" , main=3D"", = ylab=3D"fr=C3=A9quence") \stopR \externalfigure[MyHistogram.pdf][width=3D.5\textwidth]=20 \stoptext % =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94= =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2= =80=94 Sorry for the three questions=E2=80=A6 and thanks for any help. Fabrice. --Apple-Mail=_14726439-C038-4C17-B4AD-7965CDF5CAD8 Content-Type: multipart/mixed; boundary="Apple-Mail=_F59C8CD6-5566-4382-BA08-3B60440C984C" --Apple-Mail=_F59C8CD6-5566-4382-BA08-3B60440C984C Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8
Hi,

Following a question about the broken R = module (R the statistical software), Aditya suggested me the filter = module (thanks to him). I=E2=80=99m about to distribute a set of course = notes to colleagues, and I need to deal with details now. I have one = problem and two questions.

1) the filter collect R code between \startR / \stopR and = submit this code to R. As it can be seen in the following minimal = example, when a label contains an accented character = (=C2=AB Fr=C3=A9quence =C2=BB in my example), the pdf graphic = does not contains the =C2=AB =C3=A9 =C2=BB. Strangely, the snippet = of code (which is saved locally as =C2=AB test2-temp-R-0.tmp =C2= =BB (for test2.tex)) when submitted with the same command as the = filtercommand, works correctly; that means the same file works when = submitted to R outside of ConTeXt. I have no idea how to solve = this. 

2) = In a teaching context, we may want sometimes to show the code. The = filter module actually permits to show the output of the code submitted = to R (which can include or not the input commands); would it be possible = to typeset the submitted code ?

3) Finally, using "R CMD BATCH=E2=80=A6 =C2=BB as the = filtercommand add an extra line at the end of the output file which = can be typeset to visualize results. Would it be possible by = a magic trick to deleter the last line of the file = ?

Here = is a minimal code:
% = =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2= =80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80= =94
\usemodule[filter]

\defineexternalfilter
  = [R]
  [ filtercommand=3D{R CMD BATCH -q = --no-timing --save --restore \externalfilterinputfile\space = \externalfilteroutputfile},
    =  output=3D\externalfilterbasefile.out,
  =    directory=3Doutput,
    =  readcommand=3D\typefile,
    =  read=3Dno,
    =  cache=3Dyes,
    =  purge=3Dyes
   ]

\starttext

Some text...

\startR[read=3Dyes]
  =  pdf("RPlots/MyHistogram.pdf",5,5)
  =  X <- rnorm(200,mean=3D10,sd=3D2)
  =  hist(X, col =3D  "red3" ,  xlab=3D"Score QI" , main=3D"", = ylab=3D"fr=C3=A9quence")
\stopR

\externalfigure[MyHistogram.pdf][width=3D.5\textwidth] 

\stoptext
% = =E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2= =80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80= =94

Sorry for the three questions=E2=80=A6 = and thanks for any help.
Fabrice.


= --Apple-Mail=_F59C8CD6-5566-4382-BA08-3B60440C984C Content-Disposition: inline; filename=MyHistogram.pdf Content-Type: application/pdf; x-unix-mode=0644; name="MyHistogram.pdf" Content-Transfer-Encoding: base64 JVBERi0xLjQKJYHigeOBz4HTXHIKMSAwIG9iago8PAovQ3JlYXRpb25EYXRlIChEOjIwMjAwNjEz MTEzMjExKQovTW9kRGF0ZSAoRDoyMDIwMDYxMzExMzIxMSkKL1RpdGxlIChSIEdyYXBoaWNzIE91 dHB1dCkKL1Byb2R1Y2VyIChSIDMuNi4xKQovQ3JlYXRvciAoUikKPj4KZW5kb2JqCjIgMCBvYmoK PDwgL1R5cGUgL0NhdGFsb2cgL1BhZ2VzIDMgMCBSID4+CmVuZG9iago3IDAgb2JqCjw8IC9UeXBl IC9QYWdlIC9QYXJlbnQgMyAwIFIgL0NvbnRlbnRzIDggMCBSIC9SZXNvdXJjZXMgNCAwIFIgPj4K ZW5kb2JqCjggMCBvYmoKPDwKL0xlbmd0aCA1ODAgL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3Ry ZWFtCnicpZVNbxoxEIbv+yvmCIdOPOPvK1FbFamVKEg9RDkRckANVYKq/v3aO2btRRBlk8OueHn2 9djjsYdgCQR7eO5W6Vlsupvjz68L2B47hUopaN/H7aG7+cLp+80jEGMB8hJNXqFPX4T83jzBbL39 87KD1bc5bPbd500f4TRE4/vUDJd+RgfkFIZ+jLvZ48scrIIZ4vPf3WG7m9/DZplHy3OWCd+uL0x4 ffsj/est/Ovu7kHBQ0ewTM++oz7S985FVB68RmPgCTRF9LrI37A+w6KcQxZKaZRgBlxkwy2j48pF NjwaNKpykZWzdkhh4EU23PucqYGLrHy0nGF1lX94t53NAxqPVjbbXNrlK4Wikosar5vgNRE5Nt4w wRv8eM6k3m5mjuNJE08we0IOrXlCujRpVK41D/myqSoNBMLg0yaL4hjyKvMmn2HKJSqqUkpBgh1w kQ03GoOuXGTDvcFAlYusnFUqlDjwIhueKtvX6RXZcOfzKR64yIbLcgdeV/+G68YQ+nSIAlrdZ/Zi PbzqJdWXRTbb6Wbtkdwrpfi62wUkI+53xI4RSeqJp8dmrZCUuKfHZkeoQu/W74gdOZ+H3j3ETt2g 1L9ceSzNiLk/NakN/YJDvfHo8o338W4ip4tTM4i5EdqYQy+6EPPt3MK880Fg6R0tZYP+RDXlgh4N nJPPBUtjGZlV6iW+4JSNVJ4jnMK5E5a2c83NZPNlexVLUxpNjTXGMjW2/jwlzapLxxpRhfFE0zE+ y0mqA13Suer+AxcqwJplbmRzdHJlYW0KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9L aWRzIFsgNyAwIFIgXSAvQ291bnQgMSAvTWVkaWFCb3ggWzAgMCAzNjAgMzYwXSA+PgplbmRvYmoK NCAwIG9iago8PAovUHJvY1NldCBbL1BERiAvVGV4dF0KL0ZvbnQgPDwvRjIgMTAgMCBSID4+Ci9F eHRHU3RhdGUgPDwgPj4KL0NvbG9yU3BhY2UgPDwgL3NSR0IgNSAwIFIgPj4KPj4KZW5kb2JqCjUg MCBvYmoKWy9JQ0NCYXNlZCA2IDAgUl0KZW5kb2JqCjYgMCBvYmoKPDwgL0FsdGVybmF0ZSAvRGV2 aWNlUkdCIC9OIDMgL0xlbmd0aCAyNTk2IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4 nJ2Wd1RT2RaHz703vVCSEIqU0GtoUgJIDb1IkS4qMQkQSsCQACI2RFRwRFGRpggyKOCAo0ORsSKK hQFRsesEGUTUcXAUG5ZJZK0Z37x5782b3x/3fmufvc/dZ+991roAkPyDBcJMWAmADKFYFOHnxYiN i2dgBwEM8AADbADgcLOzQhb4RgKZAnzYjGyZE/gXvboOIPn7KtM/jMEA/5+UuVkiMQBQmIzn8vjZ XBkXyTg9V5wlt0/JmLY0Tc4wSs4iWYIyVpNz8ixbfPaZZQ858zKEPBnLc87iZfDk3CfjjTkSvoyR YBkX5wj4uTK+JmODdEmGQMZv5LEZfE42ACiS3C7mc1NkbC1jkigygi3jeQDgSMlf8NIvWMzPE8sP xc7MWi4SJKeIGSZcU4aNkxOL4c/PTeeLxcwwDjeNI+Ix2JkZWRzhcgBmz/xZFHltGbIiO9g4OTgw bS1tvijUf138m5L3dpZehH/uGUQf+MP2V36ZDQCwpmW12fqHbWkVAF3rAVC7/YfNYC8AirK+dQ59 cR66fF5SxOIsZyur3NxcSwGfaykv6O/6nw5/Q198z1K+3e/lYXjzkziSdDFDXjduZnqmRMTIzuJw +Qzmn4f4Hwf+dR4WEfwkvogvlEVEy6ZMIEyWtVvIE4gFmUKGQPifmvgPw/6k2bmWidr4EdCWWAKl IRpAfh4AKCoRIAl7ZCvQ730LxkcD+c2L0ZmYnfvPgv59V7hM/sgWJH+OY0dEMrgSUc7smvxaAjQg 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 HIe6Lztd7hmeN3ziivuV01e9r567FnDt0sj8keHrUddv3ki4Ib3Ju/noVvqt57dzbs/cWXMXfbfk ntK9ivua9xt+NP2xXeogPT7qPTrwYMGDO2PcsSc/Zf/0frzoIflhxYTORPMj20fHJn0nLz9e+Hj8 SdaTmafFPyv/XPvM5Nl3v3j8MjAVOzX+XPT806+bX6i/2P/S7mXvdNj0/VcZr2Zel7xRf3PgLett /7uYdxMzue+x7ys/mH7o+Rj08e6njE+ffgP3hPP7ZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjw8 Ci9UeXBlIC9FbmNvZGluZyAvQmFzZUVuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKL0RpZmZlcmVu Y2VzIFsgNDUvbWludXMgOTYvcXVvdGVsZWZ0CjE0NC9kb3RsZXNzaSAvZ3JhdmUgL2FjdXRlIC9j aXJjdW1mbGV4IC90aWxkZSAvbWFjcm9uIC9icmV2ZSAvZG90YWNjZW50Ci9kaWVyZXNpcyAvLm5v dGRlZiAvcmluZyAvY2VkaWxsYSAvLm5vdGRlZiAvaHVuZ2FydW1sYXV0IC9vZ29uZWsgL2Nhcm9u IC9zcGFjZV0KPj4KZW5kb2JqCjEwIDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UeXBl MSAvTmFtZSAvRjIgL0Jhc2VGb250IC9IZWx2ZXRpY2EKL0VuY29kaW5nIDkgMCBSID4+CmVuZG9i agp4cmVmCjAgMTEKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDIxIDAwMDAwIG4gCjAwMDAw MDAxNjMgMDAwMDAgbiAKMDAwMDAwMDk0MyAwMDAwMCBuIAowMDAwMDAxMDI2IDAwMDAwIG4gCjAw MDAwMDExMzggMDAwMDAgbiAKMDAwMDAwMTE3MSAwMDAwMCBuIAowMDAwMDAwMjEyIDAwMDAwIG4g CjAwMDAwMDAyOTIgMDAwMDAgbiAKMDAwMDAwMzg2NiAwMDAwMCBuIAowMDAwMDA0MTIzIDAwMDAw IG4gCnRyYWlsZXIKPDwgL1NpemUgMTEgL0luZm8gMSAwIFIgL1Jvb3QgMiAwIFIgPj4Kc3RhcnR4 cmVmCjQyMjAKJSVFT0YK --Apple-Mail=_F59C8CD6-5566-4382-BA08-3B60440C984C Content-Transfer-Encoding: 7bit Content-Type: text/html; charset=us-ascii
--Apple-Mail=_F59C8CD6-5566-4382-BA08-3B60440C984C-- --Apple-Mail=_14726439-C038-4C17-B4AD-7965CDF5CAD8-- --===============2782991951364841246== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSWYgeW91ciBxdWVzdGlvbiBpcyBvZiBpbnRlcmVz dCB0byBvdGhlcnMgYXMgd2VsbCwgcGxlYXNlIGFkZCBhbiBlbnRyeSB0byB0aGUgV2lraSEKCm1h aWxsaXN0IDogbnRnLWNvbnRleHRAbnRnLm5sIC8gaHR0cDovL3d3dy5udGcubmwvbWFpbG1hbi9s aXN0aW5mby9udGctY29udGV4dAp3ZWJwYWdlICA6IGh0dHA6Ly93d3cucHJhZ21hLWFkZS5ubCAv IGh0dHA6Ly9jb250ZXh0LmFhbmhldC5uZXQKYXJjaGl2ZSAgOiBodHRwczovL2JpdGJ1Y2tldC5v cmcvcGhnL2NvbnRleHQtbWlycm9yL2NvbW1pdHMvCndpa2kgICAgIDogaHR0cDovL2NvbnRleHRn YXJkZW4ubmV0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCg== --===============2782991951364841246==--