新版在引用多个连续的参考文献时的显示问题
gsp2014 opened this issue · comments
师兄好,最新版本在引用多个连续的参考文献时,正文显示形如“[53--56]”(中间两个“-”),而不是之前的“[53–56]”(中间一个“–”)这种形式。怎么变回之前的这种形式呢?求助。
请问如下问题该怎么解决:
使用
\IfFontExistsTF{XITS-Regular.otf}{%
\RequirePackage{unicode-math}% unicode font configuration <XITS|STIX2>
\def\boldsymbol#1{\symbf{#1}}% treat obsoleteness
\setmainfont[NFSSFamily=entextrm]{XITS}[
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
]
}
将导致 @gsp2014 所问的问题。测试发现问题出现在
\setmainfont[NFSSFamily=entextrm]{XITS}[
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
]
这一环节。但其仅仅导致参考文献引用如“[53--56]”处出现问题,而文本内的 -
显示正常。不知问题出在了哪里?
gbt7714
的 sty
文件 里对 natbib
的一些内部命令做了一些修改,似乎你没有把这些放到你的模板里。
@zepinglee 嗯嗯,协调有些困难,我在文档里给了你的 gbt7714
的更新链接 :D
@gsp2014 问题已解决且更新,你可以直接在 artratex.sty
更新如下命令部分即可:
\setmainfont[NFSSFamily=entextrm]{XITS}[
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
Ligatures=TeX,
]
\setsansfont[NFSSFamily=entextsf]{XITS}[
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
Ligatures=TeX,
]
\setmonofont[NFSSFamily=entexttt]{XITS}[
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
Ligatures=TeX,
]
\setmathfont{XITSMath-Regular}[
Extension = .otf,
BoldFont = XITSMath-Bold,
Ligatures=TeX,
StylisticSet = 1,
]
\setmathfont{XITSMath-Regular}[
Extension = .otf,
range={cal,bfcal},
Ligatures=TeX,
StylisticSet = 1,
]
\setmathfont{XITSMath-Regular}[
Extension = .otf,
range={scr,bfscr},
Ligatures=TeX,
StylisticSet = 2,
]
\setmathrm{XITSMath-Regular}[
Extension = .otf,
BoldFont = XITSMath-Bold,
Ligatures=TeX,
StylisticSet = 1,
]
\setmathsf{XITSMath-Regular}[
Extension = .otf,
BoldFont = XITSMath-Bold,
Ligatures=TeX,
StylisticSet = 1,
]
\setmathtt{XITSMath-Regular}[
Extension = .otf,
BoldFont = XITSMath-Bold,
Ligatures=TeX,
StylisticSet = 1,
]
即每一项里加了一句:
Ligatures=TeX,
非常感谢O(∩_∩)O
@mohuangrui 另外建议别把 pdf 放进代码里啊,我 clone 一个居然要下载 46 M
还有一个问题,当用\citet引用同一个作者的多篇文章时,例如\citet{paper1,paper2},pdf中显示的中间的逗号不是上标。
@mohuangrui 不对啊,现在还是 en dash,你得把 gbt7714.sty
的内容整合到你的模板里
-
我该用哪一个 branch?似乎 ucas 对应的 branch 没有更新。而且似乎忘记了为什么要为 ucas 单独开 branch 了。。。
-
原问题是 [5-8] 变成了 [5--8],现在已经成功修复为 [5-8]。因为 [5-8] 都是数字,用 en dash 是不对的吗?
-
那个放 pdf 导致 size 过大确实是个问题,是更新次数太多了。。。
-
@gsp2014 确实又发现了一个问题,就是在 「super」模式下,引用同一著者在同一年份出版的多篇文献时,比如
\citet{yuan2012lana, yuan2012lanb, yuan2012lanc}
作为分隔符的逗号不是上标。请见下图:
@zepinglee 感谢帮忙~
- 还是
ucas
branch,确实没有更新; - 国标用的是 hyphen;
natbib
默认的 citation 样式就存在这些问题,我都在gbt7714.sty
里对natbib
的内部命令做了 patch:
https://github.com/CTeX-org/gbt7714-bibtex-style/blob/1b3ee5c529516c788a9d51538ab5f0a52f47abd4/gbt7714.sty#L81
注释见原 dtx 文档。所以你需要把这部分 patch 整合到你的模板里面。
@zepinglee 好的,测试了 patch,发现 “在 「super」模式下,引用同一著者在同一年份出版的多篇文献时,比如 \citet{yuan2012lana, yuan2012lanb, yuan2012lanc} 作为分隔符的逗号不是上标。” 这个问题还在,你那测试结果怎样?
感谢!
@gsp2014 逗号问题已修复,用最新的 artratex.sty 文件即可。
@zepinglee en dash 和 hypthen 的问题就没 patch 了,发现英文标准都是用en dash,加上那个patch实在有些复杂 :D,就这样吧~
谢谢,辛苦师兄了O(∩_∩)O
你的模板应该有判断语言的吧?\if@chinese \patch \fi
就可以啊
@zepinglee 有,只是那个 patch 本身有些长和凌乱,不太想加进去了 :D