Closed muzimuzhi closed 4 years ago
宏包版本:gbt7714 v1.1.1 标注样式:所有
gbt7714 在与修改了 _ catcode 的宏包(例如 newtxmath)共用时,一定条件下 \url 里直接使用 _ 会报 Double subscript 的错误。
gbt7714
_
newtxmath
\url
最小例
\documentclass{article} \usepackage{newtxmath} \usepackage{gbt7714} \begin{document} \url{https://www.abc.com/xx-_xx} \end{document}
报错信息
! Double subscript. \s@@b@ #1->\sb {\futurelet \next \sb@ #1} l.6 \url{https://www.abc.com/xx-_xx} I treat `x_1_2' essentially like `x_1{}_2'.
让 \UrlBreaks 包含 \do\_ 后,问题修复。目前,
\UrlBreaks
\do\_
url
补充
\def\UrlBreaks
\g@addto@macro\UrlBreaks
xurl
https://github.com/CTeX-org/gbt7714-bibtex-style/blob/1b3ee5c529516c788a9d51538ab5f0a52f47abd4/gbt7714.dtx#L645-L652
这……确实会有问题,我当时是直接 copy xurl 的代码
编译环境
宏包版本:gbt7714 v1.1.1 标注样式:所有
描述问题
gbt7714
在与修改了_
catcode 的宏包(例如newtxmath
)共用时,一定条件下\url
里直接使用_
会报 Double subscript 的错误。最小例
报错信息
已作的尝试
让
\UrlBreaks
包含\do\_
后,问题修复。目前,url
宏包中\UrlBreaks
非空且包含\do\_
gbt7714
重定义\UrlBreaks
后,其中不再包含\do\_
补充
url
包定义的\UrlBreaks
非空,可以考虑改重定义\def\UrlBreaks
为 append list\g@addto@macro\UrlBreaks
gbt7714
的这部分代码源自xurl
包,待问题和修复方式确认后, 也应报给xurl
的维护者相关源码段
https://github.com/CTeX-org/gbt7714-bibtex-style/blob/1b3ee5c529516c788a9d51538ab5f0a52f47abd4/gbt7714.dtx#L645-L652