emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Eric S Fraga <e.fraga@ucl.ac.uk>
To: Matt Price <moptop99@gmail.com>
Cc: pietru@caramail.com, Org Mode List <emacs-orgmode@gnu.org>
Subject: Re: Multiple calc commands with orgbabel
Date: Wed, 05 May 2021 17:39:55 +0100	[thread overview]
Message-ID: <87eeelrv6s.fsf@ucl.ac.uk> (raw)
In-Reply-To: <CAN_Dec_WXf+GKAXagCB34dtrpKjK=h_aE2Ou5ObTe_otfe0-ww@mail.gmail.com> (Matt Price's message of "Wed, 5 May 2021 11:11:19 -0400")

On Wednesday,  5 May 2021 at 11:11, Matt Price wrote:
> Can you explain how you get calc embedded mode working in org? I have
> never used it and it sounds interesting, but I don't understand what
> hte delimiters are.

Sure.  Here is a mini-tutorial! :-) I recently gave an interactive talk
on embedded Calc...

The out-of-the-box settings for Emacs embedded mode are such that any
line surrounded by empty lines (i.e. couple of blank lines before and
after) can be interpreted as an expression to evaluate by Calc using
"C-x * u".  You do not need to place these expressions in any src block.

The detection can be somewhat fragile so extra blank lines are sometimes
necessary for some reason.

For instance, copy the following few lines to a text buffer and type
"C-x * u" on each line in turn:

--8<---------------cut here---------------start------------->8---


x := 180 =>


y := sin(x / 4) => 


z := 2 y^2 => 


--8<---------------cut here---------------end--------------->8---

The general format for an embedded calc expression is

   var := expression => value
   
where only "expression" is required.  If you don't have "=>", evaluating
the expression will replace the expression with its value.

If you have lines as above, with assignments and values after the actual
expression, you can then go back to the first line and change the value,
say to 90, type "C-x *u" on that line again and all of them should
update.

The calculations can involve calculus (derivatives, integration), linear
algebra, and units.  Calc is actually an incredibly powerful (and
relatively unknown) computer algebra system hiding within Emacs.

The variables that could be customised to have org specific recognition
would be calc-embedded-open-formula and calc-embedded-close-formula.  It
might be useful for the community to think about whether org should have
org specific settings for these variables.  I actually define settings
for org so that only lines that look like this:

#+calc: expression

are interpreted (without requiring empty lines around such lines)
[1].  I then have code for processing these lines on export to LaTeX to
present the equations and results in a more accessible way as I use
embedded calc a lot for teaching (beamer slides).

Final note: the info manual for embedded Calc mode emphasises editing
the expressions and interacting with Calc while doing so.  I find that
method of working rather confusing, tiring, and unproductive (for my use
case) so I write the calc lines using normal editing and only "update"
the expressions to get the results.  YMMV, of course.

Let me know if this helped at all,
eric


Footnotes:
[1] it would be nice to have some generic way to hijack C-c C-c on such
     lines to do what I want, e.g. calc-embedded-update-formula.

-- 
: Eric S Fraga via Emacs 28.0.50, Org release_9.4.5-395-g82fbdd


  parent reply	other threads:[~2021-05-05 16:55 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-05  5:46 Multiple calc commands with orgbabel pietru
2021-05-05  6:33 ` Eric S Fraga
2021-05-05  6:40   ` pietru
2021-05-05  6:41     ` Eric S Fraga
2021-05-05  6:45       ` pietru
2021-05-05 15:11   ` Matt Price
2021-05-05 15:29     ` pietru
2021-05-05 16:19       ` Tom Gillespie
2021-05-05 16:39     ` Eric S Fraga [this message]
2021-05-05 17:03       ` Tom Gillespie
2021-05-06 11:16         ` Bastien
2021-05-06 15:21           ` Tom Gillespie
2021-05-07  4:04             ` Bastien
2021-05-07  7:01               ` Tom Gillespie
2021-05-07  7:31                 ` Bastien
2021-05-05 20:24       ` pietru
2021-05-05 23:09       ` ob-fortran behaviour Christopher Dimech
2021-05-05 23:29         ` Christopher Dimech
2021-05-06  2:24       ` ob-fortran fixes to column position 6 and subroutine keywords pietru
2021-05-05  7:12 ` Multiple calc commands with orgbabel Dr. Arne Babenhauserheide
2021-05-05  7:20   ` pietru
2021-05-05  7:23   ` Eric S Fraga
2021-05-05  7:26     ` pietru
2021-05-05  7:59       ` Eric S Fraga
2021-05-05  8:00         ` pietru

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eeelrv6s.fsf@ucl.ac.uk \
    --to=e.fraga@ucl.ac.uk \
    --cc=emacs-orgmode@gnu.org \
    --cc=moptop99@gmail.com \
    --cc=pietru@caramail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).