我可以再次寻求您的帮助吗?我想知道您是否可以帮我修改一下\makeatletter ... \makeatother
“框架标签中的命令,自动生成框架标签”中的宏,以便 MWE 8 的输出与 MWE 7 的输出相同?
MWE 7:
\documentclass{beamer}
\includeonlyframes%
{%
myframelabelprefix-0.0.0,%
myframelabelprefix-1.0.0,%
myframelabelprefix-1.1.0,%
myframelabelprefix-1.1.1,%
myframelabelprefix-1.1.2,%
myframelabelprefix-2.0.0,%
myframelabelprefix-2.1.0,%
myframelabelprefix-2.1.1,%
myframelabelprefix-2.1.2,%
myframelabelprefix-3.0.0,%
myframelabelprefix-3.1.0,%
myframelabelprefix-3.1.1,%
myframelabelprefix-3.1.2,%
}
\setcounter{section}{0}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\begin{document}
\begin{frame}[label=myframelabelprefix-0.0.0]{Outline}
\tableofcontents
\end{frame}
\section{Frame 1.0.0 Title}
\begin{frame}[label=myframelabelprefix-1.0.0]{Frame 1.0.0 Title}
Frame 1.0.0 Contents
\end{frame}
\subsection{Frame 1.1.0 Title}
\begin{frame}[label=myframelabelprefix-1.1.0]{Frame 1.1.0 Title}
Frame 1.1.0 Contents
\end{frame}
\subsubsection{Frame 1.1.1 Title}
\begin{frame}[label=myframelabelprefix-1.1.1]{Frame 1.1.1 Title}
Frame 1.1.1 Contents
\end{frame}
\subsubsection{Frame 1.1.2 Title}
\begin{frame}[label=myframelabelprefix-1.1.2]{Frame 1.1.2 Title}
Frame 1.1.2 Contents
\end{frame}
\section{Frame 2.0.0 Title}
\begin{frame}[label=myframelabelprefix-2.0.0]{Frame 2.0.0 Title}
Frame 2.0.0 Contents
\end{frame}
\subsection{Frame 2.1.0 Title}
\begin{frame}[label=myframelabelprefix-2.1.0]{Frame 2.1.0 Title}
Frame 2.1.0 Contents
\end{frame}
\subsubsection{Frame 2.1.1 Title}
\begin{frame}[label=myframelabelprefix-2.1.1]{Frame 2.1.1 Title}
Frame 2.1.1 Contents
\end{frame}
\subsubsection{Frame 2.1.2 Title}
\begin{frame}[label=myframelabelprefix-2.1.2]{Frame 2.1.2 Title}
Frame 2.1.2 Contents
\end{frame}
\section{Frame 3.0.0 Title}
\begin{frame}[label=myframelabelprefix-3.0.0]{Frame 3.0.0 Title}
Frame 3.0.0 Contents
\end{frame}
\subsection{Frame 3.1.0 Title}
\begin{frame}[label=myframelabelprefix-3.1.0]{Frame 3.1.0 Title}
Frame 3.1.0 Contents
\end{frame}
\subsubsection{Frame 3.1.1 Title}
\begin{frame}[label=myframelabelprefix-3.1.1]{Frame 3.1.1 Title}
Frame 3.1.1 Contents
\end{frame}
\subsubsection{Frame 3.1.2 Title}
\begin{frame}[label=myframelabelprefix-3.1.2]{Frame 3.1.2 Title}
Frame 3.1.2 Contents
\end{frame}
\end{document}
MWE 8:
\documentclass{beamer}
\includeonlyframes%
{%
myframelabelprefix-0.0.0,%
myframelabelprefix-1.0.0,%
myframelabelprefix-1.1.0,%
myframelabelprefix-1.1.1,%
myframelabelprefix-1.1.2,%
myframelabelprefix-2.0.0,%
myframelabelprefix-2.1.0,%
myframelabelprefix-2.1.1,%
myframelabelprefix-2.1.2,%
myframelabelprefix-3.0.0,%
myframelabelprefix-3.1.0,%
myframelabelprefix-3.1.1,%
myframelabelprefix-3.1.2,%
}
\setcounter{section}{0}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\begin{document}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Outline}
\tableofcontents
\end{frame}
\section{Frame 1.0.0 Title}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 1.0.0 Title}
Frame 1.0.0 Contents
\end{frame}
\subsection{Frame 1.1.0 Title}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 1.1.0 Title}
Frame 1.1.0 Contents
\end{frame}
\subsubsection{Frame 1.1.1 Title}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 1.1.1 Title}
Frame 1.1.1 Contents
\end{frame}
\subsubsection{Frame 1.1.2 Title}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 1.1.2 Title}
Frame 1.1.2 Contents
\end{frame}
\section{Frame 2.0.0 Title}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 2.0.0 Title}
Frame 2.0.0 Contents
\end{frame}
\subsection{Frame 2.1.0 Title}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 2.1.0 Title}
Frame 2.1.0 Contents
\end{frame}
\subsubsection{Frame 2.1.1 Title}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 2.1.1 Title}
Frame 2.1.1 Contents
\end{frame}
\subsubsection{Frame 2.1.2 Title}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 2.1.2 Title}
Frame 2.1.2 Contents
\end{frame}
\section{Frame 3.0.0 Title}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 3.0.0 Title}
Frame 3.0.0 Contents
\end{frame}
\subsection{Frame 3.1.0 Title}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 3.1.0 Title}
Frame 3.1.0 Contents
\end{frame}
\subsubsection{Frame 3.1.1 Title}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 3.1.1 Title}
Frame 3.1.1 Contents
\end{frame}
\subsubsection{Frame 3.1.2 Title}
\begin{frame}[label=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 3.1.2 Title}
Frame 3.1.2 Contents
\end{frame}
\end{document}
答案1
在这里我调整了我的回答对于你之前的问题,做你想做的事。
同样,使用新选项cmdlabel
命令可以在标签名称中使用。由于您似乎希望对所有标签使用相同的方案,因此我也调整了autolabel
以更简单的方式进行标记。
因为两个选项\edef
都是使用的,所以它们只能与一起使用\arabic
,但不能\alph
或类似。
顺便说一句,你的方案存在一些问题:
如果每个 中有多个框架\subsubsection
,则标签将给出两次,并且您会收到有关此情况的警告。在 中使用这样的标签\includeonlyframes
将显示两个框架。我在代码中添加了一个示例框架 1.1.2。
s的计数器\subsubsection
由 重置\subsection
,但不由 重置\section
。因此,例如框架 3.0.0不是myframelabelprefix-3.0.0
而是myframelabelprefix-3.0.2
。我相应地更改了标签\includeonlyframes
并在代码中标记它们。
代码:
\documentclass{beamer}
\makeatletter
% set label with automatic name
\newcommand*{\autolabelprefix}[1]{%
\def\autolabel@prefix{#1}%
}
\newcommand*{\autolabel@setlabel}[1]{%
\setkeys{beamerframe}{label=#1}%
}
\define@key{beamerframe}{autolabel}[]{%
\edef\@autolabel{\autolabel@prefix\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}%
\expandafter\autolabel@setlabel\expandafter{\@autolabel}%
}
% set label with command
\newcommand*{\cmdlabel@setlabel}[1]{%
\typeout{XXXXXXXXXXXXXXXXXXXX label: #1}%
\setkeys{beamerframe}{label=#1}%
}
\define@key{beamerframe}{cmdlabel}{%
\edef\@cmdlabel{#1}%
\expandafter\cmdlabel@setlabel\expandafter{\@cmdlabel}%
}
\makeatother
\autolabelprefix{myframelabelprefix-}
\includeonlyframes%
{%
myframelabelprefix-0.0.0,%
myframelabelprefix-1.0.0,%
myframelabelprefix-1.1.0,%
myframelabelprefix-1.1.1,%
myframelabelprefix-1.1.2,% <-- double, both frames shown
myframelabelprefix-2.0.2,% <-- changed
myframelabelprefix-2.1.0,%
myframelabelprefix-2.1.1,%
myframelabelprefix-2.1.2,%
myframelabelprefix-3.0.2,% <-- changed
myframelabelprefix-3.1.0,%
myframelabelprefix-3.1.1,%
myframelabelprefix-3.1.2,%
}
\setcounter{section}{0}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\begin{document}
%\begin{frame}[autolabel]{Outline}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Outline}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
\tableofcontents
\end{frame}
\section{Frame 1.0.0 Title}
%\begin{frame}[autolabel]{Frame 1.0.0 Title}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 1.0.0 Title}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
Frame 1.0.0 Contents
\end{frame}
\subsection{Frame 1.1.0 Title}
%\begin{frame}[autolabel]{Frame 1.1.0 Title}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 1.1.0 Title}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
Frame 1.1.0 Contents
\end{frame}
\subsubsection{Frame 1.1.1 Title}
%\begin{frame}[autolabel]{Frame 1.1.1 Title}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 1.1.1 Title}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
Frame 1.1.1 Contents
\end{frame}
\subsubsection{Frame 1.1.2 Title}
%\begin{frame}[autolabel]{Frame 1.1.2 Title}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 1.1.2 Title}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
Frame 1.1.2 Contents
\end{frame}
% this will produce a warning, because the label is the same
%\begin{frame}[autolabel]{Frame 1.1.2 Title 2}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 1.1.2 Title 2}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
seocnd Frame in 1.1.2
Frame 1.1.2 Contents
\end{frame}
\section{Frame 2.0.0 Title}
%\begin{frame}[autolabel]{Frame 2.0.0 Title}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 2.0.0 Title}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
Frame 2.0.0 Contents
\end{frame}
\subsection{Frame 2.1.0 Title}
%\begin{frame}[autolabel]{Frame 2.1.0 Title}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 2.1.0 Title}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
Frame 2.1.0 Contents
\end{frame}
\subsubsection{Frame 2.1.1 Title}
%\begin{frame}[autolabel]{Frame 2.1.1 Title}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 2.1.1 Title}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
Frame 2.1.1 Contents
\end{frame}
\subsubsection{Frame 2.1.2 Title}
%\begin{frame}[autolabel]{Frame 2.1.2 Title}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 2.1.2 Title}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
Frame 2.1.2 Contents
\end{frame}
\section{Frame 3.0.0 Title}
%\begin{frame}[autolabel]{Frame 3.0.0 Title}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 3.0.0 Title}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
Frame 3.0.0 Contents
\end{frame}
\subsection{Frame 3.1.0 Title}
%\begin{frame}[autolabel]{Frame 3.1.0 Title}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 3.1.0 Title}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
Frame 3.1.0 Contents
\end{frame}
\subsubsection{Frame 3.1.1 Title}
%\begin{frame}[autolabel]{Frame 3.1.1 Title}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 3.1.1 Title}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
Frame 3.1.1 Contents
\end{frame}
\subsubsection{Frame 3.1.2 Title}
%\begin{frame}[autolabel]{Frame 3.1.2 Title}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame 3.1.2 Title}
\arabic{section}.\arabic{subsection}.\arabic{subsubsection}
Frame 3.1.2 Contents
\end{frame}
\end{document}
答案2
根据 Mike 的回答,我只是做了一些非常小的改动,但基本上想法都在这里。
\documentclass{beamer}
\制作字母
% 设置自动名称的标签 \newcommand*{\autolabelprefix}[1]% {% \def\autolabel@prefix{#1}% }
\newcommand*{\autolabel@setlabel}[1]% {% \setkeys{beamerframe}{label=#1}% }
\define@key{beamerframe}{自动标签}[]% {% \edef\@自动标签{\自动标签@prefix\arabic{部分}.\arabic{子部分}.\arabic{子子部分}}% \expandafter\自动标签@setlabel\expandafter{\@自动标签}% }
% 使用命令设置标签 \newcommand*{\cmdlabel@setlabel}[1]% {% \typeout{XXXXXXXXXXXXXXXXXXXX label: #1}% \setkeys{beamerframe}{label=#1}% }
\define@key{beamerframe}{cmdlabel}% {% \edef\@cmdlabel{#1}% \expandafter\cmdlabel@setlabel\expandafter{\@cmdlabel}% }
\makeatother
\autolabelprefix{我的框架标签前缀-}
\includeonlyframes% {%
myframelabelprefix-0.0.0,%
myframelabelprefix-1.0.0,%
myframelabelprefix-1.1.0,%
myframelabelprefix-1.1.1,%
myframelabelprefix-1.1.2,% myframelabelprefix-1.1.3,% myframelabelprefix-2.0.0,% myframelabelprefix-2.1.0,%
myframelabelprefix-2.1.1,% myframelabelprefix
-2.1.2,%
myframelabelprefix-3.0.0,% myframelabelprefix-3.1.0,%
myframelabelprefix-3.1.1,%
myframelabelprefix-3.1.2,%
myframelabelprefix-3.1.3,%
}
\setcounter{部分}{0}
\setcounter{子部分}{0}
\setcounter{子子部分}{0}
\开始{文档}
%\begin{frame}[自动标签]{大纲} \begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{大纲}
\tableofcontents
\end{frame}
\section{Frame 1.0.0 标题} %\begin{frame}[autolabel]{Frame \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题} \begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题} Frame \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容
\end{frame}
\subsection{框架 1.1.0 标题} %\begin{frame}[autolabel]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题} \begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容
\end{frame}
\subsubsection{框架 1.1.1 标题} %\begin{frame}[autolabel]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题} \begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容
\end{frame}
\subsubsection{框架 1.1.2 标题} %\begin{frame}[autolabel]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题} \begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容
\end{frame}
% 这将产生一个警告,因为标签是相同的 \subsubsection{Frame 1.1.3 Title} %\begin{frame}[autolabel]{Frame \arabic{section}.\arabic{subsection}.\arabic{subsubsection} Title} \begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame \arabic{section}.\arabic{subsection}.\arabic{subsubsection} Title}
Frame \arabic{section}.\arabic{subsection}.\arabic{subsubsection} Contents
\end{frame}
\section{Frame 2.0.0 标题} %\begin{frame}[autolabel]{Frame \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
Frame \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容 \end{frame}
\subsection{框架 2.1.0 标题} %\begin{frame}[autolabel]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容
\end{frame}
\subsubsection{框架 2.1.1 标题} %\begin{frame}[autolabel]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容
\end{frame}
\subsubsection{框架 2.1.2 标题} %\begin{frame}[autolabel]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容
\end{frame}
\section{Frame 3.0.0 标题} %\begin{frame}[autolabel]{Frame \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{Frame \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
Frame \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容
\end{frame}
\subsection{框架 3.1.0 标题} %\begin{frame}[autolabel]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容
\end{frame}
\subsubsection{框架 3.1.1 标题} %\begin{frame}[autolabel]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容
\end{frame}
\subsubsection{框架 3.1.2 标题} %\begin{frame}[autolabel]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容
\end{frame}
\subsubsection{框架 3.1.3 标题} %\begin{frame}[autolabel]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
\begin{frame}[cmdlabel=myframelabelprefix-\arabic{section}.\arabic{subsection}.\arabic{subsubsection}]{框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 标题}
框架 \arabic{section}.\arabic{subsection}.\arabic{subsubsection} 内容
\end{frame}
\结束{文档}
我们现在可以创建一个命令环境函数,比如 myframe,来定义我们自己的定制框架,它将自动且唯一地生成标签。再次感谢 Mike。
--丹尼斯