以下子图不是真正的子图,但我将它们称为伪子图,因为我想在它们上面添加标题,就像对真正的子图轻松做到的那样。
但是,我不想使用真实的子图(在遇到许多兼容性问题后决定,我记不清全部了)。
这可能是人们更喜欢使用伪子图的一些原因(我可能错了,因为我的记忆错了):
- 看起来这是一项艰巨的任务(参见强制子图具有相同的高度并占据 LaTeX 中线宽的总体 X%) 才能拥有同等高度的真实子图,而伪子图则不费吹灰之力 &(如果想与前一个一起)似乎更难以将伪子图紧密地放在一起(参见减少两个子图之间的空间)。
- 我认为使用真实的子图也会与那里的脚注相冲突......
- 不知何故会出现一些其他兼容性问题,与自定义相关的一些特色列表项图形环境(参见代码)。无论如何,我将使用图形环境对于我的目的文档中的每个图,因此也将使用其编号。因此,在某些情况下,我不想恢复使用真正的主图标题。
平均能量损失
PS:您需要使用 LuaLaTex 来编译它...
\documentclass{article}
\usepackage{graphicx}% images from mwe package
\usepackage[framemethod=tikz]{mdframed}
\usetikzlibrary{calc}
\newcounter{picture}
%%%%% figurer environment
\newmdenv[
hidealllines=true,
innertopmargin=16pt,
innerbottommargin=10pt,
leftmargin=0cm,
rightmargin=0cm,
skipabove=10pt,
skipbelow=10pt,
singleextra={
\coordinate (aux) at ( $ (O)!0.5!(P) $ );
\fill[rounded corners=6pt,line width=1pt,blue!30]
(O|-P) --
(aux|-P) --
([yshift=12pt]aux|-P) --
([yshift=12pt,xshift=4cm]aux|-P) --
([xshift=4cm]aux|-P) --
(P) {[sharp corners] --
([yshift=-6pt]P) --
([yshift=-6pt]O|-P) } -- cycle;
\draw[rounded corners=6pt,line width=1pt,blue]
(O|-P) --
(aux|-P) --
([yshift=12pt]aux|-P) --
([yshift=12pt,xshift=4cm]aux|-P) --
([xshift=4cm]aux|-P) --
(P) --
(P|-O) --
(O) -- cycle;
\node at ([xshift=2cm,yshift=3pt]aux|-P)
{\refstepcounter{picture}\large Figure~\thepicture} ;
},
firstextra={
\coordinate (aux) at ( $ (O)!0.5!(P|-O) $ );
\fill[rounded corners=6pt,line width=1pt,blue!30,overlay]
(O|-P) --
(aux|-P) --
([yshift=12pt]aux|-P) --
([yshift=12pt,xshift=4cm]aux|-P) --
([xshift=4cm]aux|-P) --
(P) {[sharp corners] --
([yshift=-6pt]P) --
([yshift=-6pt]O|-P) } -- cycle;
\draw[rounded corners=6pt,line width=1pt,blue,overlay]
(O) --
(O|-P) --
(aux|-P) --
([yshift=12pt]aux|-P) --
([yshift=12pt,xshift=4cm]aux|-P) --
([xshift=4cm]aux|-P) --
(P) --
(P|-O);
\node[overlay] at ([xshift=2cm,yshift=3pt]aux|-P)
{\refstepcounter{picture}\large Figure~\thepicture} ;
},
middleextra={
\draw[rounded corners=6pt,line width=1pt,blue,overlay]
(O|-P) --
(O);
\draw[rounded corners=6pt,line width=1pt,blue,overlay]
(P) --
(P|-O);
},
secondextra={
\coordinate (aux) at ( $ (O)!0.5!(P|-O) $ );
\draw[rounded corners=6pt,line width=1pt,blue,overlay]
(O|-P) --
(O) --
(P|-O) --
(P);
},
]{figurer}
%%%%% begin the beguine
\begin{document}
\begin{figurer}
\begin{center}
\includegraphics[height=1cm]{example-image}
\includegraphics[height=1cm]{example-image}
\includegraphics[height=1cm]{example-image}
\includegraphics[height=1cm]{example-image}
\includegraphics[height=1cm]{example-image}
This would be my caption here (We can even have footnotes here).\footnote{I like how the footnote stays inside the figure box.}
\end{center}
\end{figurer}
\end{document}
是否有可能在每个伪子图上方添加伪子标题?它们不需要编号:因此不需要A),b),C)ETC...
假设这些照片来自一个人,并且人们只是想在每张照片上方简单地标明这个人的年龄?
PS:我想要一个动态解决方案,它可以处理任意数量的图片(至少 1 行上的任意数量的图片),同时所有图片(至少 1 行)可以具有相同的高度(但每个 MWE 不同)。
请注意文本“这将是我的标题”被视为此处主“伪图”的“伪标题”,而不是任何单独“伪子图”的标题。
答案1
我建议将所有伪子图设置在tabular
:
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{center}
\begin{tabular}{ *{5}{c} }
\small A & \small B & \small C & \small D & \small E \\
\includegraphics[height=1cm]{example-image} &
\includegraphics[height=1cm]{example-image} &
\includegraphics[height=1cm]{example-image} &
\includegraphics[height=1cm]{example-image} &
\includegraphics[height=1cm]{example-image}
\end{tabular}
This is a pseudo-caption.
\end{center}
\end{document}
tabular
列相对于最宽元素(标题或图像)扩展。您还可以调整列间距(由 给出\tabcolsep
)。