Cleveref 和后记

Cleveref 和后记

关于定制的一个小问题cleveref

我正在尝试设置格式以\cref获取“(图 1)”。

我设法得到了我想要的东西

\crefformat{figure}{(#2fig.~#1#3)}

尽管如此,有时我需要为这个参考添加注释,我希望获得以下类型的参考:“(图 1,n°1)”。

是否可以采用与 biblatex 相同的方式添加后记\cite[posnote]{bib}

我在官方文档或网站上找不到我想要的内容。

谢谢你!

\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{babel}
\usepackage{cleveref}
\usepackage{capt-of}
\usepackage{lipsum}
\providecommand{\numero}{n\textsuperscript{o}\nobreakspace}

\crefformat{figure}{(#2fig.~#1#3)}

\begin{document}  
    \captionof{figure}{Je suis une legende}\label{legende} 
I would like this: (fig.~1, \numero 1)

Not this \cref{legende}, \numero 1

\end{document}

答案1

作为一种解决方法,您可以创建具有所需行为的特殊命令:

\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}

\usepackage{capt-of}
\usepackage{cleveref}

\providecommand{\numero}{n\textsuperscript{o}\nobreakspace}

\crefformat{figure}{#2fig.~#1#3}

\usepackage{etoolbox}   
\newcommand{\crefp}[2][]{%
    (\cref{#2}%
    \ifstrempty{#1}{}{%
            , #1%
        }%
    )%
}

\begin{document}  
    \captionof{figure}{Je suis une legende}\label{legende} 

I would like this: (fig.~1, \numero 1)

Not this \crefp[\numero 1]{legende}

\crefp{legende}


\end{document}

在此处输入图片描述


这种方法也适用于标签列表:

\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}

\usepackage{capt-of}
\usepackage{cleveref}

\providecommand{\numero}{n\textsuperscript{o}\nobreakspace}

\crefformat{figure}{#2fig.~#1#3}

\usepackage{etoolbox}   
\newcommand{\crefp}[2][]{%
    (\cref{#2}%
    \ifstrempty{#1}{}{%
            , #1%
        }%
    )%
}

\begin{document}  
    \captionof{figure}{Je suis une legende}\label{legende} 
    \captionof{figure}{Je suis une legende}\label{legendee} 

\crefp[\numero 1]{legende,legendee}

\crefp{legende,legendee}

\cref{legende,legendee}

\end{document}

在此处输入图片描述

相关内容