从 notepad++ 编译 LaTeX 并用 sumatra 打开。如果文件路径包含变音符号,则 ForwardSearch 不起作用

Compiling LaTeX from notepad++ and opening with sumatra. ForwardSearch doesn't work if file path contains umlauts

我遇到这个小问题已经有一段时间了,即使在谷歌搜索过多之后我也找不到解决方案。 在 this guide 中描述了如何使用 npp++ 和 nppExec 以及 SumatraPDF 编写和编译 LaTeX。

通过一些聪明的脚本和DDE 命令的使用(通过CMCDDE.exe),甚至可以使用sumatra 的ForwardSearch 在.tex 和.pdf 之间来回跳转。一切正常,除非 .tex 文件的路径包含不在英文字母表中的字符(例如 åäö)。

然后 CMCDDE 命令失败,因为发送到 sumatra 的 ForwardSearch 的路径读取(例如)C:\†„” 而不是 C:\åäö。这一定是一个编码问题,我一直无法找到有效的解决方案。

所以,如果我有这个 .tex 文件 C:\åäö\MWE.tex

\documentclass{article}
\begin{document}
Hello World!
\end{document}

使用link above中描述的批处理脚本时无法正确打开。这些是有问题的批处理文件行:

::Writes the commands that are to be executed using CMCDDE.exe (through cmcdde.tmp)
echo SUMATRA>"%~dp1build\cmcdde.tmp"
::%~dp1build transforms into C:\åäö\build for the MWE
echo control>>"%~dp1build\cmcdde.tmp"
echo [ForwardSearch("%~dp1build\%~n1.pdf", "%~f1", %2, 0, 0, 0)]>>"%~dp1build\cmcdde.tmp" 
:: This gives the following line in cmcdde.tmp: [ForwardSearch("P:\Documents\†„”\build\MWE.pdf", "P:\Documents\†„”\MWE.tex", 3, 0, 0, 0)] (in ANSI encoding)

"P:\Documents\localtexmf\cmcdde.exe" @"%~dp1build\cmcdde.txt"
:: This fails because the path P:\Documents\†„”\build doesn't exist (P:\Documents\åäö\build does)

我曾经尝试过的想法:

请让我知道如果有问题问题的哪些部分不清楚。

我设法找到了解决方案。原来使用代码页 1252 解决了这个问题。

所以将chcp 1252放在批处理文件的开头是解决方案。但是,如果您使用其他 none 标准字符而不是我(除了北欧字母表中的字符),我猜您可能需要另一个代码页。

试验和测试不同的方法,直到你能正常工作。