我的问题是这个问题的后续问题: 是否可以在子文件内使用带有相对路径的 includegraphics?
我的图片在 sub/image 文件夹中。我想为每个子文件自动添加图形的“sub/images”路径。有人能帮我编辑代码以便实现这一点吗?
此代码将路径添加到子文件,因此图像应与子文件位于同一路径中。我想将图像保存在子文件夹中。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{subfiles}
\makeatletter
\let\org@subfile\subfile
\renewcommand*{\subfile}[1]{%
\filename@parse{#1}% LaTeX's file name parser
\expandafter
\graphicspath\expandafter{\expandafter{\filename@area}}%
\org@subfile{#1}%
}
\makeatother
\begin{document}
Main file
\subfile{sub/sub.tex}
\end{document}
答案1
已编辑鉴于sajid 的评论. 但额外的\expandafter
就没有必要了。
您可以按照通常的方式附加子目录。
\graphicspath\expandafter{\expandafter{\filename@area img/}}%
即使图像需要转换,这种方法也能奏效。(我从发行版中复制了标准老虎图像,需要将其转换为 pdfTeX。)
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{subfiles}
\makeatletter
\let\org@subfile\subfile
\renewcommand*{\subfile}[1]{%
\filename@parse{#1}% LaTeX's file name parser
\expandafter
\graphicspath\expandafter{\expandafter{\filename@area img/}}%
\org@subfile{#1}%
}
\makeatother
\begin{document}
Main file
\subfile{sub/sub.tex}
\end{document}
希望这是预期的输出:
答案2
除非你确实需要在 TeX 文件中执行此操作,否则请考虑在构建之前将子目录添加到 TEXINPUTS 环境变量中(例如,TEXINPUTS 变量的定义)。一切都正常,当然,除非存在文件名冲突。
答案3
这是我解决问题的方法(在 cfr 的帮助下)。基本上,在 filename@area 后面添加文件夹的名称(它会用 / 输出子文件的目录名称)
\makeatletter
\let\org@subfile\subfile
\renewcommand*{\subfile}[1]{%
\filename@parse{#1}% LaTeX's file name parser
\expandafter
\graphicspath\expandafter{\expandafter{\filename@area images/}}%
\org@subfile{#1}%
}
\makeatother