Closed vincent-skywalker closed 7 months ago
我自己目前尝试了使用labelformat是可行的。
\def\gobbleminus#1{\ifx-#1\else#1\fi} \def\IsInteger#1{% TT\fi \ifcat_\ifnum9<1\gobbleminus#1 _\else A\fi } \labelformat{chapter}{\if\IsInteger{#1}{第 {#1} 章}\else{附录 {#1}}\fi} \labelformat{table}{表~{#1}} \labelformat{figure}{图~{#1}} \labelformat{equation}{式~({#1})}
这样\ref命令可以直接生成第 {#1} 章、附录 {#1}这样的标签。
第 {#1} 章
附录 {#1}
这样会破坏兼容性,而且跟标准 LaTeX 的用法也不一致。当然你可以自己这样修改,但我不建议在模板中修改。
通常的做法是使用 hyperref 的 \autoref 或者 cleveref 宏包。
hyperref
\autoref
cleveref
确实,试了一下cleveref,舒服多了,不用自己定义if判断是否是附录,感谢!
顺便求问一下,autoref有可能实现第 1 章这样的效果吗?
autoref
第 1 章
可以,参考 https://github.com/ustctug/ustcthesis/blob/3900c0d711c01972ccf57fedb14911d1d7dc711b/ustcthesis.cls#L3232-L3250。
多谢!orz
我自己目前尝试了使用labelformat是可行的。
这样\ref命令可以直接生成
第 {#1} 章
、附录 {#1}
这样的标签。