![\DeclareCaptionLabelFormat 不起作用](https://linux22.com/image/479138/%5CDeclareCaptionLabelFormat%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我正在尝试创建一个名为 的自定义环境graph
,并在冒号前为标签加下划线。这是我所拥有的:
\documentclass{article}
\usepackage{caption}
\usepackage{float}
\usepackage{ulem}
\floatstyle{plaintop}
\newfloat{graph}{tbph}{log}
\floatname{graph}{Graph}
\DeclareCaptionLabelFormat{test}{\uline{#1 #2}}
\captionsetup[graph]{labelformat=test}
\begin{document}
\begin{graph}[h]
\caption{Testing}
\end{graph}
\end{document}
问题是浮点名称“Graph”完全消失,只剩下“1:Testing”。我该如何解决这个问题?
答案1
如果您使用 执行此操作floatrow
,则它会起作用。警告:float
与 不兼容floatrow
。
\documentclass{article}
\usepackage{floatrow}
\usepackage{ulem}
\DeclareNewFloatType{graph}%
{placement=tbph,fileext=gph,name=Graph}
\usepackage{caption}
\DeclareCaptionLabelFormat{test}{\uline{#1 #2}}
\captionsetup[graph]{labelformat=test}
\begin{document}
\begin{graph}[h]
\caption{Testing}
\end{graph}
\end{document}
答案2
显然,\newfloat
无法定义\graphname
。
\documentclass{article}
\usepackage{float}
\usepackage{caption}
\usepackage[normalem]{ulem} % <----
\floatstyle{plaintop}
\newfloat{graph}{tbph}{loh} % <----
\floatname{graph}{Graph}
\newcommand{\graphname}{Graph}% <----
\DeclareCaptionLabelFormat{test}{\uline{#1 #2}}
\captionsetup[graph]{labelformat=test}
\begin{document}
\begin{graph}[h]
\caption{Testing}
\end{graph}
\end{document}
我改变了新浮点类型的扩展名,但使用log
似乎不是一个好主意,因为这与 TeX 生成的标准日志文件冲突。
我还建议使用该选项normalem
,以避免斜体呈现为下划线。