Gerahmtes Bild und gerahmte Beschriftung

Gerahmtes Bild und gerahmte Beschriftung

Ich muss ein Bild in eine Latex-Buchdatei einfügen, aber das Bild muss gerahmt sein und die Bildunterschrift auch. Dieser Rahmen ist nicht derselbe, Bild und Bildunterschrift müssen horizontale Linien dazwischen haben. Aber das Bild muss zentriert sein und die Bildunterschrift muss linksbündig in der Breite des Bildes ausgerichtet sein. Kann mir jemand helfen?

Antwort1

Eine mögliche (vielleicht nicht die einfachste…) Lösung besteht darin, mithilfe des captionPakets eine horizontale Linie über der Beschriftung einzufügen und mithilfe des mdframedPakets einen Rahmen um die Kombination aus Abbildung und Beschriftung zu setzen.

Die horizontale Linie kann eingefügt werden, \DeclareCaptionFormatindem sie vor die drei Argumente (Abbildungsnummer, Trennzeichen, Beschriftungstext) gesetzt wird, gefolgt von einem Zeilenumbruch.

Um die Linie über den gesamten Rahmen auszudehnen, müssen die Ränder angepasst werden, was mit \mdfdefinestylevon möglich ist mdframed.

Die linksbündige Ausrichtung der Bildunterschrift ist mit der justificationOption in Kombination mit singlelinecheck=falsefrom in möglich \captionsetup. Dies erfolgt jedoch in Bezug auf die Abbildungsumgebung und nicht auf die Breite des Bildes, wie in angegeben \includegraphics. Dies ist etwas komplizierter, aber eine mögliche Lösung für dieses Problem besteht darin, eine neue Länge einzuführen (im MWE unten \figwidth), den Wert dieser Länge auf die gewünschte Breite Ihres Bildes festzulegen und die Länge sowohl in \includegraphicsals auch mit einer kleinen Berechnung im Bildunterschriftenformat zu verwenden, um die Einrückung zu bestimmen.

MWE:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{caption}
\usepackage{mdframed}
\mdfdefinestyle{boxcaption}{innerleftmargin=0cm,innerrightmargin=0cm}
\newlength{\figwidth}

\DeclareCaptionFormat{myformat}{\hrulefill\newline\hspace*{\dimexpr(\textwidth-\figwidth)/2}#1#2#3}
\captionsetup[figure]{format=myformat,justification=justified,singlelinecheck=false}

\begin{document}
\begin{figure}[tb]
\begin{mdframed}[style=boxcaption]
  \centering
  \setlength{\figwidth}{0.7\textwidth}
     \includegraphics[width=\figwidth]{./fig/test}
  \caption{Left aligned}
  \label{fig:test}
\end{mdframed}
\end{figure}
You can see an example of a black box in Figure \ref{fig:test}.
\end{document}

Die demoOption dient graphicxlediglich der Anzeige der Blackbox. Für die eigentliche Anwendung wird dies nicht benötigt.

Ergebnis:

Beispiel für eine eingerahmte Überschrift

Diese Lösung ist angepasst vonHorizontale Linie unter der Bildunterschrift.

Antwort2

Hier ist eine Lösung, die \fboxanstelle von verwendet mdframed. Alle Ränder wurden auf gesetzt \fboxsep. (Ein Teil davon wurde aus Marijns Lösung geklaut.)

Ich sollte erwähnen, dass \fboxsepsie \fboxruleeinstellbar sind.

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}
%\usepackage{mwe}
\usepackage{showframe}% check centering

\captionsetup[figure]{justification=justified,singlelinecheck=false}%

\newcommand{\pictureframe}[2]% #1=image, #2=caption
{\sbox0{#1}%
\centering
\fbox{\begin{minipage}{\wd0}
  \baselineskip=0pt
  \abovecaptionskip=\fboxsep
  \belowcaptionskip=0pt
  \usebox0\par
  \vspace{\fboxsep}%
  \hspace{-\fboxsep}% extend to frame
  \rule{\dimexpr \textwidth+2\fboxsep}{\fboxrule}%
  \hspace{-\fboxsep}
  \caption{#2}
\end{minipage}}}

\begin{document}
\begin{figure}
\pictureframe{\includegraphics[height=2in]{example-image}}{Left aligned}
\end{figure}
\end{document}

gerahmtes Bild

verwandte Informationen