Labeln von Grafiken aus einem Makro

Tabellen und Grafiken erstellen und anordnen


Kujo
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Di 22. Nov 2011, 19:17

Labeln von Grafiken aus einem Makro

Beitrag von Kujo »

Hi,

ich habe mir für das Einbinden von Grafiken folgendes Makro angelegt:

 %\bild{width=0.5\linewidth}{bild.jpg}{Bilduntersch rift}{label}
 \newcommand{\bild}[4] 
 {
 \begin{figure}[htb]
 \begin{center}
 \includegraphics[#1]{Bilder/#2} %Bilder liegen im Unterordner "Bilder"
 \caption{#3} 
 \label{#4} 
 \end{center} 
 \end{figure} 
 }
Das Makro selbst funktioniert auch einwandfrei und es funktioniert auch, sich auf das Label der entsprechenden Grafik zu beziehen, sodass die richtigen Nummer mittels \ref und \pageref angezeigt werden.
Also, es funktioniert, dass es anzeigt "Abb. 1" und nicht "Abb.??".

Was allerdings Probleme bereitet und die Arbeit doch immer etwas verzögert ist, dass die über das Makro gesetzten Labels beim Eintippen von "\ref" nicht vorgeschlagen werden.

Tabellen setze ich bisher ohne Makro, sodass hier, wenn ich "\ref" eintippe auch sämtliche Labels meiner Tabellen in den Vorschlägen aufgelistet sind. Bei den über das Makro gesetzten Grafiken ist das aber leider nicht der Fall und ich muss alle Labels immer von Hand eintippen.
Bei manuell eingebundenen Grafiken, also ganz normal über \includegraphics funktioniert es wiederum einwandfrei.

Es liegt also am Makro. Gibt es eine Möglichkeit das Problem zu beheben? Ich hoffe, es wurde klar, was ich meine.

Ich habe mich bereits im Netz umgesehen, aber leider kein ähnliches Problem gefunden.

Hier das Minimalbeispiel mit Grafik und Tabelle ohne Makro und Grafik mit Makro:
\documentclass[a4paper, 12pt, twoside, titlepage]{article} 
	
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} % Input in ISO 8859-1 (Latin1)
\usepackage{graphicx}


  
 %\bild{width=0.5\linewidth}{bild.jpg}{Bilduntersch rift}{label}
 \newcommand{\bild}[4] 
 {
 \begin{figure}[htb]
 \begin{center}
 \includegraphics[#1]{Bilder/#2} %Bilder liegen im Unterordner "Bilder"
 \caption{#3} 
 \label{#4} 
 \end{center} 
 \end{figure} 
 }
 

\begin{document}

\begin{table}
\centering
\caption{Testtabelle} 
\label{Testlabel}

\begin{tabular}{cc}

Quark & Apfelmus \\

\end{tabular}
\end{table}
	
In Tab.\ref{Testlabel} ist zu sehen, ...

\newpage
	
\bild{width=0.5\linewidth}{../T1}{Bildunterschrift}{fig.testbild}	

In Abb.\ref{fig.testbild} ist zu sehen, ...


\begin{figure}[htb]
 \begin{center}
 \includegraphics[scale=0.5]{../T1} 
 \caption{Bildunterschrift2} 
 \label{testbild2} 
 \end{center} 
 \end{figure} 
 
In Abb.\ref{testbild2} ist zu sehen, ...



\end{document}


Gruß

McFraggle
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: So 13. Nov 2011, 14:51

Beitrag von McFraggle »

Hallo,

falls ich Dein Anliegen richtig verstanden habe, ist das kein LaTeX-Problem sondern ein Problem Deines Editors (Autovervollständigung etc. sind ja kein Feature des LaTeX-Compilers). Insofern müsste man zuerst einmal wissen, welchen Editor/IDE Du benutzt. Ich vermute jedoch fast, dass es nicht funktionieren wird. Ich denke, Dein Editor such im Dokument alle Vorkommen von \label{x} und indiziert sie und ihre Werte. Du müsstest Du also schon tiefgründig Hand anlegen, um deinen Editor mit entsprechender Funktionalität zu erweitern.

Grüße

Benutzeravatar
Sepp99
Forum-Meister
Forum-Meister
Beiträge: 1569
Registriert: So 29. Aug 2010, 17:26
Wohnort: Offenhausen/OÖ

Beitrag von Sepp99 »

Gleiche Frage unter http://www.mrunix.de/forums/showthread.php?t=72237
Sepp.-
EDIT: Beitrag gehört zu einem anderen thread.
Sepp.-

Kujo
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Di 22. Nov 2011, 19:17

Beitrag von Kujo »

McFraggle hat geschrieben:Hallo,

falls ich Dein Anliegen richtig verstanden habe, ist das kein LaTeX-Problem sondern ein Problem Deines Editors (Autovervollständigung etc. sind ja kein Feature des LaTeX-Compilers). Insofern müsste man zuerst einmal wissen, welchen Editor/IDE Du benutzt. Ich vermute jedoch fast, dass es nicht funktionieren wird. Ich denke, Dein Editor such im Dokument alle Vorkommen von \label{x} und indiziert sie und ihre Werte. Du müsstest Du also schon tiefgründig Hand anlegen, um deinen Editor mit entsprechender Funktionalität zu erweitern.

Grüße
Hallo,

danke erstmal. Also ich nutze TeXmaker.
Ok, das sind leider keine guten Nachrichten. Dass das eine programmspezifische Funktion ist, daran habe ich gar nicht gedacht.
Ich hatte noch die Idee, das \label aus dem Makro auszugliedern und dann eben extra einzufügen.

#Edit: Soeben getestet, das funktioniert. Ich denke, das ist ein akzeptables workaround. :)

Der Makro-Befehl sieht nun also so aus:

\bild{width=0.5\linewidth}{bild.jpg}{Bildunterschrift}\label{}

Gruß

McFraggle
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: So 13. Nov 2011, 14:51

Beitrag von McFraggle »

Das ist semantisch aber etwas anderes. Jetzt liegt das lable nicht mehr in der figure-Umgebung, was Probleme bei ungünstigen Umbrüchen machen könnte. Jedenfalls ist es nicht sauber. Wenn Du umbedingt ein solches Makro nutzen möchtest, versuch doch mal
 \newcommand{\bild}[4] 
 { 
 \begin{figure}[htb] 
 \begin{center} 
 \includegraphics[#1]{Bilder/#2} %Bilder liegen im Unterordner "Bilder" 
 \caption{#3} 
 #4
 \end{center} 
 \end{figure} 
 }
und nutze es dann mit
\bild{width=0.5\linewidth}{../T1}{Bildunterschrift}{\label{fig.testbild}}
Das müsste deine IDE doch fressen, oder?

PS.: Alles ungetestet.

Kujo
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Di 22. Nov 2011, 19:17

Beitrag von Kujo »

Hey,
ja, das funktioniert!
Danke!

Antworten