为了在 Latex 编译中/之前/期间运行名为 Visual Basic 的脚本readCSV.vbs
,我有以下内容MWE
:
\documentclass{article}
% line3:
%\immediate\write18{readCSV.vbs} %Works If you put it next to main
% line5:
\immediate\write18{"/CsvTasks/readCSV.vbs"} % Does not work
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\end{document}
如果我:1.readCSV.vbs
直接将其放在与 2. 相同的文件夹中main.txt
。打开 cmd 并浏览到目录,例如E:/folder path with a space in it/project folder/
包含readCSV.vbs
3. 执行命令:pdflatex --enable-write18 -interaction=nonstopmode main.tex
如果取消注释第 3 行,它就可以正常工作,这意味着它可以直接在与 相同的文件夹中编译并运行脚本Main.tex
。
但是,当我使用第 5 行运行它并注释第 3 行时,它不起作用。(以下所有命令均从E:/folder path with a space in it/project folder/
包含main.tex
. 的目录执行)
错误信息是:
(e:/texlive/2018/texmf-dist/tex/latex/base/size10.clo))The system cannot find the path specified.
根据评论进行编辑:
选项:
\immediate\write18{"CsvTasks/readCSV.vbs"}
返回:
e:/texlive/2018/texmf-dist/tex/latex/base/size10.clo))'CsvTasks' is not recognized as an internal or external command, operable program or batch file.
选项如下:
\immediate\write18{./CsvTasks/readCSV.vbs}
返回:
(e:/texlive/2018/texmf-dist/tex/latex/base/size10.clo))'.' is not recognized as an internal or external command, operable program or batch file.
选项如下:
\immediate\write18{"E:/folder path with a space in it/project folder/CsvTasks/readCSV.vbs"}
可以。但是,我打算让它可以在不同的电脑上运行,这就是为什么我要么寻找:
\write18
仅需要子文件夹即可运行的命令- 一种将绝对路径获取
main.tex
到乳胶中的方法,以便我可以将子文件夹粘贴到其后面。
为了完整起见:我在装有 Texmaker 的 Windows 10 电脑上运行它。
问题
如何使用来自子/相对目录的命令readCSV.vbs
从 latex运行?\write18
/CsvTasks/readCSV.vbs