rtoy / maxima

A Clone of Maxima's repo
Other
0 stars 0 forks source link

mactex ignores aliases / FIX #3065

Closed rtoy closed 1 week ago

rtoy commented 1 week ago

Imported from SourceForge on 2024-07-07 12:42:57 Created by willisbl on 2004-05-17 19:01:36 Original: https://sourceforge.net/p/maxima/bugs/569


Mactex ignores aliases; here is an example

(%i1) ordergreat(a); (%o1) DONE (%i2) tex(a); $$_101a\leqno{\tt NIL}$$ (%o2) NIL (%i3) build_info();

Maxima version: 5.9.0.1cvs Maxima build date: 12:29 5/12/2004 host type: i686-pc-mingw32 lisp-implementation-type: Kyoto Common Lisp lisp-implementation-version: GCL 2.7.0

Here is one way fix this bug; change tex-atom to

(defun tex-atom (x l r) ;; atoms: note: can we lose by leaving out {}s ? (if (symbolp x) (setq x (or (get x 'reversealias) x))) (append l (list (cond ((numberp x) (texnumformat x)) ((and (symbolp x) (get x 'texword))) ((stringp x) (tex-string x)) ((characterp x) (tex-char x)) (t (tex-stripdollar x)))) r))

Testing ...

(%o3) (%i4) load("c:/maximacvs/maxima/src/mactex.lisp");

(%o4) c:/maximacvs/maxima/src/mactex.lisp (%i5) tex(a);

$$a\leqno{\tt NIL}$$ (%o5) NIL (%i6)

Ordergreat isn't all that useful, but it is a good way to change the ordering of an expression to something more standard for typesetting.

Barton

rtoy commented 1 week ago

Imported from SourceForge on 2024-07-07 12:42:59 Created by rtoy on 2004-11-23 16:02:53 Original: https://sourceforge.net/p/maxima/bugs/569/#22bf


Logged In: YES user_id=28849

Is there a reason not to apply this fix?

rtoy commented 1 week ago

Imported from SourceForge on 2024-07-07 12:43:02 Created by willisbl on 2004-11-23 17:19:48 Original: https://sourceforge.net/p/maxima/bugs/569/#b8fb


Logged In: YES user_id=895922

I can't think of any reason to not apply it---I've used the patch a few times to help tidy tex output. For this purpose, it doesn't work all that well. Say I want all x's before y's. Using ordergreat works in a sum, but not in a product

(%i1) x+y+x*y; (%o1) x y + y + x (%i2) ordergreat(x,y,z); (%o2) done (%i3) x+y+x*y; (%o3) y x + x + y

(The funny \leqno{\tt ...} stuff in my first posting was due to a mactex bug that is no longer with us, I think).

Barton

rtoy commented 1 week ago

Imported from SourceForge on 2024-07-07 12:43:06 Created by robert_dodier on 2006-07-29 06:31:36 Original: https://sourceforge.net/p/maxima/bugs/569/#1fbb


rtoy commented 1 week ago

Imported from SourceForge on 2024-07-07 12:43:09 Created by robert_dodier on 2006-07-29 06:31:36 Original: https://sourceforge.net/p/maxima/bugs/569/#bf7b


Logged In: YES user_id=501686

Observed in 5.9.3cvs.

rtoy commented 1 week ago

Imported from SourceForge on 2024-07-07 12:43:13 Created by robert_dodier on 2006-09-09 15:10:57 Original: https://sourceforge.net/p/maxima/bugs/569/#26b3


rtoy commented 1 week ago

Imported from SourceForge on 2024-07-07 12:43:16 Created by robert_dodier on 2008-01-17 04:48:08 Original: https://sourceforge.net/p/maxima/bugs/569/#d2c3


Logged In: YES user_id=501686 Originator: NO

I've pasted (if (symbolp x) (setq x (or (get x 'reversealias) x))) into TEX-ATOM and the result seems to work as expected. Committed as r1.58 src/mactex.lisp.

rtoy commented 1 week ago

Imported from SourceForge on 2024-07-07 12:43:20 Created by robert_dodier on 2008-01-17 15:21:23 Original: https://sourceforge.net/p/maxima/bugs/569/#998a


Logged In: YES user_id=501686 Originator: NO

Closing this report as fixed.