我遇到了类似描述的问题这里。我创建了一个命令,它将在图像旁边输出一个标题(在此示例中由简单文本替换)。
\documentclass[a4paper,12pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{vwcol}
\usepackage{caption}
\captionsetup{format=plain,width=0.7\textwidth}
\begin{document}
\newcommand{\yasfig}[3]
{\begin{vwcol}[widths={0.3,0.7},
sep=.8cm, justify=flush,rule=0pt,indent=0em]
#1
\begin{minipage}{0.68\linewidth}
\captionof{figure}{#2}
\label{#3}
\end{minipage}
\end{vwcol}}
\yasfig{Gel}{Bla}{fig:Gel}
\yasfig{Blot}{Bla}{fig:Blot}
\end{document}
这将输出所需的布局,但每次调用命令时图形数量都会增加 2。我猜这与 minipage 有关,但我对此一头雾水。
答案1
如果您只需要将标题放在图像旁边,那么除了使用多列环境之外还有其他方法,例如使用两个minipage
相邻的列,第一个列用于图像,第二个列用于标题。另一种方法是使用captionofbeside
KOMA 类提供的环境。
请注意,我不知道您想要的图像和标题的宽度到底有多宽,所以您可能需要修改宽度。环境minipage
中的captionofbeside
宽度并不是绝对必要的。对于标题和图像的垂直对齐,可能还需要进行一些修改,但我不知道您到底想要怎么做。
\documentclass[a4paper,12pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{caption}
\captionsetup{format=plain,width=0.7\textwidth}
\newcommand{\yasfig}[3]
{\noindent\begin{minipage}{0.25\linewidth}
#1
\end{minipage}\hfill
\begin{minipage}{0.68\linewidth}
\captionof{figure}{#2}
\label{#3}
\end{minipage}}
\newcommand\yyasfig[3]{%
\noindent\begin{captionofbeside}{figure}{#2\label{#3}}[r]
\begin{minipage}{.25\linewidth}
#1
\end{minipage}
\end{captionofbeside}}
\begin{document}
\yasfig{\includegraphics[width=\linewidth,height=2cm]{example-image}}{Bla}{fig:Gel}
\yasfig{\includegraphics[width=\linewidth,height=2cm]{example-image-a}}{Bla}{fig:Blot}
\yyasfig{\includegraphics[width=\linewidth,height=2cm]{example-image-b}}{Bla}{fig:Gel2}
\yyasfig{\includegraphics[width=\linewidth,height=2cm]{example-image-c}}{Bla}{fig:Blot2}
\end{document}
答案2
不确定为什么它会修复它,但我在离开之前从图形计数器中减去 1 vwcol
,然后在离开环境后将其加回去。我猜想这与有关vwcol
,或者正如您所怀疑的那样,与 的vwcol
相互作用minipage
。
\documentclass[a4paper,12pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{vwcol}
\usepackage{caption}
\captionsetup{format=plain,width=0.7\textwidth}
\begin{document}
\newcommand{\yasfig}[3]
{\begin{vwcol}[widths={0.3,0.7},
sep=.8cm, justify=flush,rule=0pt,indent=0em]
#1
\begin{minipage}{0.68\linewidth}
\captionof{figure}{#2}
\label{#3}
\end{minipage}
\addtocounter{figure}{-1}%
\end{vwcol}\addtocounter{figure}{1}%
}
\yasfig{Gel}{Bla}{fig:Gel}
\yasfig{Blot}{Bla}{fig:Blot}
\end{document}