针对sicm的mit-scheme图形支持

时间:2017-07-29 15:29:43

标签: mit-scheme

我正在努力研究Structure and Interpretation of Classical Mechanics的例子。这本书基于mit-scheme。由于某种原因,mit-scheme安装无法使用图形:

MIT/GNU Scheme running under GNU/Linux
Type `^C' (control-C) followed by `H' to obtain information about interrupts.

Copyright (C) 2014 Massachusetts Institute of Technology
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Image saved on Saturday May 17, 2014 at 2:39:25 AM
  Release 9.2 || Microcode 15.3 || Runtime 15.7 || SF 4.41 || LIAR/x86-64 4.118 || Edwin 3.116

1 ]=>(define win1 (frame 0 7 -2 2))

    ;Loading "/usr/lib/mit-scheme-x86-64/lib/prx11.so"... aborted
    ;No graphics types supported.

1 个答案:

答案 0 :(得分:1)

只是为了澄清(即使OP中链接的github页面已经有了它),你应该使用scmutils,而不是普通的mit-scheme。 scmutils包括它自己的mit方案实现以及专门为本书中的经典力学形式主义设计的大量附加内容。要在macos上安装scmutils,请确保将mechanics脚本复制到/ usr / local / bin,将scmutils文件夹复制到/ usr / local。

此外,scmutils需要一个x-window系统来运行edwin并能够弹出xdvi来渲染乳胶方程式。对于mac os,最好的选择可能是Xquartz,它可以与brew一起安装。

正确安装,加上工作乳胶(BasicTex for macos工作正常)以及xdvi(可以通过brew install gv获得),并假设你的xwindow系统是最新的,你应该能够输入mechanics并进入特殊的scmutils edwin程序,该程序将在新的X窗口中打开,而不是在当前终端中打开,您可以(show-expression '(+ x y))xdvi打开一个整齐的打印乳胶表达" x + y"。此外,(frame 0 7 -2 2)也可以正常使用。

我可以确认它适用于Mac OS,使用brew安装Xquartz,BasicTeX和xdvi。

注意Edwin明显不如Emacs,上面的内容实际上可以在Mac OS上的Emacs中完成。确保安装最新的Emacs,从brew桶或只是google" emacs for mac os"。然后,您需要将以下内容添加到.emacs文件中:

(defun mechanics ()
  (interactive)
  (let ((root "/usr/local/scmutils/mit-scheme/"))
    (run-scheme
      (concat root "bin/scheme --library " root "lib"))))
(setenv "PATH"
    (concat "/Library/TeX/texbin"
            (getenv "PATH")))

setenv是让emacs知道xdvi所在的位置;可以在终端使用which dvi找到。然后在emacs中,执行M-x mechanics并执行(show-expression 'x),这将弹出一个xdvi窗口,其中包含在latex中呈现的表达式,以及(frame 0 7 -2 2)