newcommand bild einfügen, vervollständiger verweist auf #1 Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


LaTeX beginner

newcommand bild einfügen, vervollständiger verweist auf #1

Beitrag von LaTeX beginner »

Hallo liebe Community,

ich habe mir einen newcommand für das Einfügen von Bilder geschrieben damit jedes Bild gleich eingefügt wird und ich mir die Eingabe der Befehle spare.
Leider passiert es, wenn ich im Text mit\ref auf das Bild verweisen möchte, dass mir der Vervollständiger #1 anzeigt und nicht das Label(Bildname) des Bildes.

Mein newcommand sieht folgendermaßen aus:
% Bild Befehle
% #1 Bildname im Speicherordner
% #2 Bildbreite in Prozent von der Blattbreite
% #3 Bildunterschrift
% #4 Bildbezeichnung für das Verweisen im Text
\newcommand{\bild}[4]
{
\begin{figure}[htb]
\centering
\includegraphics[width={#2}\textwidth]{Bildspeicherordner/#1}
\caption{#3}
\label{fig: #4}
\end{figure}
}

Das Bild füge ich wie folgt ein:
\bild{Pendelschlag}{0.75}{Versuchsaufbau für den Pendelschlagversuch.}{Pendelschlag}

Wenn ich mich im Text nun auf das Bild referenzieren möchte kommt beim Vervollständiger "fig: #1" und nicht "fig: Pendelschlag". Ich kann "fig: Pendelschlag" natürlich manuell eingeben, aber genau das möchte ich eben vermeiden.

Woran kann das liegen?

Mein vollständiger Code lautet:
\documentclass[
	fontsize=12pt,
	a4paper,
	bibliography=totoc]{scrartcl}
	
\usepackage[T1]{fontenc}				
\usepackage[utf8]{inputenc}				
\usepackage[ngerman]{babel} 			
\usepackage{csquotes}					
\usepackage{nameref}					
\usepackage{geometry} 	 				
\usepackage{wallpaper}					
\usepackage[export]{adjustbox}			
\usepackage{float}						
\usepackage{caption}					
\usepackage{colortbl}					
\usepackage{placeins}					
\usepackage{textcomp}					
\usepackage[backend=biber]{biblatex} 	
\usepackage{multirow}					
\usepackage{tabu}						
\usepackage{amsmath}					
\usepackage{graphicx}


% Bild Befehle
% #1 Bildname im Speicherordner Bild
% #2 Bildbreite in Prozent von der Blattbreite
% #3 Bildunterschrift
% #4 Bildbezeichnung für das Verweisen im Text
\newcommand{\bild}[4]
{
	\begin{figure}[htb]
	\centering
	\includegraphics[width={#2}\textwidth]{Bild/#1}
	\caption{#3}
	\label{fig: #4}
	\end{figure}
}

\begin{document}

Der Versuchsaufbau ist in der Abbildung~\ref{fig: #1} zu sehen. Darin beschreibt c die Fallhöhe des Pendels in Millimeter.

\bild{Pendelschlag}{0.75}{Versuchsaufbau für den Pendelschlagversuch.}{Pendelschlag}

\end{document}
Lg LaTeX beginner

LaTeX beginner

Beitrag von LaTeX beginner »

beim Vervollständiger kommt natürlich "fig: #4" und nicht 1[/img]

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Du musst bei \ref schon angeben auf welches Deiner Bilder verwiesen werden soll, also den Inhalt des Arguments, welches bei dem entsprechenden Bild für \label verwendet wird. Im konkreten Fall also
\ref{fig: Pendelschlag}

LaTeX beginner

Beitrag von LaTeX beginner »

Das ist mir bewusst, jedoch muss ich dies manuell machen, da mir der Vervollständiger lediglich "fig: #4" vorschlägt und nicht gleich "fig: Pendelschlag".
Wenn ich aber ein Bild ohne newcommand normal einfüge, schlägt mir der Vervollständiger automatisch den Namen des Bildes mit "fig: Pendelschlag" vor und ich muss diese leidlich auswählen und nicht manuell eingeben.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

@LaTeX beginner

Die geschweiften Klammern um #2 im optionalen Argument von \includegraphics erzeugen bei Dir keine Fehlermeldung?

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Dein Vervollständiger, der Teil Deines Editors ist, ist also so schlau Dir alles, was er in einem Argument von \label findet, als mögliche Referenzen anzubieten.

Durch die Verwendung Deines Befehls versteckst Du sozusagen die möglichen Referenzen vor Deinem Editor. LaTeX ersetzt beim Kompilieren den Platzhalter durch das entsprechende Argument. Dein Editor findet aber nur einen einzigen \label Befehl im Quelltext und da steht halt fig: #4.

Gast

Beitrag von Gast »

Das ist also eine Editor-Frage und gehört daher in das LaTeX-Editor-Forum und natürlich gehört angegeben, welcher Editor das ist. :roll:

Wobei die wenigsten Editoren sich diesbezüglich sonderlich beeinflussen lassen.

Antworten