- 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).
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>
- [TeXmacs] Mathematica plugin on OS X, Peter Rapčan, 06/28/2016
Archive powered by MHonArc 2.6.19.