Qual é uma boa técnica de gerenciamento de código-fonte para posicionar rapidamente carros alegóricos com SyncTeX?

Qual é uma boa técnica de gerenciamento de código-fonte para posicionar rapidamente carros alegóricos com SyncTeX?

Posicionar um float em um documento geralmente envolve não apenas alterar modificadores como [t]etc, mas também movimentar o código - especialmente figure*ambientes em twocolumndocumentos, que devem ser vistos pelo compilador antes da página em que deveriam aparecer.

Mover um flutuador longo, em particular uma mesa, várias vezes pode ser bastante irritante; além disso, ao usar software de controle de versão, isso resulta em diffproblemas significativos onde nenhuma mudança significativa ocorreu de fato e interrompe a blamefunção.

Uma maneira que tentei é

\newcommand{\figureImportantResult}{\begin{figure}...\end{figure}}

(por exemplo, no preâmbulo) e movendo-se apenas \figureImportantResult. Isso funciona muito bem, resolvendo os problemas acima (apenas alterações de uma linha que não envolvem o figureambiente). No entanto, o SyncTeX não entende isso muito bem: cada float está associado apenas à \figure...linha correspondente, não à definição do ambiente - portanto, aplicar alterações ao ambiente torna-se mais complicado. O mesmo acontece com construções usando o catchfilebetweentagspacote (vejaesta resposta).

Qual é uma boa maneira de lidar com isso? \include/ \inputprovavelmente funcionaria, mas eu gostaria de manter o documento inteiro em um arquivo (alguns editores preferem/exigem isso). Eu sei que posso substituir programaticamente \include/ \inputpelo conteúdo dos respectivos arquivos antes do envio, mas não é isso que eu preferiria fazer. Posso sugerir ao SyncTeX uma localização melhor desse código? Existe uma alternativa que \newcommando SyncTeX entende?

Responder1

Isso pode não ser legal, mas funciona. Talvez inspire alguém a postar uma resposta melhor:

% FIGURE DEFINITION
\ifdefined\whichfigure\begin{myfigures}
    \definefigure{FigA}{%
        AAA
    }
    \definefigure{FigB}{%
        BBB
    }
    \definefigure{FigD}{%
        DDD
    }
    \definefigure{FigE}{%
        EEE
    }
\end{myfigures}\fi

\documentclass{article}

% PREAMBLE CODE
\newenvironment{myfigures}{%
    \let\shownfigure\relax%
}{%
    \if\shownfigure\relax%
        \PackageWarning{\string\showfigure}{Figure `\whichfigure' not defined}%
    \fi%
    \endinput%
}
\newcommand{\definefigure}[2]{%
    \def\thisfigure{#1}%
    \ifx\whichfigure\thisfigure%
        \let\shownfigure\thisfigure%
        #2%
    \fi%
}
\newcommand{\showfigure}[1]{%
    \def\whichfigure{#1}%
    \input{\jobname}%
}
% END OF PREAMBLE CODE

\begin{document}
    % FIGURE INCLUSION
    \showfigure{FigA}

    \showfigure{FigB}

    \showfigure{FigC}

    \showfigure{FigE}
\end{document}

informação relacionada