更新:采用了新语法,并将包ccref
重命名为crefthe
。\crefthe
现在根据当前语言决定是否将介词传递给所有定冠词,如果自动结果不正常,还有两个手动版本\crefthe-
和\crefthe+
。带星号的版本已保留为“无超链接”版本,正如@gusbrs 在其评论中善意提醒的那样。
该cleveref
软件包提供了出色的交叉引用功能,使用起来非常方便。但是,对于法语、意大利语、西班牙语等语言,\cref
处理定冠词(尤其是冠词缩写)会有些困难。通常,在这种情况下,人们必须考虑切换到手动引用,但在某些情况下,这会造成额外的努力,例如当引用名称应该具有特定的字体或颜色时。
为了稍微改善一下这种情况,我写了一个新的包,名为参考文献(目前已在 CTAN 上提供),它提供了\ccref
的包装版本,\cref
用于处理定冠词(尤其是介词和冠词的缩写)。目前, 有两个版本\ccref
:
\ccref[<prep>]{<labels>}
- 正常形式,将介词传递
<prep>
给引用字符串中的第一个定冠词
- 正常形式,将介词传递
\ccref*[<prep>]{<labels>}
- 带星号的形式,将介词传递
<prep>
给引用字符串中的每个定冠词
- 带星号的形式,将介词传递
原来,之所以有这两个版本,是因为法语中介词通常需要重复几次,而西班牙语中介词只需要在开头使用。
不过现在想想,带星号的版本真的有必要吗?话虽如此,如果语言是固定的,是否有可能同时\ccref
使用 shall 和 两种形式才能得到正确的结果?就我的经验来说,法语我一直使用带星号的形式,同学告诉我西班牙语用普通形式就够了。但其他语言我就不清楚了,在此真诚地向大家征求建议。
如果事实证明每种语言都对应一种形式,那么在下一个版本中我将删除带星号的版本并采用自动检测机制。