问题标签 [latexmk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
22359 浏览

latex - 不要让我在出现错误时手动中止 LaTeX 编译

正如这里所建议的,这latexmk是一种在源代码更改时不断编译文档的便捷方法。但是,当您处理文档时,通常会遇到错误,然后latex会惊慌失措并等待用户输入,然后再继续。这会变得非常烦人,尤其是最近当我破解了一些东西以latex直接从etherpad文档编译时,它会在您键入时不断保存。

如果无法编译,是否有设置latexlatexmk使其只是中止并显示错误消息?或者,如果有必要,我将如何设置某种 Expect 脚本来自动消除 LaTeX 的投诉?

(我曾认为pdflatex's 选项-halt-on-error可以解决问题,但显然不是。)

额外的问题:Mac OSX 上的 Skim 是一个不错的 pdf 查看器,它会在 pdf 更改时自动刷新(与预览不同),除了每当出现乳胶错误时,它会让您重新确认您想要自动刷新。Texniscope 没有这个问题,但由于其他原因我不得不放弃 Texniscope 。有没有办法让 Skim 总是自动刷新,或者是否有其他查看器可以做到这一点?


latexmk添加:基于此问题的答案的迷你教程:

  1. latexmk到这里: http : //www.phys.psu.edu/~collins/software/latexmk-jcc/

  2. 将以下内容添加到您的~/.latexmkrc文件中:

    (对于带有脱脂的 OS X)

    /li>
  3. 在编辑源文件时foo.tex,在终端中运行以下命令:

    /li>
  4. 使用Skim或其他实时 pdf 查看器查看 foo.pdf。对于 Skim,只需查看 Skim 首选项中的“同步”选项卡并为您的编辑器进行设置。

瞧!现在点击保存foo.tex将导致foo.pdf刷新而不接触任何东西。

0 投票
3 回答
7291 浏览

emacs - 如何在emacs中调用latexmk,并跳转到next-error

我想使用latexmk在 Emacs 中编译我的 LaTeX 文档。特别是我需要 Emacs 功能next-error,它通常用 Cx ` 调用,并跳转到文档中的下一个 LaTeX 错误。

我想调用latexmkusingC-x compile或 AUCTeX C-c C-c

首先,我设置latexmk使用

选项 1:Cx 编译

我按下C-x compile并键入latexmk -pdf foo,它运行pdflatex。但next-error不会跳转到错误,即使 *compilation* 缓冲区包含错误:

如何在第 48 行自动跳转到此错误?

latexmk请注意,解析乳胶输出的这个问题与直接无关。当我这样做时也会出现同样的问题C-x compile pdflatex -interaction=nonstopmode foo

选项 2:AUCTeX

如何将 AUCTeX 设置为调用latexmk -pdf而不是pdflatex在我的 .tex 文件上调用?当然,我也想next-error在这里工作。

更新:我开始了赏金,因为如果这可行,它将成为许多人的好工具。如果给出的解决方案可以让我在 Emacs 中轻松编译我的 LaTeX 文档latexmk并使用跳转到错误next-error(当然,错误可能在包含的.tex 文件中,不一定在主文件或当前缓冲)。

更新:感谢 Ivan(和 Chris)使 AUCTeX+Latexmk 工作。同时,我发现使用Rubber编译 LaTeX 也是一个不错的选择。它将以gcc和其他编译器使用的格式显示错误消息,因此它自然适用于 Emacs C-x compile,例如C-x compile rubber --pdf foo,并且错误消息被正确解析。

0 投票
2 回答
8470 浏览

latex - 是否有将记录到输出/错误控制台的 LaTeX 命令?

我创建了一个 LaTeX\todo{}命令,它在页边空白处输出待办事项:

但是,我真的很想将我所有的待办事项列表输出到输出控制台。我已经编写了一个简单的 python 脚本来解析 .tex 文件,但后来切换到使用 latexmk 来处理重新编译。我的脚本并没有真正处理使用\includeonly

我可以从 Latex 中直接写入 LaTeX 控制台输出吗?

0 投票
5 回答
21801 浏览

latex - 用 latexmk 编译 XeLaTeX tex 文件

如何在 Mac OS X 上编译XeLaTeXtex 文档?latexmk

目前我正在运行latexmk job.tex并收到错误:

我的 tex 文件的第一行是(正如这篇文章所建议的):

我已经尝试过其他方法(例如 program=xelatex),但无济于事。

latexmk描述其命令如下:

似乎没有任何逻辑机制可以从命令行选择 tex 程序,而且从源代码中也不清楚如何做到这一点。

我也看过rubber,但它似乎也不起作用。

感谢您提供的任何见解。

布赖恩

0 投票
2 回答
6261 浏览

ubuntu - pdfLaTeX microtype 包的字体错误

Ubuntu 10.4LTS我试图microtype在一类文档中使用包memoir,例如:

但是,当我尝试编译它(使用或其他)时rubberlatexmk我收到如下错误:

job.tex:72:字体 csnameendcsname=rm-lmr10+20 at 10.95pt 不可加载:未找到公制 (TFM) 文件。

job.tex:72:前导文本:\parbox{5in}{Abstract!}

job.tex:72:字体 csnameendcsname=rm-lmr10-20 at 10.95pt 无法加载:未找到公制 (TFM) 文件。

job.tex:72:前导文本:\parbox{5in}{Abstract!}

job.tex:80:字体 csnameendcsname=rm-lmr10+20 at 10.0pt 无法加载:未找到公制 (TFM) 文件。

job.tex:80:前导文本:...box{11cm}{\noindent{}保留所有权利。}

job.tex:80:字体 csnameendcsname=rm-lmr10-20 at 10.0pt 无法加载:未找到公制 (TFM) 文件。

job.tex:80:前导文本:...box{11cm}{\noindent{}保留所有权利。}

请注意,我省略了许多可能正在交互的代码,但导致此错误的一个活动行是包含microtype包。

我正在使用\usepackage{lmodern}and \usepackage[T1]{fontenc},但是当我将它们排除在外时,问题仍然存在,并且字体名称相应lmr10地从 default更改为cm10

这段代码很容易在 Mac OS X 上与 TeXShop 一起工作,但它似乎在 Ubuntu 上并不(容易)工作。我只是不太了解如何在 Ubuntu 上设置字体来解决这个问题,我非常有义务就如何解决此类错误提供意见。

谢谢你。

布赖恩

0 投票
3 回答
2733 浏览

emacs - 如何将 latexmk 绑定到 Emacs 中的一个键并让它显示错误(如果有)

我正在使用 AUCTeX,我想绑定一个键,例如C-0,它执行以下操作:

  1. 保存活动文件而不提示我。
  2. 在活动文件上运行latexmk而不提示我。
  3. latexmk如果遇到任何 by ,将向我显示错误。

我的问题不是如何绑定一个键(Tyler 在下面的评论中为此发布了一个链接),而是如何提出一个完成第 1-3 项的功能。


我打电话给 Latexmk

这是我的 .latexmkrc

我正在使用 Emacs 23.3 和 AUCTeX 11.86。

0 投票
2 回答
5241 浏览

emacs - Emacs latexmk 函数让我进入一个空缓冲区

这是对如何将 latexmk 绑定到 Emacs 中的一个键并让它显示错误(如果有)的后续内容。

我在 Emacs 中使用一个函数来编译 LaTeX 文档,latexmk但它的行为并不完全符合我的要求。我使用的功能是Jouni K. Seppänen提出的:

主要问题是,当我使用该功能(按C-0)时,它有时会将我扔到一个名为 TeX Live 2011 的空缓冲区中。

重现此问题的一种方法是尝试编译以下内容(vc.tex 不存在并不重要):

另一种重现它的方法是尝试编译以下内容:

一个小的(装饰性的)问题是 minibuffer 的高度有时会从一行扩展到两行,因为run-latexmk它运行后会弹回一行高度。我很难找到一个简单的例子来重现这种行为(我只为非常大的文档重现了它)。

我想要解决这两个问题。我也对在 Emacs 中与 latexmk 交互的其他方式感兴趣。


这是*... output* buffer最后一个示例的示例(缺少右花括号的示例\newcommand

以下是使 *TeX Help* 显示的 TeX 文件的输出Emergency stop.

0 投票
2 回答
2625 浏览

emacs - 如何让 latexmk 与 emacs 和 okular 一起工作

我刚开始使用 emacs,所以我什至不知道我是否正确地这样做了。 C-c C-c然后提示说Command [pdflatex]:,所以我输入latexmk。这甚至是它所期待的吗?然后我给出以下错误:

这是我的.latexmk文件:

这是我的.emacs文件:

0 投票
1 回答
417 浏览

emacs - 如何在与latexmk兼容的elisp中测试当前文件是否已更改

我正在使用以下函数在 emacs 中的乳胶文件上运行 latexmk:

(取自https://stackoverflow.com/a/14699078/406686)。

假设我有一个简单的文档 ( test.tex),其中有一些错误,例如:

现在,如果我按例如 Space 然后 Backspace (或进行任何更改并撤消它)然后运行my-run-latex​​latexmk 运行并说所有目标都是最新的。问题是然后我丢失了错误列表,所以TeX-next-error不会有任何影响。

我想这个问题可以通过(buffer-modified-p)在这种情况下替换为阻止运行 latexmk 的东西来解决(最好通过相同的测试 latexmk 来检查自上次运行以来文件是否更改)。知道怎么做吗?

0 投票
2 回答
389 浏览

bash - latexmk - 运行 bash 命令来停止 Dropbox 同步

我正在使用 latexmk 来编译我的 LaTeX 论文。我将论文保存在我的 Dropbox 上,并且随着数十到数百个 .aux 和相关文件的创建,Dropbox 索引会产生大量开销。

因此,我想在编译开始停止 Dropbox 之前插入以下 bash 脚本:

相应地,要在最后重新启动 Dropbox,我想:

如何通过编辑本地 latexmkrc 来做到这一点?