Texlipse 构建器脚本配置具有自己的批处理文件,不会丢失正向和反向搜索

Texlipse 构建器脚本配置具有自己的批处理文件,不会丢失正向和反向搜索

我按照@Paulo Cereda 的指示配置了 texlipse(eclipse 中的 LaTeX),以便在运行时使用我的批处理文件。但在此过程中,我失去了向前即使配置确实成功使用了我的脚本,也可以进行搜索。 问题 1:如何重新启用搜索并保留我的配置?(我正在使用内置查看器 pdf4eclipse)

我遵循的说明如下(texlipse 构建器脚本配置)。我还尝试-syntex=1在参数下添加(见图)

我在 Windows 7 中使用带有 MiKTeX 2.9 的 eclipse。这是我的配置 在此处输入图片描述

有人建议使用 arara。但我有很多文件,\included {}有时我会循环遍历它们以制作逐章参考书目,正如您从我的脚本 (thesis.bat) 中看到的那样,其中的内容也被粘贴了。所以我不确定我知道如何实现这一点。

问题 2:在 arara 中,我该如何处理循环for %%X in (*.aux) do bibtex "%%X"和此行 (x2 is nls, x3=nlo) makeindex.exe %x2% -s nomencl.ist -o %x3%。请参阅下面的代码

我已尝试使用 arara,将以下内容粘贴到我的主文件顶部

% arara: pdflatex: {synctex: yes, action: nonstopmode}
% arara: pdflatex 
% arara: bibtex
% arara: pdflatex
% arara: pdflatex
% arara: makeindex
% arara: nomencl
% arara: pdflatex

并添加% arara: bibtex到每个顶部\include{file},但我得到了 在此处输入图片描述

问题 4:那么出了什么问题?此外,如果我成功修复了这个问题,arara 会保留我的正向和反向搜索吗?

我的 arara 批处理脚本的内容:thesis.bat

@echo off

arara F00_thesis

我的批处理脚本的内容:thesis.bat

:: Run
:: [path_to_bat_file] inp.tex inp.nlo inp.nls

@echo off
rem fake-command /u %1 rem /p %2 rem allows script to take inputs if rem is removed at start
cd c:\DATA\Thesis\ThesisReport

set tx=F00_thesis
set x1=%tx%.tex
set x2=%tx%.nlo
set x3=%tx%.nls
set pd=%tx%.pdf


:: Change Drive and  to File Directory
%~d1
cd %1

:: Run Cleanup
:: call:cleanup

taskkill /im "acrobat.exe" /f  
pdflatex %x1%
pdflatex %x1%
rem bibtex %tx%
for %%X in (*.aux) do bibtex "%%X"
pdflatex %x1%
pdflatex %x1%
makeindex.exe %x2% -s nomencl.ist -o %x3%
pdflatex %x1%
:: start "sumatraPDF" "C:\Program Files (x86)\SumatraPDF\sumatraPDF.exe" %pd% -reuse-instance
:: START "" %pd%
:: START "C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" %pd% -reuse-instance
:: http://nimal.info/blog/2010/latex-on-windows-with-miktex-and-notepad/
:cleanup
REM del *.log
REM del *.dvi
REM del *.aux
REM del *.bbl
REM del *.blg
REM del *.brf
REM del *.out
goto:eof

对我来说最简单的解决方案是让我保留我的脚本并仍然保持.tex 和 pdf 之间的同步

答案1

让我看看是否能解答您的问题。:)

:set jack-the-ripper-mode on

问题 1

我对 SyncTeX 不太熟悉,所以我对你的第一个问题的回答更像是一个猜测。对于大多数引擎,arara提供synctex要添加到指令中的参数,就像你在代码中所做的那样。但我相信这个功能必须在最后的发动机运转,而不是第一的,因为查看器会根据编译过程的结束来更新其显示。在对引擎执行后续调用时,SyncTeX 元数据会丢失。我的答案是这样的:尝试包含

% arara: <engine>: { synctex: yes }

作为编译链的最后一部分。如果这不起作用,那么我们可能会遇到超出范围的某些特定于查看器的情况arara

问题2

arara不进行通配符搜索(长话短说:不允许子 shell 扩展),因此您必须提供要处理的文件。当您使用

% arara: bibtex

规则将bibtex根据主文件基名 + 扩展名运行.aux。这是默认行为。实际上,每个使用主文件引用的规则都支持覆盖,通过利用files其各自指令上的参数来完成。如果您有

foo.aux
bar.aux
foobar.aux
baz.aux

并且想要在每个文件上arara运行bibtex,你可以使用

% arara: bibtex: { files: [ foo.aux ] }
% arara: bibtex: { files: [ bar.aux ] }
% arara: bibtex: { files: [ foobar.aux ] }
% arara: bibtex: { files: [ baz.aux ] }

或者简单地提供这一行中的所有项目:

% arara: bibtex: { files: [ foo.aux, bar.aux, foobar.aux, baz.aux ] }

这会将规则arara扩展bibtex到这四个文件,取代主文件引用。

同样的理念也适用于nomencl规则。如果你有

woof.nlo
quack.nlo
meow.nlo

你可以files再次使用,所以

% arara: nomencl: { files: [ woof.nlo ] }
% arara: nomencl: { files: [ quack.nlo ] }
% arara: nomencl: { files: [ meow.nlo ] }

或愤怒地

% arara: nomencl: { files: [ woof.nlo, quack.nlo, meow.nlo ] }

并将arara处理一切。

问题 3

原始帖子中实际上没有#3。:)

问题 4

哪里出了问题?根据之前的讨论,也许指令需要重写。:)手册中某处有类似内容arara确切地你告诉它做什么就做什么。不多也不少。

也许添加--log到工具配置中可以帮助您识别从底层执行引发的错误(请注意,引发FAILURE的消息arara不是来自工具本身,而是来自底层命令)。此标志arara.log在当前目录中生成一个名为的文件,其中包含会话中完成的每个调用的每个输出。

好吧,这就是我能从你的问题中抽象出来的。在这里,在主要问题中出现中间问题的情况相当少见,所以当我试图确定我要解决哪个子问题时,我大部分时间都迷失了方向。:)哦,好吧,这就是生活:)

希望能帮助到你。:)

答案2

我设法通过在自定义构建中选中以下框来使用 Texlipse 和 PDF4Eclipse 恢复自动刷新。

希望它能帮助你。

此外,最后一次调用 pdflatex 时应该调用 synctex。

最好的,

编译后重新启用自动刷新的选项

相关内容