子图引用显示罗马数字

子图引用显示罗马数字

我试图在论文中引用图表和子图。当我引用整个图表(包含子图)时,我得到正确的结果,如图 1.1 所示。每当我引用子图时,它都会显示罗马数字,例如图 I.1(a)。如何得到它,如图 1.1(a)。我正在添加一个最小工作示例。第一个是主文件。第二个是章节文件

    \documentclass[12pt,twoside,openright]{report}
\ProvidesPackage{mypackage}
\usepackage{subfigure}
\usepackage[subfigure]{tocloft}
\usepackage[dvips]{graphicx}
\usepackage[cmex10]{amsmath}
\usepackage{setspace}
\usepackage{float}
\usepackage[margin=1in]{geometry}
\usepackage{cite}
\usepackage{caption}
\usepackage{etoolbox}
\usepackage{tabularx}
\usepackage[toc,page]{appendix}
\usepackage{acronym}
\usepackage{titletoc}

\cleardoublepage %\cleardoublepage %for openright

\renewcommand{\chaptername}{CHAPTER}

\renewcommand{\thechapter}{\Roman{chapter}}%chapter number in roman
\makeatletter
\renewcommand{\thefigure}{\arabic{chapter}.\arabic{figure}}

\renewcommand{\theequation}{\arabic{chapter}.\arabic{equation}}

\setcounter{section}{0}
\makeatletter
\renewcommand{\thesection}{\arabic{chapter}.\arabic{section}}
\setcounter{figure}{0}

\makeatletter
\renewcommand{\thefigure}{\arabic{chapter}.\arabic{figure}}

\renewcommand{\theequation}{\arabic{chapter}.\arabic{equation}}
\begin{document}

%\renewcommand{\thechapter}{\arabic{chapter}}

\include{MWCchapter_01}




\end{document}

第 MWC 章

\chapter{First Chapter}
\section{General}


If I refer entire figure I get it properly as Fig. \ref{Figure}. However if I refer subfigures, it shows roman numeral 
Fig.\ref{FigureA} and 
Fig. \ref{FigureB}  which I dont want (it should be shown as Fig. 1.1(a) and Fig. 1.1(b)). The figures, subfigure captions and numbering are proper. However the problem comes during referencing.

%

\begin{figure}[!htbp]
\centering
\subfigure[FigureA]{%
\includegraphics[width=3in]{FigureA}
\label{FigureA}}
\subfigure[FigureB]{%
\includegraphics[width=3in]{FigureB}
\label{FigureB}}
\caption{Figure}
\label{Figure}
\end{figure}

答案1

subfigure包包含以下说明:

\let\p@subfigure=\thefigure

\thesubfigure这定义了 LaTeX在创建 类型对象的交叉引用时插入的“前缀字符串” subfigure。由于代码(在我看来,这是不恰当的!)使用设备\let来设置宏\p@subfigure,并且由于文档类将\thefigure其设置report为章节编号(罗马数字)和实际图号(阿拉伯数字)的组合,因此您最终会得到 形式的字符串I.1(a)

\let这里不合适的原因是因为\let创建了一个静态宏定义:该属性\thefigure在以下情况下有效:\let\p@subfigure=\thefigure是因为做了一个静态宏定义:运行在处理包含在report.cls\thefigure,即使在后来(在序言中)发生变化后仍继续使用。

立即的补救措施是在序言末尾运行以下代码:

\makeatletter
\renewcommand{\p@subfigure}{\thefigure}
\makeatother

真正的补救措施subfigure但是,首先不要使用该软件包。它已被弃用多年,并且有更好的替代品——subfigsubcaption软件包——可用。

答案2

在此处输入图片描述

在序言中添加\renewcommand{\thesection}{\arabic{section}}\renewcommand{\thefigure}{\arabic{figure}}\renewcommand\thesubfloatfigure{\thesection.\themainfigure(\alph{subfloatfigure})}。这非常适合subfigures环境。

梅威瑟:

\documentclass[]{article}

\usepackage{caption}
\captionsetup{justification=centering}

\usepackage{float}
\usepackage{subfloat}
\renewcommand{\thesection}{\arabic{section}} % Add this
\renewcommand{\thefigure}{\arabic{figure}} % Add this
\renewcommand\thesubfloatfigure{\thesection.\themainfigure(\alph{subfloatfigure})} % Add this

\usepackage{blindtext} % generates dummy text


\begin{document}


    \section{Section Title}

        \Blindtext



        \begin{subfigures}

            \begin{figure}
                \centering
                \fbox{\Huge SubFigure a}
                \caption{Sample Image 1}
            \end{figure}

            \begin{figure}
                \centering
                \fbox{\Huge SubFigure b}
                \caption{Sample Image 2}
            \end{figure}

        \end{subfigures}

\end{document}

相关内容