Я делаю то, что должно быть простой задачей, но не могу понять, почему это не работает... Мне просто нужна простая подпись к рисунку, которую я выровнял по центру, по левому краю рисунка, прямо по его нижнему левому углу.
Это мой MWE:
\documentclass{beamer}
\mode<presentation> {
\usepackage[labelformat=empty,
font=scriptsize,
skip=0pt,
justification=justified,
singlelinecheck=false]{caption}
}
\begin{document}
\begin{frame}
\begin{center}
\includegraphics[width=.5\linewidth]{example-image}
\captionof{figure}{my caption here}
\end{center}
\end{frame}
\end{document}
Что производит:
Как сделать так, чтобы подпись была прямо под нижним левым углом моего изображения? И почему код выше не работает?
Обратите внимание, что решение также должно работать в среде \figure для добавления подписей к tikzpictures...
Спасибо!
EDIT: Я ПОПРОБОВАЛ justification=justified,singlelinecheck=false, КАК ПРЕДЛАГАЛОЗДЕСЬ, НО ВСЕ ЕЩЕ НЕТ УСПЕХА...
\documentclass{beamer}
\usepackage[labelformat=empty,font=scriptsize,skip=0pt,
justification=raggedright,singlelinecheck=false]{caption}
\begin{document}
\begin{frame}
\begin{center}
\includegraphics[width=.5\linewidth]{example-image}
\captionof{figure}{my caption here}
\end{center}
\end{frame}
\end{document}
решение1
Вы можете использовать package, threeparttable
чтобы ограничить ширину подписи шириной изображения:
\documentclass{beamer}
\usepackage{threeparttable}
\usepackage[labelformat=empty,font=scriptsize,skip=0pt,
justification=raggedright,singlelinecheck=false]{caption}
\begin{document}
\begin{frame}
\begin{figure}
%\centering% not needed, because default
\begin{measuredfigure}
\includegraphics[width=.5\linewidth]{example-image}
\caption{my caption here}
\end{measuredfigure}
\end{figure}
\end{frame}
\end{document}
Обычно вам не нужно явное center
или \centering
, потому что beamer
по умолчанию центрирует фигуру (см. результат на изображении выше). Вместо этого, если вы хотите выровнять фигуры по левому или правому краю, вам нужно добавить \raggedright
или \raggedleft
сразу после \begin{figure}
. Тем не менее, вы можете активировать закомментированный \centering
.
решение2
minipage
Решением может стать добавление изображения и его подписи в дополнительный текст :
\documentclass{beamer}
\setbeamertemplate{caption}{\insertcaption}
\begin{document}
\begin{frame}
\begin{figure}
\begin{minipage}{.4\textwidth}
\includegraphics[width=\textwidth]{example-image}
\caption{Text text text text text text text text text text text text text text text text text}
\end{minipage}
\end{figure}
\end{frame}
\end{document}
решение3
Я думаю, что использование плавающего объекта, например, \begin{figure} ... \end{figure}
или \begin{table} ... \end{table}
противоречит потребностям презентации. Плавающий объект — это то, что LaTeX может перемещать, чтобы получить наилучший возможный перенос слов, строк и страниц. Поэтому он может переместить изображение в конец главы. В презентации вы не хотите перескакивать вперед и назад между слайдами. Обычно вы хотите непрерывный поток от одного слайда к другому.
Тем не менее, вам не следует использовать плавающий объект в Beamer, по крайней мере, в формах представления.
При этом вам не следует использовать \caption
команды -like, поскольку у вас нет -environment figure
.
Решение в вашем случае: просто удалите \caption
-команду (и даже caption
-пакет), и все заработает.
МВЭ:
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{center}
\includegraphics[width=.5\linewidth]{example-image}\\
my caption here
\end{center}
\end{frame}
\end{document}
Результат: