使用 xelatex+sumatraPDF 进行反向搜索的位置不准确

使用 xelatex+sumatraPDF 进行反向搜索的位置不准确

看来xelatex引擎在使用 sumatraPDF 时有一些“错误”,位置不正确!编译时使用相同的文档可以pdflatex完美运行。

我真的不知道问题出在哪里!

更新

由于评论需要一个例子来说明问题,我将在下文中阐明这一点。

首先,我的 TeX 版本是CTeX v2.9.2.164(这个不重要,只是重新打包了MiKTeX 2.9),我的编辑器是WinEdt 7.0标准默认设置,pdf 查看器是默认的SumatraPDF 2.0。让我也解释一下反向搜索设置:

  1. 确保--src在编译测试文档时在 WinEdt 中显示;
  2. 确保在面板中WinEdt->Options->Execution Modes->PDF ViewerPDF Viewer Executable指向正确的路径SumatraPDF.exe并且Sync TeX选项Use --synctex switch when --src is enabledchecked!(因为参数是标准的--synctex=1&.synctex.gz,我忽略了显示这一点)
  3. 确保我SumatraPDF setting->option->inverse search command相信"PathOFWinEdt.exe" "[Open(|%f|);SelPar(%l,8)]" 所有这些东西对于逆向搜索工作都是必要和充分的!

现在我来举个例子:

\documentclass{amsart}
\usepackage[margin=1in, includeheadfoot]{geometry}
\usepackage{lipsum}

\begin{document}
  %\lipsum[3-56]
  Nulla malesuada porttitor diam. Donec felis erat, congue non, volutpat at, tincidunt tristique, libero. Vivamus viverra fermentum felis. Donec nonummy pellentesque ante. Phasellus adipiscing semper elit. Proin fermentum massa ac quam. Sed diam turpis, molestie vitae, placerat a, molestie nec, leo. Maecenas lacinia. Nam ipsum ligula, eleifend at, accumsan nec, suscipit a, ipsum. Morbi blandit ligula feugiat magna.

Nunc eleifend consequat lorem. Sed lacinia nulla vitae enim. Pellentesque tincidunt purus vel magna. Integer non enim. Praesent euismod nunc eu purus. Donec bibendum quam in tellus. Nullam cursus pulvinar lectus. Donec et mi. Nam vulputate metus eu enim. Vestibulum pellentesque felis eu massa.

Quisque ullamcorper placerat ipsum. Cras nibh. Morbi vel justo vitae lacus tincidunt ultrices. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In hac habitasse platea dictumst. Integer tempus convallis augue. Etiam facilisis. Nunc elementum fermentum wisi. Aenean placerat. Ut imperdiet, enim sed gravida sollicitudin, felis odio placerat quam, ac pulvinar elit purus eget enim. Nunc vitae tortor. Proin tempus
nibh sit amet nisl. Vivamus quis tortor vitae risus porta vehicula.

Fusce mauris. Vestibulum luctus nibh at lectus. Sed bibendum, nulla a faucibus semper, leo velit ultricies tellus, ac venenatis arcu wisi vel nisl. Vestibulum diam. Aliquam pellentesque, augue quis sagittis posuere, turpis lacus congue quam, in hendrerit risus eros eget felis. Maecenas eget erat in sapien mattis porttitor. Vestibulum porttitor. Nulla facilisi. Sed a turpis eu lacus commodo facilisis. Morbi fringilla, wisi in dignissim interdum, justo lectus sagittis dui, et vehicula libero dui cursus dui. Mauris tempor ligula sed lacus. Duis cursus enim ut augue. Cras ac magna. Cras nulla. Nulla egestas. Curabitur a leo. Quisque egestas wisi eget nunc. Nam feugiat lacus vel est. Curabitur consectetuer.

Suspendisse vel felis. Ut lorem lorem, interdum eu, tincidunt sit amet, laoreet vitae, arcu. Aenean faucibus pede eu ante. Praesent enim elit, rutrum at, molestie non, nonummy vel, nisl. Ut lectus eros, malesuada sit amet, fermentum eu, sodales cursus, magna. Donec eu purus. Quisque vehicula, urna sed ultricies auctor, pede lorem egestas dui, et convallis elit erat sed nulla. Donec luctus. Curabitur et nunc. Aliquam dolor odio, commodo pretium, ultricies non, pharetra in, velit. Integer arcu est, nonummy in, fermentum faucibus, egestas vel, odio.

Sed commodo posuere pede. Mauris ut est. Ut quis purus. Sed ac odio. Sed vehicula hendrerit sem. Duis non odio. Morbi ut dui. Sed accumsan risus eget odio. In hac habitasse platea dictumst. Pellentesque non elit. Fusce sed justo eu urna porta tincidunt. Mauris felis odio, sollicitudin sed, volutpat a, ornare ac, erat. Morbi quis dolor. Donec pellentesque, erat ac sagittis semper, nunc dui lobortis purus, quis congue purus metus ultricies tellus. Proin et quam. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Praesent sapien turpis, fermentum vel, eleifend faucibus, vehicula eu, lacus.
\end{document}

将其保存为 utf8 编码文档,然后分别使用引擎xelatex和进行编译pdflatex。尝试双击输出 pdf 的一段,你会看到pdflatex编译后的文档会将你带到编辑器中的正确位置,但是xelatex事实并非如此。

希望这有助于发现问题,更重要的是解决问题。

相关内容