我在文档类“nature”中使用了 subfig 包。它不起作用。还有其他方法可以在这个类中绘制子图吗?
\documentclass{nature}
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{amsthm}
\usepackage{amsmath,scalerel}
\usepackage{bm}
\usepackage{amssymb}\usepackage{graphicx}
\usepackage{multirow}
\usepackage{adjustbox}
\usepackage{epstopdf}
\usepackage[utf8]{inputenc}
\usepackage[margin=2.5cm]{geometry}
\usepackage{enumitem}
%\usepackage{caption}
\usepackage{pdflscape}
\usepackage{subfig}
%\usepackage{pgfplots}
\usepackage{lipsum}%
\usepackage{tikz, wrapfig,array}
\usetikzlibrary{trees}
\usetikzlibrary{calc,patterns,
decorations.pathmorphing,
decorations.markings, shapes.geometric, graphs, graphs.standard, quotes,shapes,chains,scopes,positioning,arrows}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{figure}
\centering
\subfigure[Simple order]{\begin{tikzpicture}[{<[scale=2.5,
length=3,
width=3]}-,grow=right,solid node/.style={circle,draw,inner sep=1,fill=black}]
% \tikzstyle{every node}=[circle,draw]
\node[solid node,label=left:{$\mu_1$}]{}
child{node[solid node,label=above:{$\mu_2$}]{} child { node[solid node,label=above:{$\mu_3$}]{} child { node[solid node,label=right:{$\mu_4$}]{} }}}
;
\end{tikzpicture}\label{Fig_Simple_Order}
}
\subfigure[Tree order]{\begin{tikzpicture}[{[scale=2.5,
length=3,
width=3]<}-,grow=right,level 1/.style={sibling distance=5mm},solid node/.style={circle,draw,inner sep=1,fill=black}]
% \tikzstyle{every node}=[circle,draw]
\node[solid node,label=left:{$\mu_1$}]{}
child { node[solid node,label=right:{$\mu_4$}]{} }
child { node[solid node,label=right:{$\mu_3$}]{} }
child { node[solid node,label=right:{$\mu_2$}]{} }
;
\end{tikzpicture}\label{Fig_Tree_Order}
}
\end{figure}
\end{document}
答案1
我发现这里有三个问题:
subfig
正在加载caption
与文档类不兼容的包nature
(因为它自己nature
重新定义)。可以通过将选项添加到 来防止这种情况。\caption
caption=false
subfig
- 该命令
subfig
提供的是 被称为\subfloat
(而不是\subfigure
)。 \subfloat
期望\@captype
被定义。但是nature
文档类重新定义,figure
没有\@captype
在自己的定义中设置。所以需要我们\@captype
自己设置。
\documentclass{性质} \usepackage{amsfonts} \usepackage{mathtools} \usepackage{amsthm} \usepackage{amsmath,scalerel} \usepackage{bm} \usepackage{amssymb}\usepackage{graphicx} \usepackage{多行} \usepackage{调整框} \usepackage{epstopdf} \usepackage[utf8]{输入框} \usepackage[margin=2.5cm]{几何} \usepackage{enumitem} \usepackage{pdflscape} \usepackage[caption=false]{subfig} %\usepackage{pgfplots} \usepackage{lipsum}% % 提供 \setcaptiontype 来设置 \@captype - 这是 \subfloat 所需要的 \制作字母 \newcommand\setcaptiontype[1]{\edef\@captype{#1}\ignorespaces} \makeatother \usepackage{tikz,wrapfig,数组} \usetikzlibrary{树} \usetikzlibrary{计算,模式, 装饰.路径变形, 装饰.标记、形状.几何、图形、图形.标准、引号、形状、链条、范围、定位、箭头} \usetikzlibrary{arrows.meta} \开始{文档} \开始{图} \setcaptiontype{图} \定心 \subfloat[简单顺序]{\begin{tikzpicture}[{