|
kuing
发表于 2022-3-25 01:22
回复 8# abababa
链接1是说 ntheorem 无设置 \@currentlabelname,所以 \nameref 就失败鸟。
根据链接1的方法,想出如下方法,未必很好,估计也不算“自然”,姑且一试:- \documentclass[a4paper]{book}
- % 使用到的包
- \usepackage{amsmath}
- % 定理环境
- \usepackage[amsmath, thmmarks]{ntheorem}
- \makeatletter
- \def\@setname#1[#2]{\begin{#1}[#2]\def\@currentlabelname{#2}}
- \newcommand\setname[1]{\@ifnextchar[{\@setname{#1}}{\begin{#1}}}
- \makeatother
- \newtheorem{tmpthm}{定理}[section]
- \newcommand\tmpthmautorefname{定理}
- \newenvironment{theorem}{\setname{tmpthm}}{\end{tmpthm}}
- %引理类似:
- \newtheorem{tmplem}{引理}[section]
- \newcommand\tmplemautorefname{引理}
- \newenvironment{lemma}{\setname{tmplem}}{\end{tmplem}}
- \usepackage[pdfencoding=auto,psdextra,colorlinks,linkcolor=red,anchorcolor=blue,citecolor=blue]{hyperref}
- \usepackage{cleveref}
- % 字体
- \usepackage[slantfont,boldfont]{xeCJK}
- %\setCJKmainfont{WenQuanYi Micro Hei}
- \begin{document}
- \chapter{第一章}
- \section{第一节}
- \begin{theorem}[Minkowski 不等式]\label{thm:01:01:01}
- Minkowski 不等式
- \end{theorem}
- 根据\autoref{thm:01:01:01}有:
- 根据\nameref{thm:01:01:01}有:
- \begin{lemma}[XXX不等式]\label{lem:01:01:01}
- blabla
- \end{lemma}
- 根据\autoref{lem:01:01:01}有:
- 根据\nameref{lem:01:01:01}有:
- \end{document}
复制代码 PS、我注释掉了 \setCJKmainfont{WenQuanYi Micro Hei} 是因为我这里没这字体。 |
|