如何更改 Tufte Book/Handout 中 marginfigure 的标签分隔符?

如何更改 Tufte Book/Handout 中 marginfigure 的标签分隔符?

我正在尝试使用 caption 包来执行此操作,并使用了以下代码,但它仍然没有给我句号作为标签分隔符。我该如何解决这个问题?以下是我所拥有的:

    \documentclass[english,dotinlabels,nohyper,notoc]{tufte-handout}
    \usepackage{babel}
    \usepackage{hyperref}
    \usepackage{caption}
    \captionsetup[figure]{labelformat=simple, labelsep = period}
    \captionsetup[marginfigure]{labelformat=simple, labelsep = period}

    \begin{document}

    \section{test}

    \begin{figure}
    \caption{erere}
    \end{figure}

    \vspace{20pt}

    this is a test

    \begin{marginfigure}
    \caption{rerweaere}
    \end{marginfigure}

    \end{document}

如下所示,它适用于图形,但不适用于边距图形: 在此处输入图片描述

答案1

您可以重新定义marginfigure以包含标题格式的更改:

\documentclass[english,dotinlabels,nohyper,notoc]{tufte-handout}
\usepackage{babel}
\usepackage{hyperref}
\usepackage{caption}
\captionsetup[figure]{labelformat=simple, labelsep = period}

\makeatletter
\renewenvironment{marginfigure}[1][-1.2ex]%
  {\begin{@tufte@margin@float}[#1]{figure}%
    \captionsetup{labelformat=simple, labelsep = period}}
  {\end{@tufte@margin@float}}
\makeatother

\begin{document}

\section{test}

\begin{figure}
\caption{erere}
\end{figure}
\vspace{20pt}
this is a test

\begin{marginfigure}
\caption{rerweaere}
\end{marginfigure}

\end{document}

在此处输入图片描述

附带说明一下,此文档类不支持类选项openanya5paper

答案2

目前,Tufte-LaTeX 类与该包的配合还不太好caption

最简单的解决方案是重新定义\@caption由 Tufte-LaTeX 类定义的命令。在文档的序言中添加以下代码:

\makeatletter
\long\def\@caption#1[#2]#3{%
  \par
  \addcontentsline{\csname ext@#1\endcsname}{#1}%
    {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
  \begingroup
    \@parboxrestore
    \if@minipage
      \@setminipage
    \fi
    \@tufte@caption@font\@tufte@caption@justification
    \noindent\csname fnum@#1\endcsname. \ignorespaces#3\par% changed : to .
  \endgroup}
\makeatother

您提供的示例还具有居中标题(作为使用该包的副产品caption),而不是通常在 Tufte 风格文档中发现的右侧不规则标题。

作为贡萨洛·梅迪纳 提及openanya5paper选项被Tufte-LaTeX类忽略。

相关内容