Как сделать `\captionof`s цветным, когда я нахожусь в `\makenote`s?

Как сделать `\captionof`s цветным, когда я нахожусь в `\makenote`s?

Я могу сделать свою \captionofs синей.
Я могу сделать свою \makenotes синей.
Но, похоже, что как бы я ни старался, я никогда не смогу сделать \captionofs внутри \makenotes синей.

Пример

\documentclass[]{scrbook}
\usepackage{graphicx}
\usepackage{xcolor}

\usepackage{caption}%
\captionsetup{compatibility=false}%

\usepackage{scrlayer-scrpage}
\usepackage{scrlayer-notecolumn} %must be loaded ``Lastest''
\RedeclareNoteColumn[font = \color{blue}]{marginpar} %default

\DeclareCaptionFont{bluecaptionfont}{\color{blue}}
\captionsetup{font={bluecaptionfont}, labelfont=bluecaptionfont}

\begin{document}

    here is the main text
    \makenote*{
        \includegraphics[width=3cm]{example-grid-100x100pt}
        \captionof{figure}{This should be blue}
    }

    \begin{minipage}{0.5\textwidth}
        \includegraphics[width=8cm]{example-grid-100x100pt}
        \captionof{figure}{Normal captionof's are blue}
    \end{minipage}

    \makenote*{
        Normal notes are blue
    }
\end{document}

Отдаленно связанные:Как вставить vspaces в scrlayer-notecolumn marginnote?

Выходы

снимок экрана выходного документа

решение1

scrlayer-notecolumnv0.2.3085 отрепозиторий исходного кода KOMA-Script на SourceForgeуже поддерживает цвета в столбцах заметок с LuaLaTeX или PDFLaTeX (но не с XeLaTeX). Таким образом, пример из вопроса приводит к:

результат scrlayer-notecolumn v0.2.3085

решение2

\makenote*переопределяет \color, чтобы ничего не делать, и поэтому внутренний код подписей не может изменить цвет. Вы можете использовать другую команду, но имейте в виду, что, \makenote*возможно, есть причина для переопределения: вполне возможно, что синий цвет просочится.

\documentclass[]{scrbook}
\usepackage{graphicx}
\usepackage{xcolor}

\usepackage{caption}%
\captionsetup{compatibility=false}%

\usepackage{scrlayer-scrpage}
\usepackage{scrlayer-notecolumn} %must be loaded ``Lastest''
\RedeclareNoteColumn[font = \color{blue}]{marginpar} %default

\let\mycolorcommand\color
\DeclareCaptionFont{bluecaptionfont}{\mycolorcommand{blue}}
\captionsetup{font={bluecaptionfont}, labelfont=bluecaptionfont}

\begin{document}

    here is the main text
    \makenote*{ 
        \includegraphics[width=3cm]{example-grid-100x100pt}
        \captionof{figure}{This should be blue}
    }

    \begin{minipage}{0.5\textwidth}
        \includegraphics[width=8cm]{example-grid-100x100pt}
        \tracingmacros=1 \captionof{figure}{Normal captionof's are blue}
    \end{minipage}

    \makenote*{
        Normal notes are blue
    }
\end{document}

Возможно, более безопасной альтернативой является локальное переопределение \normalcolor. Тогда заголовок не сможет сбросить цвет, и цвет в примечании победит:

\makenote*{ 
    \includegraphics[width=3cm]{example-grid-100x100pt}
    \let\normalcolor\relax
    \captionof{figure}{This should be blue}
}

введите описание изображения здесь

Связанный контент