all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jay Belanger <jay.p.belanger@gmail.com>
To: help-gnu-emacs@gnu.org
Subject: Re: Calc embedded assignment without producing output
Date: Sun, 03 Apr 2011 22:47:53 -0500	[thread overview]
Message-ID: <87pqp2ekye.fsf@gmail.com> (raw)
In-Reply-To: mailman.3.1301860255.14368.help-gnu-emacs@gnu.org


> Here's an example.  I'd like to be able to use calc in the following manner:
>
> \documentclass{article}
> \begin{document}
> %%% f := 10 %%%
>
> The first value is
> $
> %%% f * 15 => %%%
> 150
> $
>
> The second value is
> $
> %%% f * 13 => %%%
> 130
> $
> \end{document}
>
> So, I'd like assignment f:=10 to be invisible in the document, but
> calc always inserts "f \gets 10" after evaluating it.

Calc could be adjusted to keep the ":=", although I don't suppose that
it matters whether there is "f:=10" or "f \gets 10" in the comment.

> Also, I'd like the evaluation of f*13 to only insert "150", and not
> "\evalto f * 15 \to 150".
>
> Is there a way to get this kind of behavior from calc?

Do you mean put the result on a separate line, but keep the formula
inside a comment?  Having something like that in Calc would probably be
a good idea.  For the time being, perhaps the following kludge would work.  
Keep the assignments and evaluation in comments, as above, but put them
in dollar signs (to make them easier to activate):

****
%%% $f := 10$ %%%

The first value is
$
%%% $f * 15 =>$ %%%

$
****

When the => formulas get updated, the result will still be in
comments, like

****
%%% $f \gets 10$ %%%

The first value is
$
%%% $\evalto f 15 \to 150$ %%%

$
****

Every once in a while run the function

(defun update-assignments ()
  (interactive)
  (save-excursion
    (goto-char (point-min))
    (while (re-search-forward "^%+ *\\$.*\\\\to *\\(.*\\)\\$" nil t)
      (forward-line 1)
      (kill-line 1)
      (insert (match-string 1) "\n"))))

which will put the result of the => formulas on the following lines.
(Notice that the following line gets killed each time the above function
is run, so don't start off with something you want kept there.)

****
%%% $f \gets 10$ %%%

The first value is
$
%%% $\evalto f 15 \to 150$ %%%
150
$
****

This isn't quite what you asked for, but perhaps it will do for the time
being.

Jay


       reply	other threads:[~2011-04-04  3:47 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.3.1301860255.14368.help-gnu-emacs@gnu.org>
2011-04-04  3:47 ` Jay Belanger [this message]
2011-04-03  9:36 Calc embedded assignment without producing output Josip Gracin

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

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

  git send-email \
    --in-reply-to=87pqp2ekye.fsf@gmail.com \
    --to=jay.p.belanger@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.