我正在尝试处理 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.
最佳答案
只是为了澄清(即使 OP 中链接的 github 页面已经有它),您应该使用 scmutils ,并且不是普通的MIT计划。 scmutils 包含自己的 mit-scheme 实现以及专门为书中的经典力学形式主义设计的大量附加内容。要在 Macos 上安装 scmutils,请确保将机制脚本复制到/usr/local/bin,并将 scmutils 文件夹复制到/usr/local。
此外,scmutils 需要一个 x-window 系统来运行 edwin,并能够弹出 xdvi 来渲染 Latex 方程。对于 mac os,最好的选择可能是 Xquartz,它可以通过brew 安装。
正确安装后,加上一个工作 latex (Macos 的 BasicTex 工作正常)以及 xdvi(可以通过执行 brew install gv 获得),并假设您的 xwindow 系统是最新的,您应该能够输入mechanics
并进入特殊的 scmutils edwin 程序,该程序将在新的 X 窗口中打开,而不是在当前终端中打开,您可以执行 (show-expression '(+ x y))
并让 xdvi
打开一个整齐打印的 latex 表达式“x+y”。此外,(frame 0 7 -2 2)
也可以正常工作。
我可以确认它可以在 Mac OS 上运行,并使用brew 安装了 Xquartz、BasicTeX 和 xdvi。
注意 Edwin 明显不如 Emacs,上述操作实际上可以在 mac os 上的 Emacs 中完成。确保安装最新的 Emacs,无论是通过 brew cask 还是通过 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-xmechanis
,您就可以执行 (show-expression 'x)
,这将弹出一个 xdvi 窗口,其中包含在 Latex 中渲染的表达式,以及(帧 0 7 -2 2)
。
关于mit-scheme 对 SiCM 的图形支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45390946/