Imagem emoldurada e legenda emoldurada

Imagem emoldurada e legenda emoldurada

Preciso inserir uma imagem no arquivo do livro Latex, mas a imagem deve ser emoldurada, e legenda após imagem também. Esse quadro não é o mesmo, a imagem e a legenda precisam de uma linha horizontal entre eles. Mas a imagem precisa ser centralizada e a legenda alinhada à esquerda na largura da imagem. Alguém pode me ajudar?

Responder1

Uma solução possível (talvez não seja a mais fácil...) é usar o captionpacote para adicionar uma linha horizontal acima da legenda e usar o mdframedpacote para colocar uma moldura em torno da combinação de figura e legenda.

A linha horizontal pode ser inserida \DeclareCaptionFormatcolocando-a na frente dos três argumentos (número da figura, separador, texto da legenda) seguida por uma nova linha.

Para que a linha abranja todo o quadro, as margens devem ser ajustadas, o que é possível com \mdfdefinestylefrom mdframed.

O alinhamento à esquerda da legenda é possível com a justificationopção combinada com singlelinecheck=falsefrom in \captionsetup. No entanto, isso justificará o ambiente da figura e não a largura da imagem especificada em \includegraphics. Isso é um pouco mais complicado, mas uma solução possível para esse problema é introduzir um novo comprimento (no MWE abaixo \figwidth), definir o valor desse comprimento para a largura preferida da sua imagem e usar o comprimento dentro \includegraphicse com um pequeno cálculo no formato da legenda para determinar o recuo.

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}

A demoopção graphicxé apenas mostrar a caixa preta, isso não é necessário para a aplicação real.

Resultado:

exemplo de legenda em caixa

Esta solução é adaptada deLinha horizontal abaixo da legenda da figura.

Responder2

Aqui está uma solução usando \fboxem vez de mdframed. Todas as margens foram definidas como \fboxsep. (Parte disso foi roubada da solução de Marijn.)

Devo mencionar isso \fboxsepe \fboxrulesão ajustáveis.

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

imagem emoldurada

informação relacionada