
Tengo el siguiente problema: un gran proyecto de látex project.tex con varios capítulos. Para cada uno de estos capítulos tengo varias imágenes tikz que quiero exteriorizar en la carpeta tikz_pdf. La estructura del archivo es en consecuencia
home/chapter/chapter1/img/example_1.tikz
home/chapter/chapter1/img/example_2.tikz
home/project.tex
home/tikz_pdf
Como es un gran proyecto, quiero automatizar la externalización usando una macro:
\includetikz{chapter/chapter1/img/example_1.tikz}
en lugar de
\input{chapter/chapter1/img/example_1.tikz}
para obtener el mismo nombre de archivo tikz en los archivos PDF creados en /tikz_pdf. El pdf externalizado de "capítulo/capítulo1/img/example1.tikz" será, por tanto, "home/tikz_pdf/example1.pdf". Para ello me gustaría utilizar una macro que se pueda aplicar como:
\documentclass[12pt,lot, lof]{puthesis}
\usepackage{filemod}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize[prefix=tikz/]
% THIS IS THE MACRO
\makeatletter
\DeclareRobustCommand{\includetikz}[1]{%
\begingroup
\def\textendash{-}%
\includetikz@parse{#1}%
\edef\includetikz@base{\detokenize\expandafter{\includetikz@base}}%
\tikzsetnextfilename{\filename@base}%
\input{#1}%
\endgroup
}
\makeatother
\begin{document}
\begin{figure}
\includetikz{chapter/chapter1/img/example_1.tikz}
\end{figure}
\begin{figure}
\includetikz{chapter/chapter1/img/example_2.tikz}
\end{figure}
\end{document}
Sin embargo, el problema hasta ahora es que los guiones bajos en los nombres de archivos provocan que \input{#1} sólo produzca errores de $ faltantes. Ya intenté usar \input{\detokanize{#1}} sin mejores resultados. ¿Tiene alguna idea de cómo resolver este problema? Muchas gracias