作者:慕子
链接:https://www.zhihu.com/question/552513350/answer/2667824611
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
把 \newtcolorbox{wwtheorem}[3][]{...} 里的
step and label={tcbthm}{#3},改成step=tcbthm, IfEmptyF={#3}{label={#3}},- 注意,键
IfEmptyF是tcolorboxv5.1.0 (2022-06-22) 新加入的 - 两处
{\bf \Theorem\ \thetcbthm.~#2}改成{\bf \Theorem\ \thetcbthm.\ifstrempty{#2}{}{~#2}}
[theorem](https://www.zhihu.com/search?q=theorem&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A2667824611%7D) 环境的用法
- 无标题、无标签
\begin{theorem} ... \end{theorem} - 有标题、无标签
\begin{theorem}[<title>] ... \end{theorem} - 无标题、有标签
\begin{theorem}[][<label>] ... \end{theorem} - 有标题、有标签
\begin{theorem}[<title>][<label>] ... \end{theorem}
辅助的修改(不一定全),
\newcommand{\thmref}[1]{...}里,把\ref{#1}改成\ref*{#1},避免超链接嵌套- 把
\begin{theorem}{理想的判定定理}改成\begin{theorem}[理想的判定定理], 可能是输入错误
其他建议(一定不全)
- 补充例子时,建议优先编辑问题,而不是发一个回答。我不清楚是不是有限制了不让用户编辑自己提的非热门问题……
- 不要用
\bf了(可能要反馈给「模板」作者,下同) \thmref的定义里,\!\,\,加加减减,可以考虑直接手动写了- 注意空格,比如
theorem环境定义里,{\end{wwtheorem} } \usepackage[most]{tcolorbox}后为什么还要\tcbuselibrary{breakable, skins,theorems}?hyperref加载太早了,当心出问题。
应用上述所有修改(其他建议部分除外),包括以上述介绍的方式为 theorem 环境添加可选标签后,得到的结果

完整例子
% !TeX TS-program = xelatex
\documentclass[twoside]{book}
\usepackage{amssymb}
\usepackage[dvipsnames,svgnames,x11names,table]{xcolor}
\usepackage{ninecolors}
\usepackage{amsmath,amsthm}
\usepackage[colorlinks,linkcolor=red, breaklinks]{hyperref}
\usepackage[most]{tcolorbox}
\tcbuselibrary{breakable, skins,theorems}
\usepackage{tikz}
\usepackage{tkz-fct}
\usetikzlibrary{calc,spy,intersections,fadings,patterns,shapes.arrows,shapes.symbols,tikzmark,shapes.geometric,shadows, shadings,backgrounds,positioning,fit}
\usepackage{graphicx,tabularx}
\definecolor{lightergray}{gray}{0.99}
\definecolor{Rhodamine}{RGB}{239,84,159}
\usepackage{physics}
\usepackage{ctex}
\newcounter{tcbthm}
\numberwithin{tcbthm}{section}
\def\tcbthmautorefname{\bf 定理}
\newcommand{\Theorem}{定理}
\newtcolorbox{wwtheorem}[3][]{
arc=0mm,breakable,enhanced,colback=lightergray,boxrule=0pt,top=8mm,drop fuzzy shadow=black!20!white,
fontupper=\upshape,
step=tcbthm,
IfEmptyF={#3}{label={#3}}, % require tcolorbox 2022-05-25 or newer
% step and label={tcbthm}{#3},
overlay unbroken = {
%标题%更改有效
\node[rectangle, %opacity=.3,
text=white, drop shadow={opacity=.3, shadow xshift=0.1cm},
inner sep=1.5mm,fill=purple5,
anchor=west,inner xsep=7mm,
font=\normalsize] at ([xshift=0cm,yshift=-3.mm]frame.north west)%
{\bf \Theorem\ \thetcbthm.\ifstrempty{#2}{}{~#2}};
\fill[color=purple5,drop shadow={opacity=0.3,shadow xshift=.3pt}] ([yshift=5pt,xshift=-5pt]frame.north west) -- ([xshift=1cm,yshift=5pt]frame.north west)-- ([xshift=-5pt,yshift=-1cm]frame.north west)--cycle;
\fill[color=black!60] ([xshift=-5pt,yshift=-1cm]frame.north west)--([xshift=0cm,yshift=-0.8cm]frame.north west)-- ([xshift=0cm,yshift=-1.2cm]frame.north west)--cycle;
\fill[black!60] ([xshift=1cm,yshift=5pt]frame.north west)-- ([xshift=0.8cm,yshift=0cm]frame.north west)--([xshift=1.2cm,yshift=0cm]frame.north west)--cycle;
%%============================%% End
\fill[purple5,drop shadow={opacity=0.3,shadow xshift=-0.008\linewidth,shadow yshift=0.0016\linewidth}] ([xshift=5pt,yshift=-5pt]frame.south east) -- ([xshift=-0.05\linewidth,yshift=-5pt]frame.south east) -- ([xshift=5pt,yshift=0.05\linewidth]frame.south east)--cycle;
\fill[black!60] ([xshift=-0.05\linewidth,yshift=-5pt]frame.south east) -- ([xshift=-0.04\linewidth,yshift=0pt]frame.south east)-- ([xshift=-0.06\linewidth,yshift=0pt]frame.south east)--cycle;
\fill[black!60] ([xshift=5pt,yshift=0.05\linewidth]frame.south east)-- ([yshift=0.04\linewidth]frame.south east) -- ([yshift=0.06\linewidth]frame.south east)--cycle;
},%上面是实际控制代码,下面的代码仅在跨页分割时生效
overlay first = {%跨页时生效
% \draw[color=gray, line width=0.2pt] (frame.north west)--([xshift=0pt]frame.north east);
%标题 %跨页时生效
\node[rectangle, %opacity=.3,
text=white, drop shadow={opacity=.3, shadow xshift=0.1cm},
inner sep=1.5mm,fill=purple5,
anchor=west,inner xsep=7mm,
font=\normalsize] at ([xshift=0cm,yshift=-3.mm]frame.north west)%
{\bf \Theorem\ \thetcbthm.\ifstrempty{#2}{}{~#2}};
\fill[color=purple5,drop shadow={opacity=0.3,shadow xshift=.3pt}] ([yshift=5pt,xshift=-5pt]frame.north west) -- ([xshift=1cm,yshift=5pt]frame.north west)-- ([xshift=-5pt,yshift=-1cm]frame.north west)--cycle;
\fill[color=black!60] ([xshift=-5pt,yshift=-1cm]frame.north west)--([xshift=0cm,yshift=-0.8cm]frame.north west)-- ([xshift=0cm,yshift=-1.2cm]frame.north west)--cycle;
\fill[black!60] ([xshift=1cm,yshift=5pt]frame.north west)-- ([xshift=0.8cm,yshift=0cm]frame.north west)--([xshift=1.2cm,yshift=0cm]frame.north west)--cycle;
},%保持边缘的变化
overlay last = {%跨页时生效
% \draw[color=gray, line width=0.2pt] (frame.south west)--([xshift=0pt]frame.south east);
%%============================%% End
\fill[purple5,drop shadow={opacity=0.3,shadow xshift=-0.008\linewidth,shadow yshift=0.0016\linewidth}] ([xshift=5pt,yshift=-5pt]frame.south east) -- ([xshift=-0.05\linewidth,yshift=-5pt]frame.south east) -- ([xshift=5pt,yshift=0.05\linewidth]frame.south east)--cycle;
\fill[black!60] ([xshift=-0.05\linewidth,yshift=-5pt]frame.south east) -- ([xshift=-0.04\linewidth,yshift=0pt]frame.south east)-- ([xshift=-0.06\linewidth,yshift=0pt]frame.south east)--cycle;
\fill[black!60] ([xshift=5pt,yshift=0.05\linewidth]frame.south east)-- ([yshift=0.04\linewidth]frame.south east) -- ([yshift=0.06\linewidth]frame.south east)--cycle;
}
#1
}
\NewDocumentEnvironment{theorem}{O{} O{} O{}}{\smallskip\begin{wwtheorem}{#1}{#2}#3}{\end{wwtheorem}}
\newcommand{\lt}{<}
\newcommand{\thmref}[1]{\hyperref[#1]{定理\!\,\,\ref*{#1}}}
\newcommand{\ideal}{\sphericalangle}
\begin{document}
\chapter{环论基础}\label{chap:Ring 1}
\section{环的相关定义以及分类}\label{sec:Ring 1}
\subsection{环的定义以及分类}\label{sec:Ring1.1}
\begin{theorem}[][1]
$\mathbb{Z}_p$是域当且仅当$p$为质数.
\end{theorem}
\begin{theorem}[][2]
任何一个域的特征要么为0, 要么为质数.
\end{theorem}
\subsection{子环和环的理想}\label{sec:Ring1.2}
\begin{theorem}[子环的判定定理][3]
设$R$是一个环, $S$是它的非空子集, 则$S\lt R$当且仅当对任意$a,b\in S$, 有(1) $a-b\in S$; (2) $ab\in S$.
\end{theorem}
\begin{theorem}[理想的判定定理][4]
设$R$是一个环, $I$是它的非空子集, 则$I$是$R$的左(右)理想当且仅当(1) 对于任意$a,b\in I$, 有$a-b\in I$; (2) 对于任意的$r\in R$和$i\in I$, 有$ri\in I$($ir\in I$).
\end{theorem}
\begin{theorem}[][5]
一个环中任意多个左(右)理想的交还是左(右)理想.
\end{theorem}
\section{环的同态定理与扩张}\label{sec:Ring2_1}
\subsection{商环}\label{sec:Ring2_1.1}
\begin{theorem}[][6]
在环$\expval{R,+,\cdot}$上定义等价关系$a\sim b:=a-b\in I$, 则这个等价关系关于环运算成同余关系当且仅当$I$是环$R$的理想.
\end{theorem}
\subsection{环的同态定理}\label{sec:Ring2_1.2}
\begin{theorem}[环同态的性质][7]
设$\phi:R\to S$是环同态, 如果$M\lt R$, $N\lt S$, 则
(1) $\phi[M]\lt\phi[R]\lt S$;
(2) 若$M\ideal R$, 则$\phi[M]\ideal\phi[R]$;
(3) $\phi^{-1}[N]\lt R$;
(4) 若$N\ideal S$, 则$\phi^{-1}[N]\ideal R$.
\end{theorem}
\begin{theorem}[环的同态定理][8]
设$f:R\to S$是环的满同态, $K=\ker f$是同态核, $I$是$R$的包含同态核的理想, 则$R/I\simeq S/f[I]$.
\end{theorem}
\begin{theorem}[环的第二同构定理][9]
如果$I$是环$R$的理想, $S$是环$R$的子环, 则(1) $S+I:=\{s+i\mid i\in I,s\in S\}$是环; (2) $S\cap I$是$S$的理想, $I$是$S+I$的理想; (3)且有环同构$S/(S\cap I)\simeq (S+I)/I$.
\end{theorem}
\begin{theorem}[环的第三同构定理][10]
如果$I$和$J$是环$R$的理想且$I\subseteq J$, 则$I$是$J$的理想且$(R/I)/(J/I)\simeq R/J$.
\end{theorem}
\subsection{环的扩张定理}\label{sec:Ring2_1.3}
\begin{theorem}[环的扩张定理][11]
设$\hat S,R$是环, $\hat S\cap R=\varnothing$且存在一个环的单同态$\hat\phi:\hat S\hookrightarrow R$, 则存在环$S$和环同构$\phi:S\simeq R$使得$S$是$\hat S$的环扩张, 且$\phi|_{\hat S}=\hat\phi$.
\end{theorem}
\section{引用定理}
\begin{center}
\begin{tabular}{c|cc}
\hline
显示 & 真值 & 所在位置\\
\hline
\thmref{1}&定理1.1.1& subsection 1.1.1 \\
\thmref{2}&定理1.1.2& subsection 1.1.1 \\
\thmref{3}&定理1.1.3& subsection 1.1.2 \\
\thmref{4}&定理1.1.4& subsection 1.1.2 \\
\thmref{5}&定理1.1.5& subsection 1.1.2 \\
\thmref{6}&定理1.2.1& subsection 1.2.1 \\
\thmref{7}&定理1.2.2& subsection 1.2.2 \\
\thmref{8}&定理1.2.3& subsection 1.2.2 \\
\thmref{9}&定理1.2.4& subsection 1.2.2 \\
\thmref{10}&定理1.2.5& subsection 1.2.2 \\
\thmref{11}&定理1.2.6& subsection 1.2.3 \\
\hline
\end{tabular}
\end{center}
\end{document}



问 LaTeX中\ref显示的计数器数值与其实际数值(点击链接后对应位置显示的数值)不对应是为什么?