我有一个alltt
环境,我想为其添加标题,有时还添加子标题,格式为:Example 1a: some description
。但是,我只能实现:a: some description
。我意识到使用浮动会更容易,但我需要环境能够跨越从一个页面到另一个页面。这是我目前所拥有的:
\documentclass{article}
\usepackage{newfloat}
\usepackage{caption}
\DeclareFloatingEnvironment[fileext=frm,placement={!ht},name=example] {example}
\DeclareCaptionSubType{example}
\usepackage{alltt}
\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
\begin{alltt}
\blindtext
\end{alltt}
\captionof{subexample}{Some description}
\end{document}
答案1
宏\DeclareCaptionSubType{example}
确实只提供了subexample
相关example
类型的类型,但没有提供其名称,这必须单独完成\captionsetup[subtype]{name=Example}
(或选择除 之外的任何其他名称Example
)
subexample
如果每一步都要重置计数器example
,\DeclareCaptionSetupType*{example}
则使用。
中a
的a: some description
来自\thesubexample
定义为\@nameuse{alph{subexample}}
,实际上与\alph{subexample}
这里相同。
这里或许\renewcommand{\thesubexample}{\Alph{subexample}}
会更好,但这只是个人品味的问题。
\documentclass{article}
\usepackage{newfloat}
\usepackage{caption}
\DeclareFloatingEnvironment[fileext=frm,placement={!ht},name=example]{example}
\DeclareCaptionSubType*{example}
\captionsetup[subexample]{name=Example}
\renewcommand{\thesubexample}{\theexample\alph{subexample}}
\usepackage{alltt}
\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
\stepcounter{example}% Faking an already existing usage of `example`
\begin{alltt}
\blindtext
\end{alltt}
\captionof{subexample}{Some description}
\end{document}