我有两个问题:
1)如果我在目录中parent
,如何将main.tex
目录中的文件编译为 PDF 文件parent/subfolder/subfolder1/
并保存到相同的最后位置?
我已经尝试过latexmk -pdf subfolder/subfolder/main.tex
,它确实有效,但它会将所有辅助文件和生成的 PDF 文件编译到运行脚本的目录中(parent
)。有没有办法让它将辅助文件和 PDF 输出到目标所在的目录中main.tex
,同时仍然从中运行此命令parent
?
2) 我的main.tex
引用位于不同目录中的文件夹中的文件,即:../commands/command.tex
。使用\input{../commands/command.tex}
并从同一目录进行编译是可行的,但是一旦我进入目录parent
并尝试执行相同的操作,我就会收到消息! LaTeX Error: File ../commands/command.tex' not found.
如何成功导入此文件并从中进行编译parent
?
这是我的文件的简化版本main.tex
:
\documentclass{article}
\input{../commands/command.tex}
\begin{document}
\begin{equation}
\label{simple_equation}
\alpha = \sqrt{ \beta }
\end{equation}
\test % my defined command
\end{document}
和我的command.tex
文件:
\newcommand{\test}{dummy text}
请记住文件夹结构是:
parent
subfolder
subfolder1
main.tex
commands
command.tex
我想从目录编译 main.texparent
答案1
正如评论中提到的那样,-cd
latexmk 的选项完全符合您的要求
latexmk -pdf -cd subfolder/subfolder/main.tex
答案2
在 Linux 系统上(也可能是 Mac)您可以创建一个#!/bin/bash
脚本(我们将其命名为 myLTXRun.sh 并将其保存在 main.tex 的目录中):
该脚本将包含以下行:
#!/bin/bash
COMMAND1="cd /path/of/main/latex/file"
COMMAND2="latexmk main.tex"
echo "Running:"$COMMAND1
$COMMAND1
echo "Running:"$COMMAND2
$COMMAND2
然后您将使用以下命令(从 main.tex 文件的目录中)为 .sh 文件授予所需的权限:
chmod +775 myLTXRun.sh
然后您可以从任何目录运行以下命令:
sh /path/to/mainFile/dir/myLTXRun.sh
(在 Debian GNU/Linux 上测试)
在 Windows 10 上你可以在安装完 Windows 子系统后使用与 Linux 完全相同的步骤:以下是说明
(我还没有测试过!)
从命令提示符中,最后一个命令必须替换为:
bash -c "sh /path/to/mainFile/dir/myLTXRun.sh"