我正在努力pythonTeX在 Windows 10 中按照以下步骤运行 Lyx 2.4.1这帖子。我已经安装了 pythonTeX,并在使用以下命令运行测试文件时验证了它是否可以正常工作:
pdflatex test.tex
(这将生成 pytx 代码)pythontex.bat test.tex
(解析 pytx 代码)pdflatex test.tex
(这将生成 pdf)
在 Lyx 中,我按照上一篇文章中的讨论设置了文件格式:
- 格式=
LaTeX (pytex1)
;短名称=pytex1
;扩展名=pytex1ext
- 格式=
LaTeX (pytex2)
;短名称=pytex2
;扩展名=tex
- 格式=
PDF (pytex)
;短名称=pytex
;扩展名=pdf
和转换器:
- 从=
LaTeX (pdflatex)
;到=LaTeX (pytex1)
;转换器=pdflatex $$i
;额外=latex=pdflatex
- 从=
LaTeX (pytex1)
;到=LaTeX (pytex2)
;转换器=pythontex.bat $$i
;额外=`` - 从=
LaTeX (pytex2)
;到=PDF (pytex)
;转换器=pdflatex $$i
;额外=latex=pdflatex
它遵循上面描述的测试运行。
这并没有按预期工作;转换的第 1 步工作正常,即pdflatex
在 tex 文件上运行以创建 pytx 代码。但是,第 2 步失败并显示以下消息:
09:11:07.158: pythontex.bat "test.pytex1ext"
09:11:07.188:
09:11:07.193: C:\Users\xxx\AppData\Local\Temp\lyx_tmpdir>python "c:/users/xxx/documents/localtexmf/scripts/pythontex/pythontex.py" test.pytex1ext
09:11:07.575: Traceback (most recent call last):
09:11:07.580: File "c:/users/xxx/documents/localtexmf/scripts/pythontex/pythontex.py", line 50, in <module>
09:11:07.584: import pythontex2 as pythontex
09:11:07.587: File "c:\users\xxx\documents\localtexmf\scripts\pythontex\pythontex2.py", line 60, in <module>
09:11:07.590: import multiprocessing
09:11:07.592: ImportError: No module named multiprocessing
..\..\..\src\support\Systemcall.cpp (292): Systemcall: 'pythontex.bat "test.pytex1ext"' finished with exit code 1
Error: Cannot convert file
这显然会失败,因为C:\Users\xxx\AppData\Local\Temp\lyx_tmpdir
没有文件test.pytex1ext
是格式 1 中定义的扩展名,只有文件test.tex
。那么当我将扩展名更改为时会发生什么tex
?然后第二步尝试运行:
pythontex.bat 'tmpfile.out'
这显然也不存在。谁知道如何解决这个问题?我已经接近成功了,但还是无法让它工作。
注意:模块上的 ImportErrormultiprocessing
让我有点担心,因为从命令提示符运行时它工作正常pythotex.bat
,但我想先正确获取扩展并查看问题是否仍然存在。
答案1
事实证明,这ImportError
是问题;显然 LyX 使用自己的 Python 版本。为了解决这个问题,我用我安装的 Python 版本的软链接替换了 Python 版本。或者,您可以在首选项中设置正确的 PATH 变量。
导致问题的第二件事是在步骤 1 中创建 pdf;如果 pdf 已经存在,Lyx 将不会编译新的 pdf。对我来说,一个快速的解决方法是pythontex.bat
在调用 之前插入以下几行pythontex.py
:
set argin=%1
del %argin:pytex1ext=pdf%
请注意,如果这些文件用作具有矢量图形的图像格式,这将跳过任何其他生成的 pdf。