Using version 2019/11/18
of Springer's sn-jnl.cls
template (archived as a gist here), I get the following:
\documentclass{sn-jnl}
\usepackage{xparse}
\NewDocumentCommand{\githublink}{m m o}{\href{}{\texttt{}}}
\begin{document}
. \githublink{}{}[]
\end{document}
! Argument of \XKV@d@fine@k@y has an extra }.
<inserted text>
\par
l.5 . \githublink{}{}[]
What's going on here, and how do I fix this?
EDIT
This can be further minimized to
\documentclass{article}
\RequirePackage{hyperref}%
%%\RequirePackage{hypcap}%
\gdef\breakurldefns{%
%\if@pdflatex\else%
\RequirePackage[hyphenbreaks]{breakurl}%
\let\href\burlalt%
%\fi
}%
\breakurldefns%
% \bgroup
\usepackage{hyperref}
\begin{document}
. \href{}{\texttt{}}
\end{document}
LaTeX2e <2022-11-01> patch level 1
)\makeatletter
for\if@pdflatex
\documentclass{article} \usepackage{hyperref} \usepackage[hyphenbreaks]{breakurl} \begin{document} . \burlalt{}{\texttt{}} \end{document}