Using AUCTeX 11.86 under Emacs 24.0.50.1. Activated pst-node style. Pressed C-c C-e to insert a psmatrix environment, entered nothing on “Options” and encountered the error:
let: Wrong type argument: char-or-string-p, (“”)
The “Options” can auto-complete with psmatrix options such as rowsep, colsep… Still didn’t work even if I entered something. Checked the pst-node.el under /emacs/site-lisp/auctex/style/:
;;; Environments
(defun LaTeX-pstnode-env-psmatrix (env)
"Return psmatrix environment with arguments."
(let ((opt (completing-read-multiple "Options: "
LaTeX-pstnode-psmatrix-list)))
(LaTeX-insert-environment env opt)))
completing-read-multiple comes from crm.el, which enables the multiple auto completion. The return value is a list instead of a string, so LaTeX-insert-environment won’t accept it. Fixed the code as follows to loop over the list and insert the option items with comma and square brackets. It doesn’t look neat but it works anyway.
;;; Environments
;;; Changed by James Lao
(defun LaTeX-pstnode-env-psmatrix (env)
"Return psmatrix environment with arguments."
(let ((opt (completing-read-multiple "Options: "
LaTeX-pstnode-psmatrix-list)))
(setq opto "")
(while opt
(if (string= opto "")
(setq opto (car opt))
(setq opto (concat opto ", " (car opt))))
(setq opt (cdr opt)))
(LaTeX-insert-environment env (concat "[" opto "]"))))
I never used the mailing list and would appreciate if someone could help me check with the development team…
在emacs下其实很久不用preview-latex了,一直觉得没有必要——但是忽然用一下的时候发现不能用还是很郁闷的。基本上报错是这样的:
"GSWIN32C.EXE" "-dOutputFile=(_region_.prv/tmp5723kvc/pr1-1.png)" "-q""-dSAFER" "-dNOPAUSE" "-DNOPLATFONTS" "-dPrinted" "-dTextAlphaBits=4""-dGraphicsAlphaBits=4" "-sDEVICE=png16m" "-r70.4906x70.6156"
GS>{DELAYSAFER{.setsafe}if}stopped pop/.preview-BPcurrentpagedevice/BeginPage get dup null eq{pop{pop}bind}ifdef<>setpagedevice/preview-do{[count 3 roll save]3 1 roll dup length 0 eq{pop}{setpagedevice}{ifelse .runandhide}stopped{handleerror quit}if aload pop restore}bind def[(_region_.prv/tmp3712kvc/preview.dsc)(r)file]aload exch dup 0 setfileposition 520()/SubFileDecode filter cvx .runandhide aload pop dup dup 623 setfileposition 50()/SubFileDecode filter cvx<<>>preview-do
Error: /invalidfileaccess in --file--
查了一通后来发现有人遇到这个问题之后把GS降级到8.71以下就好了。说明GS在近来做了一些改动。左看右看看到了-dSAFER这个参数——这个参数本意是要加强权限检查防止gs自动打开系统文件权限——但和权限相关的也只有它了。试着在命令行下重新跑着两个命令(用gswin32会容易些,否则后面这个长命令贴都贴不进去),居然跑通了。又大致查了查,貌似可能是一个BUG,不过我升级到了最新的9.02也没有解决这个问题。
既然如此,到site-lisp/auctex/preview.elc(最好还是用.el重新编译一下) 下面找到
(defcustom preview-gs-options '("-q" "-dSAFER" "-dNOPAUSE" "-DNOPLATFONTS" "-dPrinted" "-dTextAlphaBits=4" "-dGraphicsAlphaBits=4")
把dSAFER一项干掉就是了。虽然这似乎是一个“漏洞”,不过就自己跑跑preview来看,应该没太大风险。
一个更为稳妥的办法是在.emacs里面加上 ‘(preview-gs-options (quote (“-q” “-dNOPAUSE” “-DNOPLATFONTS” “-dPrinted” “-dTextAlphaBits=4″ “-dGraphicsAlphaBits=4″))),就好了
近来搞一个书稿,希望自己设计一个环境可以加点分页的边框底色什么的,毕竟么,内容和版式都重要,看得身心愉悦才能更好地看下去。于是想设定一个带底色或者不带底色的环境,在外侧加一个竖线,看起来多么简洁的想法啊,真做起来可不太容易。
找找现有的东西吧,找来找去找到一个changebar,看看用起来挺简单,拿xetex一跑,报错:( 发现这个包的逻辑是算出坐标,然后用很多特殊的ps命令把线最后补上去。按说xetex对pstricks支持的还不错… 可惜不行。我这书稿肯定是不可能倒回去用dvips的,看看网上似乎有成功把它移植到pdflatex上的,但原作者从不回邮件,宏包也多年不更新了。本来想搞一下这些special的命令,终因没有时间细究而作罢。加底色的盒子可以用xcolor,但是分页就实在要费些周折。
后来找到了mdframed包,可以画分页的盒子和边框。研究了一下包的原理,发现也颇为不易:把分页的内容暂存起来,然后分别按照第一页、中间页和末页的情况,用rule或者tikz或者pstricks画出底色,然后再把字用盒子放进去。作者实际上把这些盒子的计算都算好了,可以自己来定义style设定作画的方法。这确实是个不错的主意,处理起来余地也挺大。不过后来发现,边框和边距设定都是按照左右来分的,碰到双面排版的情况,左右边距实际上应该是内外边距。事情繁杂也没有心情仔细读代码,于是试着给作者Marco Daniel写信要求增加双面排版的功能。3分钟后收到回信,承诺周末帮我搞一个出来。一日之后作者如约回信,附上了更新后的宏包、文档和style文件,说完全支持所有的定制功能很困难,不过单设一条框线可以,暂时只支持用rule画线。调试一下发现有些问题,后又往复几次,迅速解决,感叹作者之敬业及效率,实在是好人啊!
作者说后续再把用tikz和pstricks画线的功能补上,正式的新版本很值得期待!再次对Marco表示感谢!
版权所有:未经本人许可,请勿以任何方式转载、复制或摘录本帖内容,引用必须注明出处,谢谢合作。
我们试对简单的共射电路输入非线性引起的失真做一分析。考虑如下基本电路: 阅读全文…
注:未经本人许可,请勿以任何方式转载、复制或摘录本帖内容,引用必须注明出处,谢谢合作。
近日元增民教授对我所提的有关质疑大为不满,并一定要出题给我做。其实这么明显的一个问题本来就没有什么多啰嗦的必要,但既然人家开口很多次了,而且大有我不做一下就不善罢甘休之势,我就只好这里做一下给元教授看看,如果有人看了觉得这个讨论有意义,也算是我没白忙活这半天。图见下,最简单的单管共射放大器,也可见元增民老师PPT第7~8页。 阅读全文…
前日在哈尔滨举行2010电子高等教育学术研讨会,华师大一位老师参加了,会上听到了一个非常新颖而让人震惊的观点——电子学的基础理论:小信号放大器模型的缺陷。作者元增民教授多年奔走推广自己的研究成果,并且在大会上做了发言。本着奇文共欣赏的原则,这位老师回来将PPT转给家父,家父又转给了我。在这里可以看到元增民老师PPT。 阅读全文…