mohuangrui / ucasthesis

LaTeX Thesis Template for the University of Chinese Academy of Sciences

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

新版在引用多个连续的参考文献时的显示问题

gsp2014 opened this issue · comments

师兄好,最新版本在引用多个连续的参考文献时,正文显示形如“[53--56]”(中间两个“-”),而不是之前的“[53–56]”(中间一个“–”)这种形式。怎么变回之前的这种形式呢?求助。

@zepinglee

请问如下问题该怎么解决:

使用

    \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]”处出现问题,而文本内的 - 显示正常。不知问题出在了哪里?

gbt7714sty 文件 里对 natbib 的一些内部命令做了一些修改,似乎你没有把这些放到你的模板里。

https://github.com/CTeX-org/gbt7714-bibtex-style/blob/1b3ee5c529516c788a9d51538ab5f0a52f47abd4/gbt7714.dtx#L616

@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 的内容整合到你的模板里

@zepinglee

  1. 我该用哪一个 branch?似乎 ucas 对应的 branch 没有更新。而且似乎忘记了为什么要为 ucas 单独开 branch 了。。。

  2. 原问题是 [5-8] 变成了 [5--8],现在已经成功修复为 [5-8]。因为 [5-8] 都是数字,用 en dash 是不对的吗?

  3. 那个放 pdf 导致 size 过大确实是个问题,是更新次数太多了。。。

  4. @gsp2014 确实又发现了一个问题,就是在 「super」模式下,引用同一著者在同一年份出版的多篇文献时,比如 \citet{yuan2012lana, yuan2012lanb, yuan2012lanc} 作为分隔符的逗号不是上标。请见下图:

Screen Shot 2019-04-24 at 8 11 16 AM

@zepinglee 感谢帮忙~

  1. 还是 ucas branch,确实没有更新;
  2. 国标用的是 hyphen;
  3. 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