如何让 `\href` 中的 `\texttt` 与 Springer Nature 的 sn-jnl 类一起工作?

如何让 `\href` 中的 `\texttt` 与 Springer Nature 的 sn-jnl 类一起工作?

使用2019/11/18版本Springer 的sn-jnl.cls模板(存档为要点这里),我得到以下信息:

\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{}{}[]

这是怎么回事?我该如何解决这个问题?

编辑

这可以进一步最小化为

\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}

答案1

breakurl 包不应与 pdflatex 一起使用,但为了避免加载它,您必须使用该选项加载该类,pdflatex因为该类有点转储并且不使用现有方法来自动检测输出模式。

\documentclass[pdflatex]{sn-jnl}
\begin{document}

\href{abc}{\texttt{abc}}
\end{document}

答案2

如果你试试

\documentclass{article}
\usepackage{hyperref}
\usepackage[hyphenbreaks]{breakurl}
\begin{document}

. \burlalt{aaaa}{bbb}
\end{document}

你得到

在此处输入图片描述

因此第一个参数是排版,您可以在那里使用字体更改。第二个参数是 URL

相关内容