Extraiga una de las múltiples imágenes tikz de un archivo tex

Extraiga una de las múltiples imágenes tikz de un archivo tex

esta es mi primera pregunta. Busqué por un tiempo pero todavía no pude encontrar una pregunta similar, tal vez me falta la frase de búsqueda correcta. De todos modos, aquí viene.

Mientras escribía una tesis, tengo un problema al ingresar gráficos: obtuve los resultados de los cálculos enumerados en archivos .txt y quiero evitar tener un archivo tex propio para cada gráfico. Entonces mi idea es poner todos los diagramas en un solo archivo, distinguiéndolos por un entorno propio "tikzpicture". Ahora lo que extraño es una forma de decirle a mi documento principal que solo ingrese, digamos, el tercer o quinto diagrama de este archivo tex. ¿Hay alguna forma de hacer esto? ¿Quizás darle a cada tikzpicture algo así como una etiqueta?

Mi objetivo es a) producir menos archivos b) definir un formato para todos mis diagramas y, en caso de que quiera cambiarlo, solo tengo que hacerlo una vez y no en todos los archivos de diagrama.

Si es demasiado complejo, ¿tal vez pueda sugerir otra forma de realizarlo?

Gracias de antemano.

Respuesta1

La solución más fácil, pero también descuidada, sería definir un \newcommand, para cada imagen tikz que cree en su archivo .tex y luego insertarla en su archivo principal.

Podrías tener un pictures.texarchivo como este:

\newcommand{\tikzI}{
  \begin{tikzpicture}
    <insert tikz contents here>
  \end{tikzpicture}
}

\newcommand{\tikzII}{
  \begin{tikzpicture}
    <another tikzpicture>
  \end{tikzpicture}
}

Si bien su archivo principal puede verse así:

<preamble>
\begin{document}
\input{pictures}

<some text here>
\tikzI
<more text>
\tikzII
\end{document}

Sin embargo, como sugirió Alan Munn, podría ser más fácil y cómodo asignar cada imagen a su propio archivo y simplemente llamar estos archivos por separado para cada tikzpicture. (Crear un directorio específicamente para tikzpictures, para que no saturan su directorio principal)

Respuesta2

No creo que debas poner todas tus imágenes en un solo archivo. Es mucho más fácil gestionar varios archivos a largo plazo.

Este es un caso de uso ideal para la standalonecombinación de paquete y clase. Cada gráfico individual se puede crear como un standalonedocumento y probarlo por sí mismo, pero luego se pueden ingresar en el documento maestro usando el standalonepaquete. Puedes poner tus estilos TikZ comunes en un paquete pequeño. He aquí un ejemplo.

Ponga estilos comunes de TikZ en un paquete

Primero creamos un paquete de nuestros estilos TikZ. Acabo de definir un estilo como ejemplo.

\ProvidesPackage{mytikzstyles}[2017/04/30]
\tikzset{my line/.style={red,very thick}}

Guarde este documento mytikzstyles.styen la misma carpeta que su documento, o si los está utilizando para muchos documentos, colóquelo en su texmfcarpeta local en <path-to-local-texmf>/tex/latex/mytikzstyles/.

standaloneCrear documentos de imagen individuales

A continuación creamos standalonedocumentos de clase para cada imagen. La ventaja de esto es que puedes probarlos y modificarlos individualmente ya que son documentos totalmente compilables. En cada documento solo necesitas agregar \usepackage{mytikzstyles}para acceder a los estilos comunes que has creado.

Image-1.tex

\documentclass[tikz=true,border=10pt]{standalone}
\usepackage{mytikzstyles}
\begin{document}
\begin{tikzpicture}
\draw[my line] (0,0)  -- (0,3)  -- (3,3) -- cycle;
\end{tikzpicture}
\end{document}

Image-2.tex

\documentclass[tikz=true,border=10pt]{standalone}
\usepackage{mytikzstyles}
\begin{document}
\begin{tikzpicture}
\draw[my line] (0,0)  -- (0,3)  -- (3,0) -- (3,3) -- cycle;
\end{tikzpicture}
\end{document}

Utilice la standaloneclase para ingresar los archivos.

Ahora nuestro documento principal puede ingresar los archivos de la forma que queramos. Para mantener limpio su directorio de archivos principal, puede colocar todos los documentos de imagen en su propia carpeta. (Asegúrese de que no haya espacios en la carpeta ni en los nombres de archivo).

He aquí un ejemplo:

\documentclass{article}
\usepackage{standalone}
\usepackage{tikz}
\usepackage{mytikzstyles}
\begin{document}
\begin{figure}
\centering
\input{Image-2}
\caption{This is image 2}
\end{figure}
\begin{figure}
\centering
\input{Image-1}
\caption{This is image 1}
\end{figure}
\end{document}

salida de código

información relacionada