在尝试回答这个问题,我以为使用该包添加新的浮动环境会很容易float
。但是,标题的标签格式不正确。
因为我正在创建一个想要用侧面标题标记的新浮点数,所以我深入研究了sidecap
包并创建了一个新的环境来匹配新的浮点数。
以下是 MWE:
\documentclass{book}
%% setting up new float
\usepackage{float}
\floatname{mySpecialFloat}{Special Float}
\newfloat{mySpecialFloat}{tbhp}{lst}[chapter]
\newcommand{\listofSpecialFloats}{\listof{mySpecialFloat}{List of Special Floats}}
%% setting up side captions
\usepackage[wide]{sidecap}
\makeatletter
\@ifdefinable\SC@specialFloat@vpos{\def\SC@specialFloat@vpos{b}}
\newenvironment{SCspecialFloat}{\SC@float[\SC@specialFloat@vpos]{mySpecialFloat}}{\endSC@float}
\newenvironment{SCspecialFloat*}{\SC@dblfloat[\SC@specialFloat@vpos]{mySpecialFloat}}{\endSC@dblfloat}
\makeatother
%% setting up formatting for cpations
\usepackage
[
font=footnotesize,
format=plain,
labelfont={bf,sf},
textfont={it},
width=10pt
]{caption}
\usepackage{lipsum}
\pagestyle{empty}
\begin{document}
\listofSpecialFloats
\begin{mySpecialFloat}
\centering
Hello
\caption[toc entry for hello]{Hello}
\end{mySpecialFloat}
\begin{SCspecialFloat}
\begin{minipage}[t]{\textwidth}
\lipsum[1-2]
\end{minipage}
\caption[toc entry for lipsum]{My caption content}
\label{fig:src:01}
\end{SCspecialFloat}
\end{document}
产生
我觉得有趣的是,一切似乎都正常工作。列表命令知道我所有的特殊浮点数。唯一似乎不能正常工作的是侧边标题浮点数的标题标签。
我知道这可以通过 来实现newfloat
,但我想知道这里发生了什么。为什么标签名称在sidecap
环境中丢失了?
更新
float
使用的命名约定和所期望的命名约定似乎存在冲突sidecap
。
如果我在设置标题的代码中添加以下行,似乎可以解决这个问题:
\@namedef{mySpecialFloatname}{Special Float}
答案1
软件包caption
bundle 和软件包已经提供了此功能,因为如果加载了newfloat
该软件包,它会自动定义一个 SC 变体:sidecap
\documentclass{book}
%% setting up side captions
\usepackage[wide]{sidecap}
%% setting up new float
\usepackage{newfloat}
\DeclareFloatingEnvironment
[name={Special Float},listname={List of Special Floats},fileext=lst,placement=tbhp]
{SpecialFloat}
%% setting up formatting for cpations
\usepackage
[
font=footnotesize,
format=plain,
labelfont={bf,sf},
textfont={it},
width=10pt
]{caption}
\usepackage{lipsum}
\pagestyle{empty}
\begin{document}
\listofSpecialFloats
\begin{SpecialFloat}
\centering
Hello
\caption[toc entry for hello]{Hello}
\end{SpecialFloat}
\begin{SCSpecialFloat}
\begin{minipage}[t]{\textwidth}
\lipsum[1-2]
\end{minipage}
\caption[toc entry for lipsum]{My caption content}
\label{fig:src:01}
\end{SCSpecialFloat}
\end{document}