2010-10-12 25 views
16

J'aime toujours que mes personnages soient placés entre le texte et le haut ou le bas de la page. J'aime aussi parler de la figure avant qu'elle ne soit montrée. Donc, j'essaie d'avoir quelque chose comme ceci:Comment refaire une figure dans LaTeX avant qu'elle ne se produise?

En regardant la figure ~ \ ref {fig: VCO} vous pouvez voir que bla bla bla.

\begin{figure}[h] 
\caption{VCO test circuit}\label{fig:VCO} 
\begin{center} 
\includegraphics[width=0.9\columnwidth]{figures/VCO_circuit.eps} 
\end{center} 
\end{figure} 

Cela ne semble pas fonctionner parce que je suppose que cela fait référence à quelque chose qui ne s'est pas encore produit? Quelqu'un at-il une solution simple? Je suis encore très nouveau à LaTeX.

+2

Cela fonctionne comme si vous l'utilisiez. Vous pouvez référencer des images avant de les définir. – bastijn

+0

Adam. C'est généralement une bonne idée d'accepter les réponses quand vous les obtenez. C'est bon pour ton karma aussi. –

Répondre

3

Il a échoué la première fois car l'étiquetage et le référencement sont un processus en deux étapes. La première fois que vous avez traité votre latex, toutes les étiquettes ont été indexées, donc l'échec a échoué. La deuxième fois, étant donné que les étiquettes avaient été indexées, l'arbitre savait de quoi il s'agissait réellement.

17

Généralement, LaTeX a besoin d'au moins deux passages pour résoudre toutes ses références, la première fois pour les écrire dans un fichier auxiliaire et la deuxième fois pour les placer dans le fichier final ps/pdf/dvi. Donc, peu importe où est la référence.

Un troisième passage sera nécessaire, par exemple, si votre document a une longue table des matières qui va bousiller les numéros de page.

+1

+1 pour réponse-ifying [mon commentaire] (http://stackoverflow.com/questions/3916945/how-do-i-ref-a-figure-in-latex-before-it-occurs/3916960#3916960) plus clairement que je ne pourrais le dire. Le café n'a pas encore commencé, et cela fait trop longtemps que j'ai utilisé LaTeX. –

2

Je voudrais ajouter que latexmk (link) s'est avéré inestimable pour moi au fil des ans. C'est un script "build" LaTeX écrit en Perl qui est conçu pour compiler les fichiers source .tex le bon nombre de fois. Il analyse la sortie de la commande latex et effectue une vérification des dépendances pour s'assurer que le document de sortie est tenu à jour avec le nombre minimum de passages. Il peut également traiter des fichiers de bibliographie BibTeX. D'une manière générale, j'appelle latexmk depuis un makefile Ant ou GNU Make et je le traite comme si je compilais du code C++, par exemple.

+0

encore mieux, je le lance avec l'indicateur '-pvc' quand je commence à travailler et il montre une visionneuse avec le résultat, le mettant à jour automatiquement chaque fois qu'un fichier est modifié –

1

j'avais même problème et j'ai trouvé cette solution:

\graphicspath{{images/}} 
\DeclareGraphicsExtensions{.jpg} 

\makeatletter 
\newenvironment{tablehere} 
    {\def\@captype{table}} 
    {} 

\newenvironment{figurehere} 
    {\def\@captype{figure}} 
    {} 
\makeatother 

\begin{figurehere} 
\includegraphics[height=5cm]{2-14aGa-Sur.jpg} 
\caption{Hliněná destička s mapou severu Mezopotámie} 
\label{fig:Ga-Sur} 
\end{figurehere} 

\ graphicspath {{images /}} est là pour déclarer votre chemin à vos photos

\ DeclareGraphicsExtensions {} .jpg est là pour l'extension de l'image annoncez (multiple peut être avec une virgule (je pense ;-))

\makeatletter 
\newenvironment{tablehere} 
    {\def\@captype{table}} 
    {} 

\newenvironment{figurehere} 
    {\def\@captype{figure}} 
    {} 
\makeatother 

est là pour la détermination précise de la position ici

\begin{figurehere} 
\includegraphics[height=5cm]{2-14aGa-Sur.jpg} 
\caption{Hliněná destička s mapou severu Mezopotámie} 
\label{fig:Ga-Sur} 
\end{figurehere} 

il est votre image avec une hauteur spécifiée et la légende et l'étiquette avec elle ...

J'espère que cela vous aidera ;-).