MaTeX:在Mathematica的图片中插入LaTeX代码的工具
来源:互联网 发布:酷酷跑软件 编辑:程序博客网 时间:2024/06/05 12:02
Mathematica图片中对laTeX的支持实在不敢恭维。连Geogebra都比Mathematica强。
今天搜了一下,发现有这个工具可以用,看上去不错。
作者说32位的Windows下可能无法使用,所以,如果是win32就暂时不用尝试了;不过,我尝试了下,还是搞定了
配置的时候,需要用这样的代码,而不是作者所提到的,不论32位还是64位windows都必须这样,很奇怪。仅供参考。
我把涉及到的GhostScript 920的windows版安装程序(32bit ,64bit)以及MaTeX源文件1.1.0版放在CSDN供下载。
ConfigureMaTeX[ "pdfLaTeX" -> "X:\\Program Files\\CTEX\\MiKTeX\\miktex\\bin\\pdflatex.exe", "Ghostscript" -> "X:\\Program Files\\gs\\gs9.18\\bin\\gswin32c.exe"]
下载的github地址:https://github.com/szhorvat/MaTeX/releases
https://github.com/szhorvat/MaTeX/releases
https://github.com/szhorvat/MaTeX/archive/v1.6.3.zip
当前1.60
https://github.com/szhorvat/MaTeX/releases/download/v1.6.0/MaTeX-1.6.0.zip
建议使用1.3.0以前的版本;之后的版本作者把它们改得使用起来颇为繁琐。本来只是为了实现一个小小的功能,偏要添加太多复杂的花头。简单实用才好。
当前1.3.0版本
当前1.2.0版本
当前1.1.0版本
主页和介绍
http://szhorvat.net/pelican/latex-typesetting-in-mathematica.html
LaTeX typesetting in Mathematica
In Notes.
tags: mathematica
Mathematica is an excellent and flexible visualization tool, and even supports displaying complex mathematical formulae. However, its typesetting quality is not on par with LaTeX. The visual style is not a good match for inclusion in LaTeX documents either. To improve the quality of my figures, I wrote a small Mathematica package that makes it easy to use LaTeX-generated labels: MaTeX.
Update: The post below has been updated for MaTeX version 1.1.0. The changelog is available on GitHub.
There are already several solutions for this problem, such as PSTricks or drawing axes and labels withPGFPlots. None of these solutions make it easy to use a Mathematica-centric workflow though. MaTeX makes generating LaTeX-typeset expressions as simple as
I originally wrote these functions for my own needs, but seeing that others may be interested in them too, I wrapped them up into a package. Feel free to leave comments below and keep in mind that this it is still a work in progress.
Installation
To install MaTeX, download the latest release and drop the MaTeX.m
file in the directory opened bySystemOpen@FileNameJoin[{$UserBaseDirectory, "Applications"}]
.
You will also need:
- A TeX system that includes
pdflatex
with thestandalone
andlmodern
packages. Both TeX Live and MiKTeX should work. Ghostscript 9.15 or later.(Ghostscript 9.20)
On OS X, MacTeX 2015 includes a compatible version of Ghostscript. If you use an older TeX distribution on OS X, get a recent Ghostscript from Richard Koch’s page.
When loading MaTeX for the first time, it will try to automatically detect TeX and Ghostscript. If this fails, it will display instructions on configuring the location of the pdflatex
and gs
executables using theConfigureMaTeX
command. As an example, on my OS X system I needed to use the following configuration:
ConfigureMaTeX["pdfLaTeX" -> "/Library/TeX/texbin/pdflatex", "Ghostscript" -> "/usr/local/bin/gs"]
The existing configuration can always be queried using the command ConfigureMaTeX[]
.
Note: On Windows use the c
-suffixed command line Ghostscript executable, i.e. gswin64c.exe
instead ofgswin64.exe
.
If you prefer, you can use xelatex
instead of pdflatex
. Unlike plain pdfLaTeX, XeLaTeX can load any installed system font.
MaTeX should now be ready to use. Test it using MaTeX["x^2"]
.
Usage examples
First we need to load MaTeX:
<<MaTeX`
My primary use for it is creating figure annotations, as below:
texStyle = {FontFamily -> "Latin Modern Roman", FontSize -> 12};ContourPlot[x^2 + y^4 == 1, {x, -1.2, 1.2}, {y, -1.2, 1.2}, BaseStyle -> texStyle, Epilog -> { Arrow[{{0.1, 0.3}, {0.5, 0.80}}], Inset[MaTeX["x^2+y^4=1", Magnification -> 2], {0.1, 0.3}, Scaled[{0.5, 1}]] }]
Here I used the Latin Modern font for tick labels for visual consistency with the MaTeX/LaTeX output.
We can also use MaTeX to generate beautifully typeset frame labels and frame ticks. Mathematica’s default frame and axes style is dark grey, while MateX outputs black. The BlackFrame
style below makes the frames black too for consistency.
Plot[Sin[x], {x, 0, 2 Pi}, Frame -> True, FrameStyle -> BlackFrame, FrameTicks -> {{Automatic, None}, {Table[{x, MaTeX[x, "DisplayStyle" -> False]}, {x, Pi/4 Range[0, 8]}], None}}, FrameLabel -> MaTeX /@ {"x", "\\sin x"}, BaseStyle -> texStyle]
The MaTeX
function can be used either with a string containing math-mode LaTeX code, or with an arbitrary Mathematica expression. It will automatically apply TeXForm
to non-string expressions.
When writing TeX code in Mathematica strings, remember to always escape backslashes. Thus \sum
must be written as "\\sum"
.
Advanced usage
Options
"DisplayStyle"
. By default display style is used. Use"DisplayStyle" -> False
for inline style.Inline formatting looks like
∑∞k=11k2=π26 ∑k=1∞1k2=π26. Display style looks like∑k=1∞1k2=π26 ∑k=1∞1k2=π26.FontSize
. Use it to set the font size. Note that LaTeX uses different glyph shapes for different font sizes to improve readability. Depending on the font used, only standard sizes may be available with this option. UseMagnification
instead for proportional scaling."Preamble"
. This is a list of lines to be included in the LaTeX preamble. The default is{"\\usepackage{lmodern,exscale}", "\\usepackage{amsmath,amssymb}"}
. The AMS packages are included by default because they may be required for compiling the output of Mathematica’sTeXForm
, whilelmodern
provides vector fonts and flexible font sizing. On most systems"\\usepackage{lmodern,exscale}"
can be omitted.This option is most convenient to set permanently for the session, for example:
SetOptions[MaTeX, "Preamble" -> {"\\usepackage{amsmath,amssymb}", "\\usepackage{color,txfonts}"}]MaTeX["\\color{red}\\sqrt{x}"]
Magnification
. Set a scaling factor for MaTeX’s output.Magnification
scales the result proportionally, unlikeFontSize
, which will use different glyph shapes for small text.
Performance
MaTeX needs to call pdflatex
for every
The maximum number of expressions to be cached can be controlled using ConfigureMaTeX["CacheSize" -> ...]
.ClearMaTeXCache[]
will clear the cache.
How does it work?
MaTeX uses pdflatex
and the standalone
document class to create PDF files from TeX code. The height of thePDF files is ensured to be at least the line height by including a \strut
. Mathematica can import PDF files, but it can only interpret simple ones correctly. To avoid problems, all font glyphs are converted to outline curves using Ghostscript before import. This capability is new in Ghostscript 9.15, hence the version requirement.
Troubleshooting
MaTeX no longer works on OS X 10.11 El Capitan
If you use MacTeX on OS X El Capitan, the path to pdflatex
or xelatex
must be set as
ConfigureMaTeX["pdfLaTeX" -> "/Library/TeX/texbin/pdflatex"]
If you used the path /usr/texbin/pdflatex
on OS X 10.10 or earlier, it will no longer work on 10.11. You must reconfigure MaTeX with the new path. Please see the explanation here.
The path to Ghostscript is unchanged, /usr/local/bin/gs
.
“Invalid syntax in or before <!DOCTYPE html>
” error
This error indicates that MaTeX was not downloaded correctly. Please download the latest release of MaTeX.m
from this page, and re-install it according to the instructions above.
MaTeX::texerr
on 32-bit Windows
If you are using a 32-bit version of Mathematica on Windows, MaTeX may not work correctly and may show the following error every time the MaTeX
function is used:
MaTeX::texerr: Error while running LaTeX
This is due to a bug in Mathematica for 32-bit Windows. Due to the rarity of this platform, I decided not to work around this problem. Please consider using the 64-bit version. If you must use the 32-bit version for some reason, contact me for partial workarounds.
MaTeX still doesn’t work!
Please restart Mathematica, then enter the following lines in a new notebook and evaluate them:
Needs["MaTeX`"]ConfigureMaTeX[]MaTeX`Developer`$Version
Save the notebook and email it to me along with a complete description of the problems you are seeing.
- MaTeX:在Mathematica的图片中插入LaTeX代码的工具
- 在LaTeX中插入美观的Matlab代码
- latex中插入图片的一个备忘
- 在图片中插入FLASH的代码
- latex插入图片的办法
- 在LaTeX文档中插入图片的几种常用的方法
- 怎样在latex中插入jpg图片
- 在LaTeX中插入visio图片
- 怎样在latex中插入jpg图片
- Latex 中插入图片
- latex中插入图片
- latex中插入图片
- latex中插入图片
- Latex中插入图片
- latex中插入图片
- latex中插入图片
- 在博客中插入Latex 公式的方法
- 学习 Latex插入eps图片的方法
- 并查集-HDU-3038-How Many Answers Are Wrong
- 多线程(第二篇)
- android小问题-------------android模拟器没有SD卡,SD卡状态为removed的解决方式
- AJAX
- Android开发者必知的开发资源
- MaTeX:在Mathematica的图片中插入LaTeX代码的工具
- const 与static
- visual studio 2010安装失败
- 15.static的作用
- 【笔记】java获取文件扩展名
- maven【4】(使用archetype)
- 插入排序
- Android基础(四)——Activity的两种启动方式、Intent初探
- C/C++的字符串流
Comments !