如何跳过定理的标题?

如何跳过定理的标题?

我在使用 latex 时遇到了问题:我有一个代码片段,它直接向我打开定理环境,就像我发布的代码一样。当我在“çç1”(这是我编写的符号,用于帮助您找到代码中应该看到的位置,它对代码没有帮助,只是帮助您看到应该查看的位置)并直接传递到“çç2”时,编译开始给我带来许多有关扩展的问题。显然,我被迫给我的定理起个名字,然后必须在“çç1”中写一些东西(如果您将其留空,如果您不在方括号之间写任何东西,代码就不会运行)。

我想要一个代码,当我将 后的方括号留空时\begin{Theorem}[],应该出现的代码就是简单的Theorem 1(或定理的任何数字)。

\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath, mathtools, amsthm, amssymb}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{stmaryrd}
\newcommand\contra{\scalebox{1.1}{$\lightning$}}
% correct
\definecolor{correct}{HTML}{009900}
\newcommand\correct[2]{\ensuremath{\:}{\color{red}{#1}}\ensuremath{\to }{\color{correct}{#2}}\ensuremath{\:}}
\newcommand\green[1]{{\color{correct}{#1}}}
% theorems
\makeatother
\usepackage{thmtools}
\usepackage[framemethod=TikZ]{mdframed}
\mdfsetup{skipabove=1em,skipbelow=0em}

\theoremstyle{definition}

\declaretheoremstyle[
    headfont=\bfseries\sffamily\color{RawSienna!70!black}, bodyfont=\normalfont,
    mdframed={
        linewidth=2pt,
        rightline=false, topline=false, bottomline=false,
        linecolor=RawSienna, backgroundcolor=RawSienna!5,
    }
]{thmredbox}

\declaretheorem[style=thmredbox, name=Theorem]{Teorema}

\begin{document}
\tableofcontents
\chapter{ciao}
ciao

\begin{Teorema}[çç1]\label{teo: ciao}
çç2
\end{Teorema}


\end{document}

答案1

尝试这个补丁:

\documentclass{article}
\usepackage{thmtools}
\usepackage{hyperref}

\usepackage{regexpatch}
\makeatletter
\xpatchcmd\thmt@parsetheoremargs
  {\def\thmt@optarg{##1}}
  {\def\thmt@optarg{##1}\let\thmt@shortoptarg=\thmt@optarg}
  {}{\PatchFailed}
\makeatother

\declaretheorem[name=Theorem]{Teorema}


\begin{document}
\begin{Teorema}
  body
\end{Teorema}

\begin{Teorema}[]
  body
\end{Teorema}

\begin{Teorema}[title]
  body
\end{Teorema}
\end{document}

在此处输入图片描述

相关内容