我正在使用 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}