tuna / thuthesis

LaTeX Thesis Template for Tsinghua University
https://www.ctan.org/pkg/thuthesis
LaTeX Project Public License v1.3c
4.58k stars 1.08k forks source link

请求将一些前缀加入`ref`命令的标签labelformat中 #932

Closed vincent-skywalker closed 7 months ago

vincent-skywalker commented 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}这样的标签。

zepinglee commented 7 months ago

这样会破坏兼容性,而且跟标准 LaTeX 的用法也不一致。当然你可以自己这样修改,但我不建议在模板中修改。

通常的做法是使用 hyperref\autoref 或者 cleveref 宏包。

vincent-skywalker commented 7 months ago

确实,试了一下cleveref,舒服多了,不用自己定义if判断是否是附录,感谢!

顺便求问一下,autoref有可能实现第 1 章这样的效果吗?

zepinglee commented 7 months ago

可以,参考 https://github.com/ustctug/ustcthesis/blob/3900c0d711c01972ccf57fedb14911d1d7dc711b/ustcthesis.cls#L3232-L3250

vincent-skywalker commented 7 months ago

多谢!orz