knitr
插件,为Sublime Text 2和3提供knitr Markdown和LaTeX支持
详细信息
安装次数
- 总数 5K
- Win 1K
- Mac 2K
- Linux 909
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
README
Sublime knitr
- 版本:1.2.2
- 日期:2015年1月30日
本包在Sublime Text 2和3提供了knitr Markdown和LaTeX支持。它包括以下内容:
- 为knitr LaTeX和Markdown文件定义语言
- 为R Markdown文件提供的构建系统。
- 以下命令(通过命令面板和键盘快捷键可用)
- 插入:knitr 片段:
super+alt+c
- 在片段之间移动:
super+alt+,
和super+alt.+
- 将片段发送到R GUI:
super+b
(需要R-Box)
- 插入:knitr 片段:
默认情况下,在Windows和Linux上使用ctrl
替代super
依赖关系
为了使用本包的所有功能,您需要安装另外两个包。这两个包都可通过包控制轻松安装
- R-Box
- SendTextPlus
- LaTeXing或LaTeXTools(见以下LaTeXTools patch)
使用此插件最简单的方法是使用LaTeXing,特别是由于LaTeXTools的开发速度显著减慢。只需启用knitr
设置,并在需要时调整knitr_command
命令。
或者,您可以与LaTeXTools一起使用此插件,需要以下三个手动patch:
构建R Markdown文件
构建.Rmd
文件将在同一目录创建一个.md
文件。这取决于您是否在其他地方使用该文件(即使用Pandoc将其转换为.html
,.docx
,.rtf
,或者如果您觉得路径更长,甚至可以将它转换为.tex
)。
还有一个构建变体,可以将编译后的Markdown文件创建为HTML文件。使用super + shift + b
。
我通常一次创建.Rmd文件,然后在Marked中打开生成的.md文件,并在进行进一步更改和新构建时保持其打开状态。
或者,您可以强制构建系统使用Markdown文件默认程序打开生成的.md文件,通过将.knitr-Markdown.sublime-build中的"cmd"行更改如下
"cmd": [ "Rscript -e \"library(knitr); knit('$file_name')\"; open $file_base_name.md" ],
Unicode和其他编码问题
由于LaTeX和R对Unicode的支持不同,处理图表中的非ASCII字符有点棘手。以下是一些解决字符编码问题的通用准则
- 将
LANG=en_US.UTF-8
添加到~/.Renviron
(如有需要,则创建此文件)。这将确保R在打开时始终具有Unicode支持。 - 在文档开头附近添加一个单独的块,如下所示:
pdf.options(encoding = '<encoding>')
,其中encoding
是此命令输出的列表之一:list.files(system.file('enc', package = 'grDevices'))
。选择一个包含您在图表中使用所有字符的编码。 - 如果使用.Rnw和LaTeX,请确保在序言中有
\usepackage[utf8]{inputenc}
。
路线图和愿望清单
- 更好的Markdown语法高亮,包括Multimarkdown和Pandoc扩展,如脚注、表格和引文。
- 创建从R Markdown转换为其他格式的命令?(或者可能只需为该用途使用实际的Pandoc包)。
LaTeXTools的手动修补
如果您想使用LaTeXTools插件,需要进行对三个文件的修补,以使标准的LaTeXTools构建系统能够缩放和类型设置.Rnw文件。这些三个更改(衷心感谢Heberto del Rio!)
重要: 从GitHub复制粘贴代码可能会对缩进(将制表符替换为空格)造成意外操作,并且可能会暂时破坏LaTeXTools。粘贴后请确保缩进正确。
文件1: Packages/LaTeX/LaTeX.tmLanguage
将
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>tex</string>
<string>Rnw</string>
</array>
Sublime Text 3说明:在ST3中,默认包隐藏在ST本身的深处,难以访问,更不用说编辑了。然而,如果您安装了PackageResourceViewer插件,则可以相对轻松地访问LaTeX.tmLanguage。安装后,通过命令面板(command/ctrl + shift + p)运行“PackageResourceViewer: Open Resource:”命令,导航到LaTeX.tmLanguage。修改后,ST将在更易于访问的位置保存文件的副本(Packages/LaTeX/LaTeX.tmLanguage
),并覆盖默认内置文件。
文件2: Packages/LaTeXTools/makePDF.py
找到这个
if self.tex_ext.upper() != ".TEX":
sublime.error_message("%s is not a TeX source file: cannot compile." % (os.path.basename(view.file_name()),))
return
然后用这个替换
if (self.tex_ext.upper() != ".TEX") and (self.tex_ext.upper() != ".RNW"):
sublime.error_message("%s is not a TeX or Rnw source file: cannot compile." % (os.path.basename(view.file_name()),))
return
然后找到这个
# We should now be able to construct the builder object
self.builder = builder_class(self.file_name, self.output, builder_settings, platform_settings)
然后用这个替换
if self.tex_ext.upper() == ".RNW":
# Run Rscript -e "library(knitr); knit('" + self.file_name + "')"
os.system("Rscript -e \"library(knitr); knit('"+ self.file_name +"')\"")
self.file_name = self.tex_base + ".tex"
self.tex_ext = ".tex"
# We should now be able to construct the builder object
self.builder = builder_class(self.file_name, self.output, builder_settings, platform_settings)
(如果您想使用Sweave而不是knitr,相应地更改Rscript命令。)
文件3: Packages/LaTeXTools/jumpToPDF.py
找到这个
if texExt.upper() != ".TEX":
sublime.error_message("%s is not a TeX source file: cannot jump." % (os.path.basename(view.fileName()),))
return
然后用这个替换
if (texExt.upper() != ".TEX") and (texExt.upper() != ".RNW"):
sublime.error_message("%s is not a TeX or Rnw source file: cannot jump." % (os.path.basename(view.fileName()),))
return
文件4: Packages/LaTeXTools/viewPDF.py
找到这个
if texExt.upper() != ".TEX":
sublime.error_message("%s is not a TeX source file: cannot view." % (os.path.basename(view.fileName()),))
return
然后用这个替换
if (texExt.upper() != ".TEX") and (texExt.upper() != ".RNW"):
sublime.error_message("%s is not a TeX or Rnw source file: cannot view." % (os.path.basename(view.fileName()),))
return
如果您想能够使用多个文件并找到您的bib文件,您还需要更改以下文件
文件5: Packages/LaTeXTools/getTeXRoot.py
找到这个
mroot = re.match(r"%\s*!TEX\s+root *= *(.*(tex|TEX))\s*$",line)
然后用这个替换
mroot = re.match(r"%\s*!TEX\s+root *= *(.*(tex|rnw))\s*$",line, flags=re.IGNORECASE)
文件6: Packages/LaTeXTools/latex_cite_completions.py
找到这个
if src[-4:].lower() != ".tex":
然后用这个替换
if src[-4:].lower() not in [".tex",".rnw"]: