带星号的 \ccref 版本真的有必要吗?

带星号的 \ccref 版本真的有必要吗?

更新:采用了新语法,并将包ccref重命名为crefthe\crefthe现在根据当前语言决定是否将介词传递给所有定冠词,如果自动结果不正常,还有两个手动版本\crefthe-\crefthe+。带星号的版本已保留为“无超链接”版本,正如@gusbrs 在其评论中善意提醒的那样。


cleveref软件包提供了出色的交叉引用功能,使用起来非常方便。但是,对于法语、意大利语、西班牙语等语言,\cref处理定冠词(尤其是冠词缩写)会有些困难。通常,在这种情况下,人们必须考虑切换到手动引用,但在某些情况下,这会造成额外的努力,例如当引用名称应该具有特定的字体或颜色时。

为了稍微改善一下这种情况,我写了一个新的包,名为参考文献(目前已在 CTAN 上提供),它提供了\ccref的包装版本,\cref用于处理定冠词(尤其是介词和冠词的缩写)。目前, 有两个版本\ccref

  1. \ccref[<prep>]{<labels>}
    • 正常形式,将介词传递<prep>给引用字符串中的第一个定冠词
  2. \ccref*[<prep>]{<labels>}
    • 带星号的形式,将介词传递<prep>给引用字符串中的每个定冠词

原来,之所以有这两个版本,是因为法语中介词通常需要重复几次,而西班牙语中介词只需要在开头使用。

不过现在想想,带星号的版本真的有必要吗?话虽如此,如果语言是固定的,是否有可能同时\ccref使用 shall 和 两种形式才能得到正确的结果?就我的经验来说,法语我一直使用带星号的形式,同学告诉我西班牙语用普通形式就够了。但其他语言我就不清楚了,在此真诚地向大家征求建议。

如果事实证明每种语言都对应一种形式,那么在下一个版本中我将删除带星号的版本并采用自动检测机制。

相关内容