Subject: mailing-list for TeXmacs Users
List archive
From : <address@hidden>- To: TeXmacs <address@hidden>
- Cc: texmacs-users <address@hidden>
- Subject: Re: transform display equation in several equations
- Date: Wed, 9 Dec 2020 13:43:29 +0100
Dear Texmacs users, and contributors,
I was about to send an email to suggest the introduction of such a feature. Thank you for introducing it so quickly, it truly is a life-changer when you take your lessons directly on Texmacs !
I have a few suggestions to make it more fine-tuned :
- Quantificators like forall and belongto should not be placed in the middle of "several equations" : only binary relations (equal, inferior...), arrows and negations should (I refer to the categories of symbols available from the menu bar). See this example :
- As Vincent Douce suggested, a shortcut to automatically insert a new line with the same content as the previous one in "several equations" would also be a life changer, especially in calculus and analysis. I would personally suggest the Ctrl+Enter shortcut, but obviously it is up to you !!
Thank you very much for making Texmacs alive and well ! I sincerely appreciate everything that has and is being done.
Best wishes,
Nicolas.
Le mar. 17 nov. 2020 à 17:55, TeXmacs <address@hidden> a écrit :
Dear Slava and all,
Let me briefly synthesize a few general rules about my replies to this list
for those who are new.
- When I say that some feature has been implemented in SVN revision xyz,
this means that it will only be available in the next release of TeXmacs.
- Of course, if you are impatient, then you can compile the SVN version yourself.
- For minor changes (and not affecting the C++ code) you can also look
at the differences between revision xyz and the previous one.
When applying these changes to your installed version,
the requestion feature should generally also work.
- You can browse the source code here:
http://svn.savannah.gnu.org/viewvc/texmacs/trunk/
This also allows you to view the differences between various versions.
Best wishes, --Joris
On Mon, Nov 16, 2020 at 11:01:22PM +0100, Massimiliano Gubinelli wrote:
> Dear Slava,
>
> On 16. Nov 2020, at 18:59, Slava Rychkov <[1]address@hidden>
> wrote:
> Ah OK. I have 13071. Not surprisingly, Joris’s revision is not there.
> But I guess I will just wait then.
> Best, Slava
>
> On 16 Nov 2020, at 18:57, Peter Rapčan <[2]address@hidden> wrote:
>
> you can try to add the scheme code below to your init-texmacs.scm
> (extracted from the current svn).
> It seems to work for me, but I'm not sure if it will work in your version.
> But maybe then you will have just to tweak a little. Then the shortcut
> Joris implements will be available to you until you can install a more
> recent version.
> For a rapid test, just copy&paste the code in a Scheme session and then
> try the shortcuts on a math _expression_.
> Max
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;; Switching between displayed equations and equation arrays
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> (define (search-labels t)
> (tree-search t (lambda (l) (tree-in? l (label-tag-list)))))
> (define (cut-all t w)
> (cond ((tree-atomic? t) (noop))
> ((tree-is? t w) (tree-cut t))
> (else (for-each (cut cut-all <> w) (tree-children t)))))
> (define (check-border? l empty?)
> (cond ((null? l) #t)
> ((and (not empty?) (nnull? (car l)) (!= (caar l) "")) #f)
> (else (check-border? (cdr l) (== (cAr (car l)) "")))))
> (define (convertible-eqnarray? t)
> (let* ((rs (select (tm->stree t) '(:* row)))
> (rcs (map (lambda (r) (select r '(:* cell 0))) rs)))
> (check-border? rcs #t)))
> (tm-define (eqnarray->equation t)
> (with labs (map tree-copy (search-labels t))
> (when (and (<= (length labs) 1) (convertible-eqnarray? t))
> (cut-all t 'label)
> (cut-all t 'eq-number)
> (let* ((l* (select t '(:* cell 0)))
> (l (if (null? labs) l* (cons (car labs) l*)))
> (c (apply tmconcat (map tree->stree l)))
> (n (if (null? labs) `(equation* ,c) `(equation ,c))))
> (tree-set! t n)
> (tree-go-to t 0 :end)))))
> (define (binary-relations)
> (or (get-packrat-definition "std-symbols" "Relation-nolim-symbol")
> (list)))
> (define (binary-relation? t)
> (in? (tm->stree t) (binary-relations)))
> (define (atom-decompose t)
> (if (tree-atomic? t)
> (tmstring->list (tree->string t))
> (list t)))
> (define (concat-decompose t)
> (cond ((tree-atomic? t) (atom-decompose t))
> ((tree-is? t 'concat)
> (apply append (map atom-decompose (tree-children t))))
> (else (list t))))
> (define (make-eqn-row-sub l)
> (list "" (car l) (apply tmconcat (cdr l))))
> (define (finalize-row l)
> `(row (cell ,(car l)) (cell ,(cadr l)) (cell ,(caddr l))))
> (tm-define (equation->eqnarray t)
> (let* ((labs (map tm->stree (search-labels t)))
> (c* (tree-ref t 0))
> (c (if (tree-func? c* 'document 1) (tree-ref c* 0) c*))
> (l0 (concat-decompose c))
> (l1 (list-filter l0 (lambda (x) (not (tm-is? x 'label)))))
> (l2 (list-scatter l1 binary-relation? #t)))
> (when (>= (length l2) 2)
> (cut-all t 'label)
> (let* ((l3 (cons (list (apply tmconcat (car l2))
> (caadr l2)
> (apply tmconcat (cdadr l2)))
> (map make-eqn-row-sub (cddr l2))))
> (l4 (if (null? labs) l3
> (rcons (cDr l3)
> (rcons (cDr (cAr l3))
> (tmconcat (cAr (cAr l3))
> '(eq-number) (car labs))))))
> (l5 (map finalize-row l4))
> (r `(eqnarray* (document (tformat (table ,@l5))))))
> (tree-set! t r)
> (tree-go-to t 0 0 0 :last :last 0 :end)))))
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;; Special toggles
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> (kbd-map
> (:require (inside? 'equation*))
> ("C-&" (equation->eqnarray (tree-innermost 'equation*))))
> (kbd-map
> (:require (inside? 'equation))
> ("C-&" (equation->eqnarray (tree-innermost 'equation))))
> (kbd-map
> (:require (inside? 'eqnarray*))
> ("C-&" (eqnarray->equation (tree-innermost 'eqnarray*))))
>
> References
>
> Visible links
> 1. mailto:address@hidden
> 2. mailto:address@hidden
> /usr/bin/xdg-open: line 402: htmlview: command not found
> /usr/bin/xdg-open: line 402: firefox: command not found
> /usr/bin/xdg-open: line 402: mozilla: command not found
> /usr/bin/xdg-open: line 402: netscape: command not found
- Re: transform display equation in several equations, , 12/09/2020
- Re: transform display equation in several equations, TeXmacs, 12/09/2020
- Re: transform display equation in several equations, , 12/29/2020
- Re: transform display equation in several equations, TeXmacs, 12/09/2020
Archive powered by MHonArc 2.6.19.