我尝试使用 \newenvironment 为我的作业制作一个模板。不知何故它产生了错误:
- 缺失数字,视为零。
- 计量单位非法(插入 pt)
每次我想 \begin{env_name}。
我现在的新环境代码如下
\newenvironment{thm}[1]
{
\noindent
\textbf{\color{MidnightBlue}{Theorem} }
\labelsep {\textbf{\color{MidnightBlue}{#1}}}
\\
\itshape
}
{
\vspace * {20 pt}
}
我这样称呼它:
\begin{thm}{3.2}
Theorem
\end{thm}
这些是我使用过的软件包:
\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath,amsthm,amssymb}
\usepackage[dvipsnames]{xcolor}
\usepackage{cmbright}
\usepackage[OT1]{fontenc}
\newcommand{\N}{\mathbb{N}}
\newcommand{\Z}{\mathbb{Z}}
我在网上查找过,也在这里查找过类似的问题,但找不到解决方案
答案1
此处的问题在于您对 的使用\labelsep
,它是长度(或维度)。当按原样在代码中使用它时,它后面应该跟有另一个维度,用于更新它。例如,
\labelsep 10pt
将更新\labelsep
为10pt
(允许可选=
:)\labelsep=10pt
。由于您之后没有提供尺寸/长度,因此 TeX 会抱怨您缺少数字和/或度量单位。
粗略地说,我想你想要类似这样的定义thm
:
\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{lipsum}
\newenvironment{thm}[1]{%
\par\addvspace{0.5\baselineskip}
\noindent
{\color{MidnightBlue}\bfseries Theorem~#1}%
\par\nobreak
\noindent\itshape\ignorespaces
}{%
\par\addvspace{0.5\baselineskip}
}
\begin{document}
\lipsum[1]
\begin{thm}{3.2}
\lipsum[2]
\end{thm}
\lipsum[3]
\end{document}
如果您以这种方式对定理编号进行硬编码,人们只能假设您具体指的是来自不同来源的定理编号。如果您正在创建这些定理并且需要按顺序编号,请使用提供的功能amsthm
(您已在加载)。