苹果系统下面有个LaTeXiT软件,可以方便地生成LaTeX公式,然后拖拽到别的程序中直接使用。在Windows下这方面的工具就比较少了。不过如果装有CTeX中文套装和Emacs的话,倒不妨自己做一个简易的版本。
思路很简单:开一个Emacs buffer,编辑好公式,执行自编的texify函数调用相关命令生成dvi文件。然后再根据这篇文章中说的方法,对其进行适当的裁剪,并一次生成多种图片格式,以供其他程序使用。该函数如下:
(defun texify () (interactive) (let* ((file-name) (base-name)) (setq file-name (buffer-name)) (setq base-name (substring file-name 0 (string-match "\.tex" file-name))) (message "Generate dvi...") (if (equal (call-process "latex" nil (concat "*" file-name "*") t file-name) 0) (progn (message "Generate eps...") (if (equal (call-process "dvips" nil (concat "*" file-name "*") t "-E" (concat base-name ".dvi") "-o" (concat base-name ".eps")) 0) (progn (message "Generate png...") (if (equal (call-process "gswin32c" nil (concat "*" file-name "*") t "-dNOSAFER" "-r600" "-dBATCH" "-sDEVICE=pngalpha" "-dNOPAUSE" "-dEPSCrop" (concat "-sOutputFile=" base-name ".png") (concat base-name ".eps")) 0) (progn (message "Process png complete!"))))) (message "Generate pdf from eps...") ;; -dEPSCrop is only effective for eps->pdf, not ps->pdf (if (equal (call-process "gswin32c" nil (concat "*" file-name "*") t "-dNOSAFER" "-dBATCH" "-sDEVICE=pdfwrite" "-dNOPAUSE" "-dPDFSETTINGS=/printer" "-dCOMPatibilityLevel=1.4" "-dEPSCrop" "-dMaxSubsetPct=100" "-dSubsetFonts=true" "-dEmbedAllFonts=true" (concat "-sOutputFile=" base-name ".pdf") (concat base-name ".eps")) 0) (progn (message "Generate svg...") ;; -ssp is used to remove black hole in some symbols such as a, e, etc. (if (equal (call-process "pstoedit" nil (concat "*" file-name "*") t "-f" "plot-svg" "-ssp" "-usebbfrominput" (concat base-name ".pdf") (concat base-name ".svg")) 0) (progn (message "Process svg complete!")))))))))
由texify函数生成的图片格式包括:
- eps:使用dvips命令生成,可直接用在LaTeX文档中;
- 背景透明的png:使用gswin32c命令生成,如果安装了CTeX套装的话,则该程序默认已安装,只需将gswin32c.exe所在路径加 入到PATH环境变量。若系统为Linux,则需安装Ghostscript。生成的png图片分辨率设到了600,用于MS Word、ppt显示效果非常好。
- svg:先由eps生成pdf,再由pstoedit转换为svg格式,该文件可以直接插入Inkscape中进行矢量图创作或者海报的设计。pstoedit命令需要到这里下载。
为了方便输入数学公式,可以事先准备好一个模版,每次用的时候直接填空即可,例如:
\documentclass{article} \newcommand{\myfont}{\fontsize{12pt}{18pt}\selectfont} \usepackage{amssymb,amsmath,amscd} \usepackage[amssymb]{SIunits} \usepackage{color} \usepackage{CJK} \newcommand{\bi}[1]{\boldsymbol{#1}} \newcommand{\abs}[1]{\vert #1 \vert} \newcommand{\diff}{{\rm d}} \newcommand{\intd}{\,{\rm d}} \newcommand{\vect}[1]{\boldsymbol{#1}} \begin{document} \pagestyle{empty} \begin{CJK*}{GBK}{song} \myfont %% latex goes here %% latex ends here \clearpage \end{CJK*} \end{document}
在Emacs中生成LaTeX公式,布布扣,bubuko.com
时间: 2024-10-06 22:29:15