改变编号定义的格式?

改变编号定义的格式?

我想显示语句“Def 1.1.1-”而不是“Def 1.1.1”。我使用Texlive 2017和以下代码:

 \documentclass{report}
    \usepackage{amsthm}
    %\usepackage{hyperref}
    \makeatletter
    \def\@thm#1#2#3{%
        \ifhmode\unskip\unskip\par\fi
        \normalfont
        \trivlist
        \let\thmheadnl\relax
        \let\thm@swap\@gobble
        \thm@notefont{\fontseries\mddefault\upshape}%
        \thm@headpunct{-}
        \thm@headsep 5\p@ plus\p@ minus\p@\relax
        \thm@space@setup
        #1% style overrides
        \@topsep \thm@preskip              
        \@topsepadd \thm@postskip      
        \def\@tempa{#2}\ifx\@empty\@tempa
        \def\@tempa{\@oparg{\@begintheorem{#3}{}}[]}%
        \else
        \refstepcounter{#2}%
        \def\@tempa{\@oparg{\@begintheorem{#3}{\csname the#2\endcsname}}[]}%
        \fi
        \@tempa
    }
    \makeatother
    \theoremstyle{definition}
    \newtheorem{definition}{ِDef}[section]
    \begin{document}
    \chapter{TEST}
    \section{Introduction}
    \begin{definition}
        content...
    \end{definition}
    \end{document}

但是当我使用 hyperref 包时,输出是“Def 1.1.1”。你能帮助我吗?

答案1

我建议使用一种特殊的定理样式,而不是明确地改变\@thm所有定理定义的基本宏,这意味着任何定理都将具​​有相同的设置,除非\theoremstyle后来明确改变。

随意改变间距,给出的3pt值只是amsthm手册中的通常值。

-然而,我发现定理数字末尾的尾随很奇怪,但这只是我的看法。

\documentclass{report}

\usepackage{amsthm}
\usepackage{hyperref}

\newtheoremstyle{dashed}{3pt}{3pt}{\fontseries\mddefault\upshape}{}{\bfseries\itshape}{-}{3pt}{}

\theoremstyle{dashed}
\newtheorem{definition}{ِDef}[section]

\begin{document}
\chapter{TEST}
\section{Introduction}
\begin{definition}
    content...
\end{definition}
\end{document}

在此处输入图片描述

答案2

这是为该软件包的用户提供的解决方案ntheorem

\documentclass{report}
\usepackage{amsmath}
\usepackage[amsmath]{ntheorem}
\usepackage[colorlinks]{hyperref} % optional
\usepackage[nameinlink]{cleveref} % optional

\theoremstyle{plain}
\theoremseparator{-} 
\theorembodyfont{\upshape}
\newtheorem{definition}{ِDef}[section]
\crefname{definition}{definition}{definitions}

\begin{document}
\setcounter{chapter}{1} % just for this example
\setcounter{section}{1}

\begin{definition} \label{def:dash}
    content...
\end{definition}
A cross-reference to \cref{def:dash}.
\end{document}

相关内容