Переопределить \ сноску, чтобы изменить цвет индекса в латексе - PullRequest
0 голосов
/ 19 мая 2019

Для моей работы я сделаю возможным изменение цвета индекса сноски по желанию.

Я нашел способ изменить цвет, но он не гибкий.

\RequirePackage{xcolor}
\definecolor{red}{RGB}{165,30,55}
\renewcommand{\thefootnote}{\textcolor{red}{\arabic{footnote}}}

\begin{document}
a footnote\footnote{lalala}
\end{document}

это работает. Но это не так:

\renewcommand{\thefootnote}[1]{\textcolor{#1}{\arabic{footnote}}}
\begin{document}
a footnote\footnote[red]{lalala}
\end{document}

Я думаю, это потому, что \footnote уже имеет один необязательный параметр для индекса. Есть ли способ изменить это?

1 Ответ

1 голос
/ 20 мая 2019

С помощью новой команды можно сделать что-то вроде этого:

\documentclass{article}

\RequirePackage{xcolor}

\newcommand{\cfootnote}[2][black]{%
    {\color{#1}\footnote{#2}}%
}

\begin{document}
a footnote\cfootnote{lalala}


a footnote\cfootnote[red]{lalala}
\end{document}

enter image description here

Другой подход с переопределением сноски:

\documentclass{scrartcl}
\usepackage{scrletter}
\usepackage{xcolor}

\let\oldfootnote\footnote
\usepackage{xparse}
\usepackage{etoolbox}
\RenewDocumentCommand{\footnote}{ O{} m O{black}}{%
    \deffootnotemark{\color{#3}\textsuperscript{\thefootnotemark}}%
    \ifstrempty{#1}{%
        \oldfootnote{#2}%
    }{%
        \oldfootnote[#1]{#2}%
    }
}

\begin{document}

test\footnote{text}[red]

test\footnote{text}

test\footnote[42]{text}

test\footnote[42]{text}[blue]

\end{document}

enter image description here

...