MaTeX:在Mathematica的图片中插入LaTeX代码的工具

2024-02-04 00:48

本文主要是介绍MaTeX:在Mathematica的图片中插入LaTeX代码的工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

Thu 05 March 2015 By szhorvat

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 the standalone and lmodern 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=11k2=π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. Use Magnification 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’s TeXForm, while lmodernprovides 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, unlike FontSize, which will use different glyph shapes for small text.

Performance

MaTeX needs to call pdflatex for every  LATEX LATEX expression it generates. Each call might take as long as a second, which can be annoyingly slow when using MaTeX on many small expression, e.g. creating tick labels. As a partial remedy for this, MaTeX caches each result, so a second call with the same TeX code should be instantaneous.

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.mfrom 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.

Comments !



这篇关于MaTeX:在Mathematica的图片中插入LaTeX代码的工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/675917

相关文章

Java进行日期解析与格式化的实现代码

《Java进行日期解析与格式化的实现代码》使用Java搭配ApacheCommonsLang3和Natty库,可以实现灵活高效的日期解析与格式化,本文将通过相关示例为大家讲讲具体的实践操作,需要的可以... 目录一、背景二、依赖介绍1. Apache Commons Lang32. Natty三、核心实现代

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

SpringBoot实现二维码生成的详细步骤与完整代码

《SpringBoot实现二维码生成的详细步骤与完整代码》如今,二维码的应用场景非常广泛,从支付到信息分享,二维码都扮演着重要角色,SpringBoot是一个非常流行的Java基于Spring框架的微... 目录一、环境搭建二、创建 Spring Boot 项目三、引入二维码生成依赖四、编写二维码生成代码五

Java如何根据文件名前缀自动分组图片文件

《Java如何根据文件名前缀自动分组图片文件》一大堆文件(比如图片)堆在一个目录下,它们的命名规则遵循一定的格式,混在一起很难管理,所以本文小编就和大家介绍一下如何使用Java根据文件名前缀自动分组图... 目录需求背景分析思路实现代码输出结果知识扩展需求一大堆文件(比如图片)堆在一个目录下,它们的命名规

将图片导入Python的turtle库的详细过程

《将图片导入Python的turtle库的详细过程》在Python编程的世界里,turtle库以其简单易用、图形化交互的特点,深受初学者喜爱,随着项目的复杂度增加,仅仅依靠线条和颜色来绘制图形可能已经... 目录开篇引言正文剖析1. 理解基础:Turtle库的工作原理2. 图片格式与支持3. 实现步骤详解第

Spring Validation中9个数据校验工具使用指南

《SpringValidation中9个数据校验工具使用指南》SpringValidation作为Spring生态系统的重要组成部分,提供了一套强大而灵活的数据校验机制,本文给大家介绍了Spring... 目录1. Bean Validation基础注解常用注解示例在控制器中应用2. 自定义约束验证器定义自

在React聊天应用中实现图片上传功能

《在React聊天应用中实现图片上传功能》在现代聊天应用中,除了文字和表情,图片分享也是一个重要的功能,本文将详细介绍如何在基于React的聊天应用中实现图片上传和预览功能,感兴趣的小伙伴跟着小编一起... 目录技术栈实现步骤1. 消息组件改造2. 图片预览组件3. 聊天输入组件改造功能特点使用说明注意事项

Linux系统调试之ltrace工具使用与调试过程

《Linux系统调试之ltrace工具使用与调试过程》:本文主要介绍Linux系统调试之ltrace工具使用与调试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、ltrace 定义与作用二、ltrace 工作原理1. 劫持进程的 PLT/GOT 表2. 重定

使用Java编写一个字符脱敏工具类

《使用Java编写一个字符脱敏工具类》这篇文章主要为大家详细介绍了如何使用Java编写一个字符脱敏工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、字符脱敏工具类2、测试工具类3、测试结果1、字符脱敏工具类import lombok.extern.slf4j.Slf4j

使用Python和PaddleOCR实现图文识别的代码和步骤

《使用Python和PaddleOCR实现图文识别的代码和步骤》在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等,PaddleOCR是百度开源的一款强大的OCR工具包,它集成了... 目录一、引言二、环境准备2.1 安装 python2.2 安装 PaddlePaddle2.3 安装