项目目录组织:代码输出到哪里?

项目目录组织:代码输出到哪里?

我正在尝试构建一个遵循最佳实践的项目目录组织结构。调整这个结构,我的项目结构的一部分如下所示:

myproject
myproject/code/r/main.r    
myproject/report/main.tex

问:我应该告诉我的 R 输出去哪里?是否有一个普遍接受的最佳实践,即最不易损坏、最模块化、最直观等?

我看到了一些选择:

  1. myproject/code/r/。在这种情况下main.tex将包括类似 的语句\includgraphics{../code/r/output.pdf}。但这似乎很笨拙。main.tex真的应该“知道” 吗../code/r/
  2. myproject/code-output。在这种情况下main.tex将包括类似 的内容\includgraphics{../code-output/output.pdf}main.r将包括类似 的语句pdf("../../code-output/output.pdf")。目前这是我首选的方法。将其输出“放入”可以合理“查看”main.r的目录中似乎合乎逻辑。main.tex
  3. myproject/report/img。在这种情况下main.tex将包括类似 的内容\includgraphics{./img/output.pdf}main.r将包括类似 的语句pdf("../../report/img/output.pdf")。我不喜欢这种方法,原因与上面的“1.”相同:在这种情况下,似乎不应该main.r“知道” \report\img

我不是程序员,但可能做了很多这样的事。所以,我很好奇程序员是如何看待这类事情的。欢迎大家发表自己的看法!

答案1

是否存在普遍接受的最佳实践

再次没有最佳实践。这适用于所有 LaTeX,所以请不要再要求最佳实践 ;-)

我不是程序员

如果你使用 R 和 TeX,那么你就是一名程序员 :-)


总的来说,我认为您的所有建议都很好。建议将文档与数据文件分开,因为 LaTeX 喜欢生成大量辅助文件。虽然有--output-directory您链接的帖子中提到的选项,但许多编辑器并不知道这一点,默认情况下将输出文件放在输入/当前目录中。因此,关于 LaTeX 文件的经验法则是为每个文档使用一个专用目录。如果您想从多个源编译多个版本,则这些版本应该进入不同的输出目录。

关于图片和其他数据输入文件:(1)和(2)理论上可能会导致问题,因为可以禁用从父目录读取文件(这在接收不受信任输入的批处理环境中可能是有意义的)。我通常选择(1)和(3)的组合,让数据处理工具将其输出放在与输入相同的目录中(或类似目录),然后添加指向 LaTeX 目录中数据/图片文件的符号链接。我认为这种方法结合了(1)和(3)的优点:数据处理工具不需要知道它的输出用于 TeX 文档,而文档不需要知道数据来自哪里。所以在你的情况下,我会添加一个myproject/report/img/output.pdf指向的符号链接../../code/r/output.pdf

相关内容