我如何将定理的编号分配给图形的编号?我有一个特定的图形,而不是将其称为图 2.1:定理 2.2 的图,最好把它简单地命名为图 2.2,以免读者感到困惑。
单个定理可能不会有多张图片,但为了防止我的文档中出现意外情况,是否可以(手动或自动)添加(A),(二),标题后面还有什么?
或者,我不介意完全手动添加标题(所以我会自己输入整个“图 2.2”)...我该如何实现这一点?
答案1
这是你想要的吗?
\documentclass{amsart}
\usepackage{amsthm}
\newtheorem{theorem}{Theorem}
\makeatletter
\let\oldfig\thefigure%
\newcommand{\thmfig}[2][]{%
\renewcommand{\figurename}{Figure for Theorem}%
\renewcommand{\thefigure}{\ref{#2}}%
\caption{#1}
\addtocounter{figure}{-1}
}
\renewcommand{\thefigure}{\oldfig}%
\makeatother
\usepackage[demo]{graphicx}
\usepackage{lipsum}
\begin{document}
\begin{theorem}[Pythagoras] \label{thm:pythagoras}
For a right triangle ABC, right angled at $A$, $a^2 = b^2 + c^2$.
\end{theorem}
\begin{figure}[htbp]
\includegraphics[width = 0.4\textwidth]{pyth}
\thmfig{thm:pythagoras}
\end{figure}
\lipsum[1]
\begin{figure}[htbp]
\includegraphics[width = 0.4\textwidth]{pyth}
\caption{Figure not associated to a theorem}
\end{figure}
\begin{theorem}[Pythagoras] \label{thm:rectsq}
All squares are rectangles.
\end{theorem}
\begin{figure}[htbp]
\includegraphics[width = 0.4\textwidth]{play}
\thmfig[Rectangle but not a square]{thm:rectsq}
\end{figure}
\end{document}
输出
答案2
概述。
我的方法是创建一个新的计数器和变量,分别保存现有的图形计数器值和图形标签格式。然后可以暂时将格式更改为所需的样式,并将图形计数器的值暂时重置为 0,以便可以实现特定于该定理的局部编号和样式。
这是通过新环境实现的,在环境最终确定之前,现有的图形值和样式会重新应用,就好像什么都没有改变一样。
定理中的图形在其编号前加上 ,'T/'
以便于区分与定理的关联,并将Theorem 1
有名为 、 等的图形Figure T/1-1
,Figure T/1-2
由此可见Figure T/1-3
,一个定理可以有多个图形。
标准序言。
\documentclass[10pt,a4paper]{article}
\usepackage{lipsum}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage[demo]{graphicx}
自定义环境。
\newtheorem{thm}{Theorem}
\newcounter{oldfigure}
\newenvironment{mythm}{
\setcounter{oldfigure}{\value{figure}}
\thm
\setcounter{figure}{0}
\let\theoldfigure\thefigure
\renewcommand{\thefigure}{T/\thethm-\arabic{figure}}
}{
\let\thefigure\theoldfigure
\endthm
\setcounter{figure}{\value{oldfigure}}
}
虚拟文档,展示正在改变并重新应用的数量和样式。
\begin{document}
\figure[h]
\centering
\includegraphics[width = 0.4\textwidth,height=30pt]{figure}
\caption{My Figure}
\endfigure
\hrule
\begin{mythm}
\lipsum[2]
\figure[h]
\centering
\includegraphics[width = 0.4\textwidth,height=30pt]{figure}
\caption{My Figure}
\vspace{10pt}
\includegraphics[width = 0.4\textwidth,height=30pt]{figure}
\caption{My Figure}
\endfigure
\lipsum[2]
\end{mythm}
\hrule
\figure[h]
\centering
\includegraphics[width = 0.4\textwidth,height=30pt]{figure}
\caption{My Figure}
\endfigure
\end{document}
示例输出。