Abbildungsbeschriftung am oberen Rand des Bildes Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


Benutzeravatar
habanero
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Di 24. Jan 2023, 23:39

Abbildungsbeschriftung am oberen Rand des Bildes

Beitrag von habanero »

Moin Leute!

Ich wollte mal fragen, ob jemand weiß wie man die Abbildungsbeschriftung nach oben bekommt.
TexStudio unter Windows nutze ich. (falls das wichtig ist)
Meine Recherche ergab einige Beispiele:

https://komascript.de/node/635 hier mit Koma, aber scheint irgendwie alt zu sein und ich nutze koma ja nicht und sah für mich irgendwie kompliziert aus.

viewtopic.php?f=6&t=13461 das mit den minipages und die Gestaltung sieht soweit erstmal gut aus. Habe ich nur konkret noch nicht benutzt.
Und der \raisebox befehl scheint hier eventuell die Lösung zu sein. Ich bin noch recht neu und noch nicht optimal in allen Paketen drin. Und ja, mein Dokument ist wahrscheinlich etwas überladen.
Anbei meine Pakete und Beispiel Code. Ich habe einfach mal zwei Bilder eingefügt, eins mit SCfigure und eins mit figure

 \documentclass[a4paper,twoside, 11pt]{book}
 \usepackage{lipsum}
 \usepackage{mwe}
 \usepackage{blindtext}
 \usepackage{verbatim}
 \usepackage{multirow}
 \usepackage{booktabs}
 \usepackage{longtable}
 \usepackage{tabularx}
 \usepackage{enumitem}
 \usepackage{titlesec}
 \usepackage{pdflscape} 
 \usepackage[onehalfspacing]{setspace} 
 \RequirePackage{geometry}
 \geometry{a4paper, bottom=30mm,left=35mm, right=25mm, top=30mm}
 \parindent 0pt 
 \setlength{\headheight}{1ex} 
 \usepackage{fancyhdr}
 \pagestyle{fancy}
 \usepackage[english,german]{fancyref}
 \usepackage[english, ngerman]{babel}
 \usepackage[utf8]{inputenc}
 \usepackage[T1]{fontenc}
 \usepackage[style=numeric-comp, backref = true]{biblatex}
 \usepackage{csquotes}
 \addbibresource{literatur.bib}
 \usepackage{mathptmx}
 \usepackage{url}
 \usepackage{graphicx}
 \usepackage{titletoc}
 \usepackage[format=plain,justification=raggedright,singlelinecheck=false, font=footnotesize]{caption}
 \usepackage{caption}
 \captionsetup[table]{position=top, skip=0.2cm,font={small}}
 \usepackage{subcaption}
 \usepackage{listings}
 \lstset{captionpos=b,frame=single}
 

 \usepackage{multirow} 
 \RequirePackage{graphicx}
 \usepackage{wrapfig}
 \usepackage{diagbox}
 \usepackage{afterpage}
 \usepackage{float}
\usepackage[rightcaption]{sidecap}

 \usepackage{tabularx}
 \usepackage{booktabs}
 \renewcommand*{\arraystretch}{1.3}
 \pagestyle{fancy}{
 	\pagenumbering{roman}
 	\fancyfoot{}
 	\lhead[\thepage]{{}}
 	\rhead[{}]{\thepage}
 	\setlength{\headsep}{7ex} 
 	\setlength{\footskip}{7ex}
 }

 \usepackage[printonlyused]{acronym}
 \usepackage[nopostdot,nonumberlist,acronym, toc]{glossaries}
 
 \newcommand{\RM}[1]{\MakeUppercase{\romannumeral #1}}
 
 
 \begin{document}
 	
 	\blindtext
 	\begin{SCfigure}[0.5][hpb] %warum ist das bild eigentlich nicht linksbündig?
 		\includegraphics[width=0.4\textwidth]{example-image-golden}
 	
 		\caption{GOLD HAHAHAHAHAH bla bla blhjhjhjhjhjhkhkjhjhjkhjkhkl  hjhj  hjhj a dieser Text ist lang und beschreibt ein Bild ja genau}
 	
 		\label{fig:hans mwe}
 	\end{SCfigure}
 \lipsum
 	 	\begin{figure}[h] %hier habe ich mehrere angegeben, weil ich es bei anderen beispielen gesehen habe, warum man es genau macht, weiß ich noch nicht.
 	 
 		\includegraphics[width=0.4\textwidth]{example-image-10x16}
 		\caption{blabl GOLD}
 		\caption*{GOLD HAHAHAHAHAH bla bla blhjhjhjhjhjhkhkjhjhjkhjkhkl  hjhj  hjhj a dieser Text ist lang und beschreibt ein Bild ja genau}
 		\caption*{Quelle: mweghg hans wurst}
 		\label{fig:hans mwghe}
 	\end{figure}
 

 	\end{document}	
Ich habe einfach mal den Code hier in der Sidecaption Umgebung ausprobiert, aber da kam:
'You can't use `\dimexpr' in restricted horizontal mode. [\dimexpr'
Und mir ist aufgefallen, dass in SCfigure Umgebung scheinbar nur eine \Caption akzeptiert wird, ich möchte an sich gerne einen kurzen Titel und dann einen langen, aber vllt geht das auch mit \caption[titel kurz]{titel lang} oder so, muss ich nochmal testen

Siehe auch: viewtopic.php?f=6&t=13461
[\dimexpr\marginparwidth+\marginparsep\relax]
 \raisebox{\dimexpr\baselineskip-\totalheight\relax}{\includegraphics[width=0.5\textwidth]{example-image-golden}}

Gesehen habe ich z.B: folgendes Beispiel und es scheint mir, dass es keine einfach Lösung z.B. mittels eines Pakets gibt.
Ich freue mich über ein paar Gedanken und Ideen bzw. Hilfe!
Also es scheint ja zumindest mit anderen Dokumentklassen zu gehen. Vllt muss ich auch überlegen zu wechseln. Ich muss noch einiges an Doku lesen.

Bild Ist es eher keine gute idee, sowas hier zu zeigen?


bester Gruß!
Dateianhänge
minimal.jpg

ich meine ja nur

Re: Abbildungsbeschriftung am oberen Rand des Bildes

Beitrag von ich meine ja nur »

Aus der Beschreibung ist mir nicht ganz klar geworden, was du eigentlich willst. Allein aufgrund der Abbildung vermute ich, dass du die Bildbeschreibung (caption) neben dem Bild und oben ausgerichtet haben willst. Wenn das der Fall ist, dann solltest du das auch klar und deutlich schreiben. Bei KOMA-Script-Klassen geht das in der Tat ganz einfach mit der captionbeside-Umgebung. Bei den Standardklassen würde ich die eierlegende Wollmilchsau hvfloat empfehlen. In Abschnitt 7 der hvfloat-Anleitung zeigt das Beispiel zu Abbildung 17 genau das.

Die Unterscheidung zwischen dem beim Bild ausgegebenen Text und dem Text im Abbildungsverzeichnis würde man in der Tat mit dem optionalen short caption Argument von \caption (bzw. \hvfloat bei Verwendung des gleichnamigen Pakets).

Eine Minimierung der Dokumentpräambel würde ich dir übrigens dringend empfehlen. Unzählige Pakete zu laden, die man möglicherweise gar nicht verwendet, ist selten eine gute Idee. Das geht beispielsweise mit denselben Mitteln, die in der Minimalbeispiel-Anleitung erklärt sind. Der Wechsel zu KOMA-Script würde übrigens ebenfalls das eine oder andere Paket einsparen.

Nebenbei sei darauf hingewiesen, dass es keine gute Idee ist, erst Randeinstellungen mit geometry vorzunehmen und dann mit \setlength{\headheight}{1ex} daran herum zu pfuschen. In der geometry-Anleitung ist dokumentiert, wie man die Kopfhöhe mit dem Paket einstellt. Darüber hinaus ist ein Wert von 1ex, also weniger als eine Zeile ohnehin grober Unfug.

Dass \parindent 0pt keine gute Idee ist, wurde im Forum schon sehr oft erklärt.

Die Definition \newcommand{\RM}[1]{\MakeUppercase{\romannumeral #1}} ist ebenfalls fehlerhaft. Ich vermute, dass du die überhaupt nicht benötigst. Im unwahrscheinlichen Fall, dass doch, ergänze min. ein \relax oder ein Leerzeichen unmittelbar nach #1.

Benutzeravatar
habanero
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Di 24. Jan 2023, 23:39

Re: Abbildungsbeschriftung am oberen Rand des Bildes

Beitrag von habanero »

Hallo,

vielen Dank für die Antwort.
dass du die Bildbeschreibung (caption) neben dem Bild und oben ausgerichtet haben willst.
Ja, exakt! Ich habe es jetzt mal mit hvfloat ausprobiert und es hat soweit ganz gut geklappt, obwohl die Dokumentation wild aussieht, aber immerhin gibt es etwas dazu.

Ich habe einfach mal ein paar Pakete rausgeworfen und listoffigure hinzugefügt für dieses Beispiel:
 \documentclass[a4paper,twoside, 11pt]{book}
 \usepackage{hvfloat}
 \usepackage{lipsum}
 \usepackage{mwe}
 \usepackage{blindtext}
 \usepackage{verbatim}
 \pagestyle{plain}
 \usepackage[english, ngerman]{babel}
 \usepackage[utf8]{inputenc}
 \usepackage[T1]{fontenc}


 
 \begin{document}
 	
 	\listoffigures
 
\blindtext
 
  	\hvFloat[floatPos=!htb,capWidth=0.35,capPos=right,capVPos=top]
  			{figure}{\includegraphics{example-image-16x10}}[Hier steht ein Titel]{lalaallalallalalal ganz lang und so}{fig:4}
\blindtext		
  	\hvFloat[floatPos=!htb,capWidth=0.35,capPos=left,capVPos=top]
  	{figure}{\frame{\includegraphics{example-image-10x16}}}[Hier steht fgfgfgfein Titel]{Caption at top left beside the fl BEschrgeibeung dies dasoat}{fig:3}
  
 
 \lipsum
 	 	\begin{figure}[h] %hier habe ich mehrere angegeben, weil ich es bei anderen beispielen gesehen habe, warum man es genau macht, weiß ich noch nicht.
 	 \begin{centering
 	 }
 	 	\includegraphics[width=0.4\textwidth]{example-image-10x16}
 	 	\caption{blabl GOLD}
 	 	\caption*{GOLD HAHAHAHAHAH bla bla blhjhjhjhjhjhkhkjhjhjkhjkhkl  hjhj  hjhj a dieser Text ist lang und beschreibt ein Bild ja genau}
 	 	\caption*{Quelle: mweghg hans wurst}
 	 	\label{fig:hans mwghe}
 	 \end{centering
 	 }
 	
 	\end{figure}
 \end{document}	

Deine Anmerkungen werde ich in Zukunft beherzigen. Meine jetzige Vorlage sieht insgesamt etwas wild aus. Ich habe sie bekommen und sie hilft mir ungemein. Nach diesem Projekt werde ich mir aber mal eine KOMA-Script Minimal-Vorlage erstellen, wo ich das mit den Paketen etwas übersichtlicher halten werde und mich erstmal mit KOMA vertraut machen.

Was mir noch aufgefallen ist: es scheint keine Minimalbeispiel Bilder zu geben, bei dem es keinen Rahmen gibt(daher ist es schwieriger zu erkennen, ob die Latex Umgebung automatisch einen weiteren Rahmen hinzufügt), sondern vllt nur ein Teil weiß ist. Anmerkung: es klappt auch ohne einen (sichtbaren) Rahmen mit der Abbildungsbeschriftung oben rechts/links (Abbildung 15 der hvfloat Dokumention) Rahmen um Bilder war vllt in 60ern ein Hit :lol:

Also erstmal vielen Dank nochmal!

Antworten