自定义证明环境但“缺少 $ 插入”

自定义证明环境但“缺少 $ 插入”

我正在使用 XeLaTeX 和 Overleaf,我想定义一个新的证明环境,如下所示:

\begin{pf} some texts... \end{pf}證明。一些文本...

\begin{pf}[1] some texts... \end{pf}證明一。一些文本...

(中文应该在 中\heiti,这是在ctex包中定义的)

然而,Overleaf 一直说缺少 $ 插入。另外,我发现很多字符缺失了。我不知道我犯了什么错误。

这是我的代码。

\documentclass[12pt, a4paper]{article}
\usepackage[margin=1.2in]{geometry}
\usepackage{amsmath,amsthm,amssymb}
\usepackage{ctex}
\usepackage{fontspec}
\usepackage{zhnumber}

\newcounter{pfnum}
\newenvironment{pf}[2][0]{%
\setcounter{pfnum}{#1}
\ifnum #1=0 \par\noindent\heiti 证明.\hspace{1em}\noindent
\else \par\noindent\heiti 证明\,\zhnum{pfnum}\,.\hspace{1em}\noindent 
\fi
}
{\hfill \qedsymbol}


\begin{document}
\begin{pf}
Test.
\end{pf}

\begin{pf}[1]
$$P(x+1,y)$$. 一二三。
\end{pf}

\begin{proof}
Test.
\end{proof}

\end{document}

在此处输入图片描述

答案1

您定义了pf在可选参数之后有一个强制参数,但您只想要可选参数。

我会使用标准proof,这样你就不会遇到最终的 qed 问题。

\documentclass[12pt, a4paper]{article}
\usepackage[margin=1.2in]{geometry}
\usepackage{amsmath,amsthm,amssymb}
\usepackage{ctex}
\usepackage{fontspec}
\usepackage{zhnumber}

\newcounter{pfnum}
\newenvironment{pf}[1][0]
 {%
  \setcounter{pfnum}{#1}%
  \begin{proof}[\heiti 证明\ifnum#1>0 \,\zhnum{pfnum}\,\fi]
 }
 {\end{proof}}


\begin{document}
\begin{pf}
\[
P(x+1,y).
\]
一二三。
\end{pf}

\begin{pf}[1]
\[
P(x+1,y).
\]
一二三。
\end{pf}

\end{document}

在此处输入图片描述

永远不要$$在文档主体中使用 LaTeX。

答案2

\newenvironment{pf}[1][0]{%
\setcounter{pfnum}{#1}
\ifnum #1=0 \par\noindent\heiti 证明.\hspace{1em}\noindent
\else \par\noindent\heiti 证明\,\zhnum{pfnum}\,.\hspace{1em}\noindent 
\fi
}
{\hfill \qedsymbol}

相关内容