mailing-list for TeXmacs Users

Text archives Help


[TeXmacs] Mathematica plugin on OS X


Chronological Thread 
  • From: Peter Rapčan <address@hidden>
  • To: texmacs-users <address@hidden>, address@hidden
  • Cc: address@hidden, address@hidden, "Andrey G. Grozin" <address@hidden>
  • Subject: [TeXmacs] Mathematica plugin on OS X
  • Date: Tue, 28 Jun 2016 04:14:31 +0200

Hello everybody,


I tried to get the Mathematica plugin to work on OS X 10.11.5, TeXmacs
1.99.4, with Mathematica 10.0.0.0.


First of all, I copied the tm_mathematica.c from Tian-Min Yan to the
/Applications/TeXmacs.app/Contents/Resources/share/TeXmacs/plugins/mathematica/src.lazy/
directory.

Then I performed two changes to the file:
- replaced all occurences of MLDisownString by MLReleaseString
- replaced all occurences ofMLDisownSymbol by MLReleaseSymbol
(According to the Wolfram documentation, as of Mathematica 6.0 the former
functions have been superseded by the latter functions. I am not sure from
which version of Mathematica the old functions cannot be used; in any case I
could not compile the tm_mathematica.c with the libMLi3.a choice without
these changes in the case of Mathematica 10.0.0.0). I suppose these changes
need to be done also if one wanted to use the stock tm_mathematica.c provided
in a TeXmacs installation.

The adapted tm_mathematica.c is file is in the attached.


Next, I used the script provided by Singh Madhusudan and made some changes to
make it work. The changes I had to make are the following:
- change the Mathlink_Path variable (Mathematica version 9 or greater
contains the architecture specification [in my case MacOSX-x86-64] in the
path to the directory where Mathlink resides).
- change the /usr/lib/ to /usr/local/lib/ since from OS X 10.11 the System
Integrity Protection is enabled, forbidding to write to the /usr/lib/
directory irrespective of administrator rights.
- change the compiler commant to use g++ instead of gcc and use the oprion
-l$lib_option -stdlib=libstdc++ instead of the -l$lib_option -lstdc++

With these changes, running the script compiled the tm_mathematica.c just
fine, with a single warning “tm_mathematica.c:544:46: warning: format
specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long')
[-Wformat]
printf("\2prompt#\\red In[%1d]:= {}\5\5",InNum++);”

I attach the working script as “tmMMAscript".


Next, as TeXmacs did not recognize Mathematica as available in the list of
supported sessions, I created a wrapper “math” command that runs the
MathKernel and placed in into /usr/local/bin/. The wrapper is attached.
(note that creating a symlink to MathKernel does not work). After doing this,
TeXmacs offers the Mathematica session in its list of supported sessions.


Upon including a Mathematica session, I was prompted whether I allow
tm_mathematica.bin to accept incoming connections, from which I deduce the
MathLink is working… well… almost. Unfortunatelly, the session does not
return results of computations; instead it shows a “busy…” message (see the
attached screenshot).

PNG image



I looked at the tm_mathematica file provided by TeXmacs, and tried to tweak
it (I think the paths are based on some old mathematica version, so I changed
the relevant command to

export MATHLINK_PATH="$MATH3/CompilerAdditions"

or

export MATHLINK_PATH="$MATH3/CompilerAdditions/AlternativeLibraries"
(According to the readme file provided in the AlternativeLibraries directory:
“This AlternativeLibraries directory contains a versions of the MathLink
libraries compiled with -stdlib=libc++ compiler flags. These libraries exist
to link programs that need compatibility with Apple's newer libc++ C++
library.”
Since I compiled with the -stdlib=libstdc++ option the second choice should
be the correct one).

In any case, none of the changes I tried to make to the tm_mathematica file
helped to make the plugin work, hence I am stuck with the busy message. Any
help to resolve the issue would be greatly appreciated.


Cheers,
-Peter.

Attachment: tmMMAscript
Description: Binary data

Attachment: tm_mathematica.c
Description: Binary data

Attachment: math
Description: Binary data




> On 31 Oct 2012, at 11:35, Tian-Min Yan <address@hidden> wrote:
>
> Hi all,
>
> Now I know how to output PS/EPS graphics. According to the manual
> section "Interfering TeXmacs with other programs", I simply put
>
> fputs("\2ps:", stdout);
> fflush(stdout);
> system("cat ~/tmp.eps");
> fputs("\5{}{}\n\n", stdout);
>
> into the code (see the attachment), now the EPS figure shows up. Can we
> adjust the size and the position of the figure within TeXmacs?
>
> Besides, I am wondering if we can display a PNG file, since those
> rasterized formats have significantly smaller size and the program runs
> faster. We should be able to choose between different formats to meet
> different purposes.
>
> One more question, can anybody who is familiar with Mathematica figure
> out why "Export["./tmp.eps", expr]" sometimes outputs figures in the
> wrong position, as is shown in the attachment where the main part is not
> at the center? In contrast, PNG file does not have this problem.
>
> Best,
> Tian-Min
>
> On Tue, 2012-10-30 at 19:01 +0100, address@hidden
> wrote:
>> Hi Tian-Min,
>>
>> The plugin worked perfectly for graphics in old times when Mathematica
>> produced pure postscript graphics (this was in versions <=5).
>> If you are happy with the old-style Mathematica graphics, in your
>> mathematica session simply evaluate : Get["Version5`Graphics`"]
>> and then the plugin will recognize the ps graphics and show them in
>> TeXmacs (but only for old -or unchanged- graphics functions, old options
>> etc.)
>>
>> It would be nice to benefit from the new mathematica graphics, but that
>> would require someone to volunteer for improving the plugin in that area.
>>
>> Best,
>> Philippe
>>
>>
>> Tian-Min Yan - address@hidden wrote:
>>> Hi all,
>>>
>>> I am using Mathematica 8. The Mathematica plugin in TeXmacs works
>>> perfectly with a single expression if it does not contain graphical
>>> elements. But if we use functions involving plots, the output is
>>> problematic. Has anybody figured out the implementation of embedded
>>> figures with the Mathematica plugin?
>>>
>>> Best,
>>> Tian-Min
>>>
>>>
>>>
>>>
>>
>
>
> <texmacs_wrong_position.png><tm_mathematica.c>




Archive powered by MHonArc 2.6.19.

Top of page