Hi R-users,
Since it has been already asked for several times, I would like to share my
solution
that I have gathered from several sources on internet for portable
R+Emacs+MikTeX.
This may also help some future R-users.
My best,
Ozan
Installing R, MikTeX, Emacs (+auctex+aspell) on USB
Useful information from:
- http://at-aka.blogspot.com/2006/06/portable-emacs-22050-on-usb.html
- https://stat.ethz.ch/pipermail/r-help/2010-February/228068.html
1. download portable miktex to the USB drive and rename it to
"miktex_portable" so that
the path to MikTeX executables is like G:/miktex_portable/miktex/bin where G
is USB derive
letter.
2. export emacs / auctex / ess on the usb drive:
- extract emacs in the USB drive, in my case its name is emacs-23.2 on
the USB drive.
- extract auctex in the emacs directory (i.e. emacs-23.2)
- extract ess in the emacs-23.2/site-lisp/ directory.
a. Edit G:/emacs-23.2/site-lisp/site-start.el so that it contains
(defvar usb-drive-letter (substring data-directory 0 3))
(defvar usb-home-dir (concat usb-drive-letter "home/"))
(setenv "HOME" usb-home-dir)
(setenv "PATH" (concat usb-drive-letter
"miktex_portable/miktex/bin;"
(getenv "PATH")))
b. Create a directory called "home" in the USB drive a put your
".emacs"
file in it.
It should contain the following lines:
(defvar usb-site-lisp-dir (expand-file-name "site-lisp" usb-home-dir))
(setq load-path (cons usb-site-lisp-dir load-path))
(let ((dir (delete nil (mapcar (lambda (f)
(unless (string-match "\\.elc?\\'" f) f))
(cddr (directory-files usb-site-lisp-dir t))))))
(setq load-path (append dir load-path)))
;;portable emacs will know about portable R
(setq inferior-R-program-name (concat usb-home-dir
"../R/R-2.11.1/bin/Rterm.exe"))
;; no command history needed, no need to save workplace at the end of R
session
(setq-default inferior-R-args "--no-restore-history --no-save ")
;; needed for ESS
(require 'ess-site)
(require 'tex-mik)
(require 'tex-site)
3. for spell checking I use aspell+eng+fr disctionaries downloaded from web.
The trick is to install them in "aspell" directory in the home
directory
created for emacs.
Then i have the followings in my .emacs:
;; set exec path for spell checking
(setq exec-path (append exec-path (list (concat usb-home-dir
"aspell/bin"))))
(setq ispell-program-name "aspell")
;; for spell checking while typing: turn on flyspell
(setq text-mode-hook '(lambda() (flyspell-mode t) ))
;;flyspell uses "-l" with ispell for faster region checking. The
equivalent
aspell command is "list":
(setq ispell-list-command "list")
;;The problem with using aspell with flyspell is that in its default mode,
it it a lot slower than ispell.
;;To speed up, though this reduces somewhat the quality of its suggestions,
try:
(setq ispell-extra-args '("--sug-mode=ultra"))
(require 'ispell)
4. install R: the trick is to install on a local drive such C: and not
directly USB derive!
When I installed directly on USB it did not worked. In my case, I installed
R-2.11.1 in C so
that I have C:/R/R-2.11.1/bin. Then, copy-paste the whole directory to the
USB derive.
Note also that I have a separate folder (mylibR) for non-default, custom
packages in G:/R/mylibR.
Finally edit G:/R/R-2.11.1/etc/Rprofile.site in the USB derive so that it
contains
# set a site library
.Library.site <- file.path(chartr("\\", "/",
R.home()),"..", "mylibR")
#check that Rprofile.site is executed by R
#cat("Hello from Rprofile.site\n")
### to make Portable-R see MikTeX
.First<-function(){
.libPaths(.Library.site)
require(Hmisc)
miktexpath <-
replace.substring.wild(R.home(),"R*","miktex_portable/miktex/bin")
miktexpath <- chartr("\\", "/", miktexpath)
PathNew <-
paste(Sys.getenv("PATH"),";",miktexpath,sep="")
Sys.setenv("PATH"=PathNew)
}
[[alternative HTML version deleted]]