emacs org-mode 导出pdf

之前配置了org-mode导出到pdf,不过是在windows下,这次重新做系统,就重新配置了一下

先要感谢http://emacs-china.org, 主要参考的是它上面的文章《使用 ctex 将 org 文件转化为 pdf》

下面是我的配置:

(setq org-latex-compiler "xelatex")
(setq org-latex-default-class "ctexart")
(unless (boundp 'org-latex-classes) (setq org-latex-classes nil))
(add-to-list 'org-latex-classes
             '("ctexart"
               "\\documentclass[fancyhdr,fntef,UTF8,a4paper,cs4size]{ctexart}"
               ("\\section{%s}" . "\\section*{%s}")
               ("\\subsection{%s}" . "\\subsection*{%s}")
               ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
               ("\\paragraph{%s}" . "\\paragraph*{%s}")
               ("\\subparagraph{%s}" . "\\subparagraph*{%s}")))
(add-to-list 'org-latex-classes
             '("ctexrep"
               "\\documentclass[fancyhdr,fntef,UTF8,a4paper,cs4size]{ctexrep}"
               ("\\part{%s}" . "\\part*{%s}")
               ("\\chapter{%s}" . "\\chapter*{%s}")
               ("\\section{%s}" . "\\section*{%s}")
               ("\\subsection{%s}" . "\\subsection*{%s}")
               ("\\subsubsection{%s}" . "\\subsubsection*{%s}")))
(add-to-list 'org-latex-classes
             '("ctexbook"
               "\\documentclass[fancyhdr,fntef,UTF8,a4paper,cs4size]{ctexbook}"
               ("\\part{%s}" . "\\part*{%s}")
               ("\\chapter{%s}" . "\\chapter*{%s}")
               ("\\section{%s}" . "\\section*{%s}")
               ("\\subsection{%s}" . "\\subsection*{%s}")
               ("\\subsubsection{%s}" . "\\subsubsection*{%s}")))
(add-to-list 'org-latex-classes
             '("beamer"
               "\\documentclass{beamer}
           \\usepackage[fntef,nofonts,fancyhdr]{ctex}"
               org-beamer-sectioning))

基本上上面就是关于org-mode导出pdf的所有配置了。org-mode默认生成pdf使用的是pdflatex,这里修改为xelatex,以便支持中文字体。 如果使用中文的话还需要安装cjk相关的包,我都是直接full安装的。 org-mode文件不需要特殊的配置,中英文混合都没有问题,windows和linux都可以通用,唯一的缺点就是windows下生成的索引目录有中文的话会乱码,正文则正常,而linux所有的都正常.

linux 交换按键

linux交换按键的方法

去年早些时候就用过这种方式交换过按键,公司换了,配置文件丢了,没办法,又折腾了一晚上,重新配置好了。以后这种小东西还是随时记录比较好,话说最近自己懒了好多。

我将Super按键(win键)和Ctrl按键交换,但右Ctrl按键不交换,也就是下面的交换方式

左Super按键和左Ctrl按键交换

右Super按键和右Ctrl按键交换

右Ctrl按键保持不变

之所以这样交换,是因为我用的HP笔记本的键盘最下面的排布是如下的:

Ctrl Fn Super Alt Space Alt Ctrl

而用的外接HHKB键盘最下面的键盘布局是下面的:

Alt Super Space Super Alt

通过上面的交换,键盘布局在HP上变成下面的样子

Super Fn Ctrl Alt Space Alt Ctrl

HHKB键盘变成下面的样子:

Alt Ctrl Space Ctrl Alt

这对于emacs而言使用起来方便很多。加上HP的全键盘排布比较紧凑,虽然用笔记本自带键盘少许不方便,但比默认布局要好很多

下面是配置

clear Mod4
clear Control
!! keySym 格式
!! keysym  原按键 = 修改后的按键
keysym Control_L = Super_L
keysym Super_L = Control_L
!!keysym Control_R = Super_R
keysym Super_R = Control_R
add Mod4 = Super_L Super_R
add Control = Control_L Control_R

通过org2blog发blog无标题的原因

经常发现org2blog发的内容无标题

这个现象很奇怪,有时出现,有时又有,最后通过研究源代码,然后发现必须至少存在一级 大纲模式。

这个是测试文章

相关代码:

(cons “title” (org-element-interpret-data
(or (plist-get (org-export-get-environment) :title)
“No Title”)))

tramp文件引起的Tramp异常

我使用的是seafile来进行不同计算机之前的文件同步,包括emacs的所有配置管理,基本上 都是工作正常的,但前两天新加了一台win7,然后使用plink访问远程的时候就会华丽的无任 何输出或者说“ls”找不到。

我甚至关闭了几乎所有的插件,都还是会出问题,但完全不使用任何配置却正常(我将 plink添加到了系统的path中,这并不是我的风格)。

后来我关闭了所有的插件,依然出问题。无赖之下我清空了配置目录中的所有内容,然后就 正常了。我试着从配置目录一个一个恢复,直到tramp文件出来就挂掉了。

tramp文件是tramp-cache使用的,缓存一些乱七八糟的东西。

只所以会这样是因为这个文件默认保存在 user-emacs-directory 目录下,我将这个目录设 定在一个自定义的目录,比如emacs_config,然后使用seafile同步文件,自然包括了这个 文件。

对我而言,有两个解决方案:

  1. seafile同步中排除这个文件
  2. 在.emacs中添加下面的配置

(setq locate-user-emacs-directory “~/.emacs.d”)
(setq tramp-persistency-file-name nil)

我的emacs配置组织

好久都没进行这一方面的整理,找了一下,之前的那个emacs配置 模式还是在5年前,其实, 这个配置方式我用了至少4年的样子,直到去年初才换了一种方式。

之前的那个配置的主要缺点是不容易同步,比如我现在基本上要在这些环境的电脑中运行:

系统 CPU
Ubuntu(GUI) X86
Ubuntu(CMD) ARM/X86
CENTOS(CMD) X86
Win XP X86
Win 7(本地或远程) X86
MAC X86

系统不算多,但关键是个数多,比如光Ubuntu,不同的位置加起来也有10多个了,总不能每 个都去配置,时间长了,不同的电脑上的配置或多或少都有差别,而且,即使一个单独的配 置,一个压缩包都快接近100MB了,更何况还要维护每个插件的更新,于是我决定更新我的 配置管理了。

继续阅读我的emacs配置组织