我需要具有自定义标题名称的图形和子图形。为了实现我的目标,我尝试使用float
包来定义新的浮点类型并subfigure
创建子图形。
但是,我收到编译错误消息。我将代码简化为:
\documentclass[a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{float}
\usepackage{subcaption}
\floatstyle{plain}
\newfloat{program}{thb}{lop}
\floatname{program}{Program}
\begin{document}
\begin{program}
\centering
\begin{subfigure}{0.3\textwidth}
A
\end{subfigure}
\begin{subfigure}{0.3\textwidth}
B
\end{subfigure}
\end{program}
\end{document}
Missing number, treated as zero
我在使用 的位置遇到了错误subfigure
。在生成的输出中,我==0
在每个子图的开头都遇到了一个奇怪的问题。
但是,如果我重新使用库存figure
而不是我的自定义替代品program
,我不会得到任何错误和预期的输出。
它从何而来?我该如何避免?我应该使用不同的包吗?
答案1
我将使用与该包链接在一起的newfloat
和包。subcaption
caption
\documentclass[a4paper]{article}
\usepackage{subcaption}
\usepackage{newfloat}
% declare a new float type
\DeclareFloatingEnvironment[
fileext=lop,
listname={List of Programs},
name=Program
]{program}
% announce the float to subcaption and create the subprogram environment
\DeclareCaptionSubType{program}
\begin{document}
\begin{program}
\centering
\begin{subprogram}{0.3\textwidth}
A
\subcaption{A program}
\end{subprogram}
\begin{subprogram}{0.3\textwidth}
B
\subcaption{Another one}
\end{subprogram}
\caption{Two programs}
\end{program}
\end{document}