我在论文中格式化图表标题时遇到了一些问题。首先我想描述一下我的最终结果。
- 上方标题:左对齐
- 以下标题 - 第一行(来源):右对齐
- 以下标题 - 其余部分:左对齐
不幸的是 - 上面的标题:在中心 - 下面的标题:右对齐
我尝试过各种不同的对齐方法 ( \raggedleft, \begin{flushleft}
)
这就是我的代码
\documentclass[12pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{ragged2e}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage{graphicx}
\usepackage{caption}
\makeatletter
\AtBeginDocument{%
\def\Ginclude@graphics#1{%
\begingroup\fboxsep=-\fboxrule
\fbox{\rule{\@ifundefined{Gin@@ewidth}{150pt}{\Gin@@ewidth}}{0pt}%
\rule{0pt}{\@ifundefined{Gin@@eheight}{100pt}{\Gin@@eheight}}}\endgroup}}
\makeatother
% Begin Document
\begin{document}
% Begin Figure
\begin{figure}[ht!]
\centering
\caption{Figure 1 - Title}
\includegraphics[width=0.6\textwidth]{demo}
\captionsetup{width=0.6\textwidth}
\caption*{Source: Source1\ \\Captiontex Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt \label{fig:3}}
\label{overflow}
\end{figure}
\end{document}
答案1
假设您的图片宽度可能不同。因此,您将不得不使用\captionsetup{width=X}
for every手动调整宽度figure
。
\documentclass{report}
\usepackage{ragged2e,graphicx}
\usepackage[margin=2cm]{geometry}
\usepackage{caption}
\captionsetup[figure]{%
justification = RaggedRight,% Or justified
singlelinecheck = off}
% \imagesource{<source>}{<desc>}
\newcommand{\imagesource}[2]{%
\par\vspace{\abovecaptionskip}%
\parbox{\captionwidth}{\raggedleft Source: #1 \par
\noindent\justifying #2
}%
}
\begin{document}
\begin{figure}
\centering\captionsetup{width=0.6\linewidth}
\caption{Title}
\includegraphics[width=0.6\linewidth, height=150pt]{example-image}
\imagesource{Source1}{Captiontex Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt}
\end{figure}
\end{document}
singlelinecheck=off
当标题适合一行时,使用可以启动适当的对齐。此外,我定义了\imagesource{<source>}{<desc>}
可以启动适当的对齐。此外,我已经定义了使用一些预先指定的布局设置图像源(如您的示例所示)。最好为此类事情定义宏,因为它可以提高一致性。