是否可以使用带有子文件夹、子文件内的相对路径的 includegraphics ?

是否可以使用带有子文件夹、子文件内的相对路径的 includegraphics ?

我的问题是这个问题的后续问题: 是否可以在子文件内使用带有相对路径的 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

相关内容