Extraia uma das várias imagens tikz de um arquivo tex

Extraia uma das várias imagens tikz de um arquivo tex

esta é minha primeira pergunta. Pesquisei um pouco, mas ainda não consegui encontrar uma pergunta semelhante, talvez não tenha a frase de pesquisa correta. De qualquer forma, aí vem.

Ao escrever uma tese, tive um problema ao inserir gráficos: obtive os resultados dos cálculos listados em arquivos .txt e quero evitar ter um arquivo tex próprio para cada gráfico. Então minha ideia é colocar todos os diagramas em um arquivo, distinguindo-os por um ambiente "tikzpicture" próprio. Agora, o que sinto falta é uma maneira de dizer ao meu documento principal para inserir apenas, digamos, o terceiro ou quinto diagrama deste arquivo tex. Existe uma maneira de fazer isso? Talvez dar a cada tikzpicture algo como uma tag?

Meu objetivo é a) produzir menos arquivos b) definir um formato para todos os meus diagramas e caso eu queira alterá-lo, só preciso fazer isso uma vez e não em todos os arquivos de diagrama.

Se for muito complexo, talvez você possa sugerir outra maneira de perceber isso?

Agradeço antecipadamente.

Responder1

A solução mais fácil, mas também desleixada, seria a definição de a \newcommand, para cada tikzpicture que você cria em seu arquivo .tex e depois inseri-la em seu arquivo principal.

Você poderia ter um pictures.texarquivo assim:

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

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

Embora seu arquivo principal possa ter esta aparência:

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

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

No entanto, como sugeriu Alan Munn, pode ser mais fácil e confortável atribuir cada imagem ao seu próprio arquivo e simplesmente chamar esses arquivos separadamente para cada tikzpicture. (Criando um diretório especificamente para tikzpictures, para que eles não sobrecarreguem seu diretório principal)

Responder2

Não acho que você deva colocar todas as suas imagens em um único arquivo. É muito mais fácil gerenciar vários arquivos a longo prazo.

Este é um caso de uso ideal para a standalonecombinação de pacote e classe. Cada gráfico individual pode ser criado como um standalonedocumento e testado por si só, mas pode então ser inserido no documento mestre usando o standalonepacote. Você pode colocar seus estilos TikZ comuns em um pacote pequeno. Aqui está um exemplo.

Coloque estilos TikZ comuns em um pacote

Primeiro criamos um pacote com nossos estilos TikZ. Acabei de definir um estilo como exemplo.

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

Salve este documento mytikzstyles.styna mesma pasta do seu documento ou, se você estiver usando-o para muitos documentos, coloque-o na sua texmfpasta local no formato <path-to-local-texmf>/tex/latex/mytikzstyles/.

standaloneCrie documentos de imagem individuais

A seguir criamos standalonedocumentos de classe para cada imagem. A vantagem disso é que você pode testá-los e ajustá-los individualmente, pois são documentos totalmente compiláveis. Em cada documento você só precisa adicionar \usepackage{mytikzstyles}para acessar os estilos comuns que você criou.

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}

Use a standaloneclasse para inserir os arquivos

Agora nosso documento principal pode inserir os arquivos da maneira que quisermos. Para manter o diretório de arquivos principal mais limpo, você pode colocar todos os documentos de imagem em sua própria pasta. (Certifique-se de que não haja espaços na pasta ou nos nomes dos arquivos.)

Aqui está um exemplo:

\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}

saída de código

informação relacionada