Imagen enmarcada y título enmarcado.

Imagen enmarcada y título enmarcado.

Necesito insertar una imagen en el archivo del libro Latex, pero la imagen debe estar enmarcada y el título tras la imagen también. Ese marco no es el mismo, la imagen y el título necesitan una línea horizontal entre ellos. Pero la imagen debe estar centrada y el título debe estar alineado a la izquierda al ancho de la imagen. ¿Alguien puede ayudarme?

Respuesta1

Una posible solución (tal vez no la más fácil...) es usar el captionpaquete para agregar una línea horizontal encima del título y usar el mdframedpaquete para poner un marco alrededor de la combinación de figura y título.

La línea horizontal se puede insertar \DeclareCaptionFormatcolocándola delante de los tres argumentos (número de figura, separador, texto del título) seguida de una nueva línea.

Para que la línea abarque todo el fotograma, es necesario ajustar los márgenes, lo cual es posible \mdfdefinestylecon mdframed.

La alineación izquierda del título es posible con la justificationopción combinada con singlelinecheck=falsefrom in \captionsetup. Sin embargo, esto se justificará según el entorno de la figura y no según el ancho de la imagen como se especifica en \includegraphics. Esto es un poco más complicado, pero una posible solución para este problema es introducir una nueva longitud (en el MWE a continuación \figwidth), establecer el valor de esta longitud al ancho preferido de su imagen y usar la longitud tanto dentro \includegraphicscomo con un Pequeño cálculo en el formato de título para determinar la sangría.

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}

La demoopción graphicxes solo mostrar el cuadro negro; esto no es necesario para la aplicación real.

Resultado:

ejemplo de título en recuadro

Esta solución está adaptada deLínea horizontal debajo del título de la figura.

Respuesta2

Aquí hay una solución usando \fboxen lugar de mdframed. Todos los márgenes se establecieron en \fboxsep. (Parte de esto fue robado de la solución de Marijn).

Debo mencionar eso \fboxsepy \fboxruleson ajustables.

\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}

Foto enmarcada

información relacionada