2

我正在尝试研究经典力学的结构和解释的例子。这本书是基于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.
4

1 回答 1

2

只是为了澄清(即使 OP 中链接的 github 页面已经有它),您应该使用scmutils,而不是普通的 mit-scheme。scmutils 包括它自己的 mit-scheme 实现以及专为书中的经典力学形式主义设计的大量附加内容。要在 macOS 上安装 scmutils,请确保将力学脚本复制到 /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 中完成。确保从 brew cask 或谷歌“emacs for mac os”安装最新的 Emacs。然后,您需要将以下内容添加到您的 .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 中,doM-x mechanics并且你可以 do (show-expression 'x),这将弹出一个 xdvi 窗口,其中的表达式以乳胶呈现,以及(frame 0 7 -2 2).

于 2018-03-11T07:04:19.263 回答