我正在努力找出乳胶的最佳构建系统。
目前,我使用latex-makefile,在vim中进行编辑,以及查看Okular或gv中的更改。主要问题是它有时会让我隐藏错误,我必须手动运行乳胶。主要优点是它完成了我需要的所有迭代,并且简单地提供了pdf和ps。
如果您有使用
的经验你会推荐它们,为什么/为什么不推荐?
答案 0 :(得分:21)
我刚尝试过latexmk。如果你这样做
latexmk -pvc file.tex
然后它将自动预览(默认为DVI)。
man latexmk
缺点:
答案 1 :(得分:10)
我自己没有用过,但我听说Rubber是一个不错的选择。
从他们的网站:
橡胶是一个旨在实现的计划 处理与之相关的所有任务 编辑LaTeX文档。这个 包括编译文档 当然,这本身就足够了 所有引用都已定义,并且 运行BibTeX来管理书目 引用。自动执行 dvips生成PostScript文档 也包括在内,以及使用 pdfLaTeX生成PDF文档。
答案 2 :(得分:10)
在考虑了所有这些选项一段时间之后,我已经解决了以下问题。
该脚本位于https://github.com/pbiggar/texbuild。
使用rubber-info从日志文件中获取错误和警告。上面的脚本将日志文件保存在t.log中。在vim:
autocmd FileType tex set makeprg=rubber-info\ t.log
autocmd FileType tex set errorformat=%f:%l:\ %m
答案 3 :(得分:9)
好的,所以这个问题有点老了,但是当我搜索“乳胶构建系统”时它出现了,所以我想我会加两分钱。我尝试了基于Makefile的解决方案,但发现输出有点冗长和笨拙。我想有人可能已经建立了乳胶的scons扩展,但是惊喜地发现scons已经原生支持乳胶了!您需要做的就是创建一个SConsctruct文件,如下所示:
env = Environment()
env.PDF(target="report.pdf", source="report.tex")
要构建只运行scons report.pdf
。 Scons将自动构建report.tex包含的.tex文件,处理参考书目并执行重复构建以解决所有引用 - 简单!
您可以以相同的方式创建DVI和PS文件。有关这些构建器的更多信息,请查看http://www.scons.org/doc/2.0.1/HTML/scons-user/a8524.html。
有关scons(更换品牌)的更多信息,请参阅http://www.scons.org/
答案 4 :(得分:5)
我使用Eclipse和TexEcplise插件来编辑我的TeX文件。它具有LaTeX的语法高亮。当您询问未更改且已编译的tex文件的预览时,它会在查看器中打开该文件。当tex文件被更改时,它会在查看之前编译tex文件。它进行必要的迭代,但仅在需要时进行。
另一个优点是所有错误和警告都汇总在一个框中,并在tex文件中突出显示!这是screenshot主页中的TexEclipse。
答案 5 :(得分:5)
我在Scons上使用tex.stackexchange发布了详细答案。
基本上,你把它放在一个名为SConstruct
的文件中:
# make sure scons finds tex executables:
import os
env = Environment(ENV=os.environ)
# target and source:
pdf_output = env.PDF(target='main.pdf', source='main.tex')
# make sure that the pdf is reloaded properly (e.g., in Skim)
env.Precious(pdf_output)
您只需运行
即可构建pdfscons
令人惊讶,scons将检测main.tex
文件中包含的文件\以及参考书目文件中的更改!
答案 6 :(得分:4)
我正在尝试橡胶一段时间。我会在这里压缩结果:
答案 7 :(得分:2)
我想使用您在final answer中发布的脚本。
不幸的是,它不适合我的设置(MacVim使用vim-latexsuite,Skim作为查看器和XeTeX)。我也使用向前搜索(即我使用在Vim中按 \ ls 的功能将跳转到打开的查看器中PDF文档中的相应点。)
此外,我的文件不称为thesis.tex
(大惊喜;它不是论文)。因此,我做了一些我想分享的配置工作。注意,我的bash技能太可怕了。
#!/bin/bash
set -x
ulimit -t 10 # sometimes pdflatex gets stuck
if [ "$1" = "" ]; then
echo "No target name specified"
exit 1
fi
TARGET=$1
SOURCE=$1.tex
TMPSOURCE=_$TARGET.tex
TMPTARGET=_$TARGET
while [ 1 ]; do
# Compile a different file ($TMPSOURCE.pdf) so that it doesn't reload mid-compile
cp $SOURCE $TMPSOURCE
# better than running pdflatex manually, as this wont rebuild if there's nothing there.
latexmk -pdf -silent $TMPTARGET > /dev/null
# For rubber-info
cp $TMPTARGET.log $TARGET.log
if [ -e $TMPTARGET.pdf ]; then # Check the compile succeeded first
# No output file yet.
[ ! -e $TARGET.pdf ]
HASNOPDF=$?
# ignore if it's unchanged.
# OS X diff doesn't consider binary files. Single-line output, return value 2
diff $TARGET.pdf $TMPTARGET.pdf
OUTPUTDIFFERS=$?
if [ $HASNOPDF -eq 0 -o $OUTPUTDIFFERS -ne 0 ]; then
# Do NOT RM since Skim cannot deal with this.
cp $TMPTARGET.pdf $TARGET.pdf
fi
fi
sleep 1 # give it time to be killed by a CTRL-C
done
这会编译一个临时文件并将其复制回给定的任何名称(而不是像脚本那样反过来);脚本的用法:
./scriptname project
其中project
是TeX文件的名称,没有文件扩展名。
我还更改了rubber-info
行:
autocmd FileType tex exe "set makeprg=rubber-info\\ _" . expand("%:t:r") . ".log"
我需要修补我的latexmk
以使用XeTeX,因为可执行文件的名称是硬编码的。
不幸的是,当我在完成声明之前保存我的文档时,这仍会破坏输出PDF文件,因为latexmk
似乎总是生成PDF文件,即使出现错误 - 它的返回码总是0,这很糟糕。
(为了澄清这一点,说我刚刚在我的文档中输入emph{
并保存它。后台脚本将立即编译文档,然后失败。但它仍然会产生一个(基本上是空的)输出文件)。
此外,前向搜索不再正常;它基本上跳到文档中的错误点。我怀疑这与我在编译之前复制文档有关。
所以,这仍然是一个完全不能令人满意的解决方案,即使我甚至没有在MacVim上打字时连续保存。
答案 8 :(得分:1)
(这是一项正在进行的工作)
我正在尝试vim-latexsuite。它基本上将vim变成了乳胶的IDE。
答案 9 :(得分:1)
AUCTEX&预览乳胶与Emacs的另一种选择。
您也可以让emacs打开生成的dvi或pdf文件,如果为该缓冲区启用自动恢复模式,则每次重新编译文档时都会呈现更改。
答案 10 :(得分:0)
“更好”是一个非常相对的术语......你还想做什么?看起来这个makefile处理得相当多,而且它让我希望我在工作中运行* nix而不是windows ...如果有更多的东西你需要用makefile来处理,为什么不加入呢?
为了让它“更好”,您需要提供有关您正在做什么的更多详细信息。
例如,您可以使用grep解析.log文件,搜索错误或警告,将它们转储到另一个文件中,然后打开新文件以便您可以读取错误。
这完全取决于你想做什么......
答案 11 :(得分:0)
我一直在使用latex-makefile一段时间。如果您尝试使用编辑 - 编译 - 预览周期,那就非常好了:
我可以很容易地复制latexmk的优点:
while [ 1 ]; do /usr/bin/make; done
一些缺点:
答案 12 :(得分:0)
我正在将MikTeX与TeXnicCenter结合使用。它适用于我的目的。我从来没有让系统隐藏错误或警告。自定义构建脚本易于创建和配置。
答案 13 :(得分:0)
ltx声称是乳胶的包装,以加快乳胶文件的编制。我不能让它工作(initex的一些问题)。
答案 14 :(得分:0)
看看TeXMaker。 : - )
功能(来自wiki):
- 在线拼写检查。
- 用于编写LaTeX源文件的unicode编辑器(语法高亮, undo-redo,search-replace,spell 检查器...)
- 可以使用鼠标输入LaTeX标签和数学符号
- 文档和部分模板
- 可以启动与LaTeX相关的程序
- BibTeX数据库管理
- 大纲或“结构视图”
- LaTeX编译期间的日志文件以及“单步执行”的能力 发现的源错误 编译器
- 集成的LaTeX到HTML转换工具
功能(来自我):
- 用于插入表格,引用,引用的有用向导
- 双向支持
- 有用的键盘快捷键
- 自动完成单词(特别适用于引用)
- 定义您自己的说明