我有以下\definition
命令/定理(我不太了解 LaTeX):
\newtheoremstyle{definition}
{0.8cm}
{0.8cm}
{}
{0.4cm}
{\bfseries}
{.}
{0.4cm}
{}
\theoremstyle{definition} \newtheorem{definition}{Definition}[section]
这会以我喜欢的方式产生定义,带有编号等,但我想要一个\definition*
没有任何编号的带星号的版本。到目前为止,我尝试过的最好的方法是将最后一行更改为(并在\makeatletter
和内换行\makeatother
):
\theoremstyle{definition} \newtheorem{definition}{Definition}\@ifstar{[section]}{}
因为我见过有人在其他命令中做类似的事情(我不知道这一切是如何工作的,LaTeX 中的“编程”语法对我来说非常混乱)。但是,无论如何,这会在定义中产生定义编号,因此它会为第一个定义打印“定义 1。”,为第二个定义打印“定义 2。”,等等。
我遇到的另一个问题是,我(喜欢)这样写:
\definition{%
A \emph{\textbf{heterogeneous system}} is one that contains two or more co-
existent phases.
}{\label{definition:heterogeneous-system}}
但标签似乎不存在。有没有办法让该语法与之前定义定义的方式兼容?还是我必须强制使用该\begin
\end
语法?如果是后者,我该如何制作带星号的版本?
提前致谢。
编辑:复制粘贴材料:
\documentclass[a4paper,3.3mm]{article}
\usepackage{amsthm}
\newtheoremstyle{definition}
{0.8cm}
{0.8cm}
{}
{0.4cm}
{\bfseries}
{.}
{0.4cm}
{}
\theoremstyle{definition} \newtheorem{definition}{Definition}[section]
\begin{document}
\section{Section number one}
\definition{%
Some definition, has numbering 1.1.
}{\label{definition:1}}
\definition*{%
Some other definition, should have no numbering at all.
}{\label{definition:2}}
\end{document}
我还希望能够引用定义,并让其显示编号(如果有)或其他内容(如果没有)(最好是可自定义的超链接)。但是,这是可选的,因此
\cite{definition:1}
只需打印1.1.
(使用通常的超链接)并\cite{definition:2}[text]
打印text
指向定义的超链接。
答案1
你误用了命令。\newtheorem{definition}{Definition}
你正在定义一个环境。存在的事实\definition
只是为了实施的原因,而且不是正如您所相信的,一个带有两个参数的命令。
\documentclass[a4paper]{article}
\usepackage{amsthm}
\newtheoremstyle{definition}
{0.8cm}
{0.8cm}
{}
{0.4cm}
{\bfseries}
{.}
{0.4cm}
{}
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
\newtheorem*{definition*}{Definition}
\begin{document}
\section{Section number one}
\begin{definition}\label{definition:1}
Some definition, has numbering 1.1.
\end{definition}
\begin{definition*}
Some other definition, should have no numbering at all.
\end{definition*}
\end{document}
只要看一下下面的例子就能知道你的语法发生了什么。
\documentclass[a4paper]{article}
\usepackage{amsthm}
\newtheorem{theorem}{Theorem}[section]
\begin{document}
\section{Section number one}
\theorem{A theorem}{\label{x}}
Some text after the theorem.
\end{document}