翻译一本用LaTeX写成的斯洛文尼亚语书籍成英语

在征得作者许可的情况下,我们将演示如何将Milan Mitrović所著的书籍《欧几里得平面几何》(Euclidean Plane Geometry)从斯洛文尼亚语翻译成英语,且不修改任何LaTeX命令。

为实现此目的,我们将首先将书籍分割成大约一页长的块,然后将每个块翻译成英语,最后将它们重新缝合在一起。

1. 读取数据

from openai import OpenAI
import tiktoken
client = OpenAI()

# OpenAI tiktoken 分词器:https://github.com/openai/tiktoken
# 我们用它来计算文本中的词元数量
tokenizer = tiktoken.get_encoding("o200k_base")

with open("data/geometry_slovenian.tex", "r") as f:
    text = f.read()

1.1 计算每个块的词元数量

chunks = text.split('\n\n')
ntokens = []
for chunk in chunks:
    ntokens.append(len(tokenizer.encode(chunk)))
print("最大块的大小:", max(ntokens))
print("块的数量:", len(chunks))
最大块的大小:  1211
块的数量:  5877

事实证明,在这种情况下,双换行符是一个好的分隔符,这样就不会打断文本的流畅性。此外,没有单个块的大小超过1211个词元。我们将使用的模型是gpt-4o,其限制为16,384个词元,因此我们无需担心进一步细分块。

我们将把较短的块组合成大约15000个词元的块,以提高文本的连贯性,并减少文本中断的频率。

def group_chunks(chunks, ntokens, max_len=15000, hard_max_len=16000):
    """
    组合非常短的块,形成大约一页长的块。
    """
    batches = []
    cur_batch = ""
    cur_tokens = 0

    # 迭代块,并将短块组合在一起
    for chunk, ntoken in zip(chunks, ntokens):
        # 丢弃超过硬性最大长度的块
        if ntoken > hard_max_len:
            print(f"警告:块因过长而被丢弃({ntoken} 词元 > {hard_max_len} 词元限制)。预览:'{chunk[:50]}...'")
            continue

        # 如果当前批次有空间,则添加新块
        if cur_tokens + 1 + ntoken <= max_len:
            cur_batch += "\n\n" + chunk
            cur_tokens += 1 + ntoken  # 为两个换行符添加1个词元
        # 否则,记录批次并开始一个新批次
        else:
            batches.append(cur_batch)
            cur_batch = chunk
            cur_tokens = ntoken

    if cur_batch:  # 如果最后一个批次不为空,则添加它
        batches.append(cur_batch)

    return batches


chunks = group_chunks(chunks, ntokens)
len(chunks)
39

请注意,添加一个未翻译和翻译后的第一个命令示例,其中只需要翻译章节名称的内容,有助于获得更一致的结果。

发送给模型的提示的格式包括:

  1. 一个高级指令,要求只翻译文本,而不翻译命令到目标语言。
  2. 一个未翻译的命令示例,其中只需要翻译章节名称的内容。
  3. 要翻译的文本块。
  4. 来自第2点的翻译后的命令示例,展示了模型翻译过程的开头。

预期的输出是翻译后的文本块。

def translate_chunk(chunk, model='gpt-4o',
                    dest_language='English',
                    sample_translation=(
                    r"\poglavje{Osnove Geometrije} \label{osn9Geom}",
                    r"\chapter{The basics of Geometry} \label{osn9Geom}")):
    prompt = f'''只将以下LaTeX文档中的文本翻译成{dest_language}。保持所有LaTeX命令不变

"""
{sample_translation[0]}
{chunk}"""

{sample_translation[1]}
'''
    response = client.chat.completions.create(
        messages=[{"role": "user", "content":prompt}],
        model=model,
        temperature=0,
        top_p=1,
        max_tokens=15000,
    )
    result = response.choices[0].message.content.strip()
    result = result.replace('"""', '') # 删除双引号,因为我们用它们来包围文本
    return result
print(translate_chunk(chunks[2], model='gpt-4o', dest_language='English'))
当然!以下是将LaTeX文档中的文本翻译成英语,并保持所有LaTeX命令不变:

---

\chapter{The basics of Geometry} \label{osn9Geom}
让我们提到,群结构也需要结合律的性质,即 $\mathcal{I}\_1\circ (\mathcal{I}\_2\circ \mathcal{I}\_3)= (\mathcal{I}\_1\circ \mathcal{I}\_2)\circ \mathcal{I}\_3$(对于任意等距变换 $\mathcal{I}\_1$,$\mathcal{I}\_2$,和 $\mathcal{I}\_3$),这在函数组合运算中自动满足。让我们也提到,前一个公理中的 \concept{恒等} \index{恒等} $\mathcal{E}$ 是一个映射,对于平面上的每一点都有 $\mathcal{E}(A)=A$。映射 $\mathcal{I}^{-1}$ 是等距变换 $\mathcal{I}$ 的 \concept{逆映射},如果 $\mathcal{I}^{-1}\circ \mathcal{I} =\mathcal{I}\circ\mathcal{I}^{-1}=\mathcal{E}$。根据前一个公理,每个等距变换的恒等映射和逆映射也是等距变换。

让我们证明全等公理的第一个推论。首先,我们将考虑等距变换的以下性质。

\begin{theorem} \label{izrekIzoB} 等距变换将直线映射到直线,将线段映射到线段,将射线映射到射线,将半平面映射到半平面,将角映射到角,将n边形映射到n边形。
\end{theorem}

\textbf{\textit{证明。}}
根据公理 \ref{aksIII1},等距变换保持 $\mathcal{B}$ 关系。因此,线段 $AB$ 的所有点在等距变换 $I$ 下被映射到位于线段 $A'B'$ 上的点,其中 $A'=\mathcal{I}(A)$ 和 $B'=\mathcal{I}(B)$。由于逆映射 $\mathcal{I}^{-1}$ 也是一个等距变换(公理 \ref{aksIII4}),线段 $A'B'$ 的每个点都是线段 $AB$ 上某个点被映射的结果。因此,线段 $AB$ 被等距变换 $\mathcal{I}$ 映射到线段 $A'B'$。

定理中剩余的图形也使用 $\mathcal{B}$ 关系定义,因此证明与线段的证明类似。
\qed

从前一个定理的证明中,可以得出等距变换将线段 $AB$ 的端点映射到其像 $A'B'$ 的端点。类似地,射线的起点被映射到射线的起点,半平面的边缘被映射到半平面的边缘,角的顶点被映射到角的顶点,多边形的顶点被映射到多边形的顶点。

等距变换被定义为保持点对全等的双射映射。对于全等的点对,是否存在一个等距变换将第一对映射到第二对?让我们用以下定理来回答。

\begin{theorem} \label{izrekAB} 如果 $(A,B)\cong (A',B')$,则存在一个等距变换 $\mathcal{I}$,它将点 $A$ 和 $B$ 映射到点 $A'$ 和 $B'$,即:
$$\mathcal{I}: A, B\mapsto A',B'.$$
\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.7.pic}
\caption{} \label{sl.aks.2.3.7.pic}
\end{figure}

\textbf{\textit{证明。}}
设 $C$ 为不在线 $AB$ 上的点,设 $C'$ 为不在线 $A'B'$ 上的点(图 \ref{sl.aks.2.3.7.pic})。根据公理 \ref{aksIII2},存在一个唯一的等距变换 $\mathcal{I}$,它将点 $A$ 映射到点 $A'$,将射线 $AB$ 映射到射线 $A'B'$,将半平面 $ABC$ 映射到半平面 $A'B'C'$。由于假设 $(A,B)\cong (A',B')$,根据同一公理 \ref{aksIII2},可得出 $\mathcal{I}(B)=B'$。
\qed

以下定理的证明类似,稍后将以不同形式呈现为关于三角形全等的第一个定理。

\begin{theorem} \label{IizrekABC} 设 $(A,B,C)$ 和 $(A',B',C')$ 为非共线点三元组,使得 $$(A,B,C)\cong (A',B',C'),$$ 则存在一个唯一的等距变换 $\mathcal{I}$,它将点 $A$,$B$,和 $C$ 映射到点 $A'$,$B'$,和 $C'$,即:
$$\mathcal{I}: A, B,C\mapsto A',B',C'.$$

\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.5.pic}
\caption{} \label{sl.aks.2.3.5.pic}
\end{figure}

\textbf{\textit{证明。}}
根据公理 \ref{aksIII2},存在一个唯一的等距变换 $\mathcal{I}$,它将点 $A$ 映射到点 $A'$,将射线 $AB$ 映射到射线 $A'B'$,将半平面 $ABC$ 映射到半平面 $A'B'C'$(图 \ref{sl.aks.2.3.5.pic})。由于假设 $(A,B,C)\cong (A',B',C')$,根据同一公理 \ref{aksIII2},可得出 $\mathcal{I}(B)=B'$ 和 $\mathcal{I}(C)=C'$。

有必要证明 $\mathcal{I}$ 是唯一这样的等距变换。假设存在一个满足 $\mathcal{\widehat{I}}: A, B,C\mapsto A',B',C'$ 的等距变换 $\mathcal{\widehat{I}}$。根据定理 \ref{izrekIzoB},等距变换 $\mathcal{\widehat{I}}$ 也将射线 $AB$ 映射到射线 $A'B'$,并将半平面 $ABC$ 映射到半平面 $A'B'C'$。根据公理 \ref{aksIII2},可得出 $\mathcal{\widehat{I}}=\mathcal{I}$。
\qed

直接推论是以下定理。

\begin{theorem} \label{IizrekABCident} 设 $A$, $B$,和 $C$ 为三个非共线点,则恒等映射 $\mathcal{E}$ 是唯一将点 $A$, $B$,和 $C$ 映射到相同点 $A$, $B$,和 $C$ 的等距变换。
\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.5a.pic}
\caption{} \label{sl.aks.2.3.5a.pic}
\end{figure}

\textbf{\textit{证明。}} (图 \ref{sl.aks.2.3.5a.pic})

首先,恒等映射 $\mathcal{E}$,它将点 $A$, $B$,和 $C$ 映射到点 $A$, $B$,和 $C$,根据公理 \ref{aksIII4} 是一个等距变换。根据前一个定理 \ref{IizrekABC},可得出只有一个这样的等距变换。
\qed

对于点 $A$,我们说它是等距变换 $\mathcal{I}$ 的 \index{点!固定} \concept{固定点}(或 \index{点!不动} \concept{不动点}),如果 $\mathcal{I}(A)=A$。前一个定理告诉我们,唯一具有三个非共线固定点的等距变换是恒等变换。

我们将在第 \ref{pogIZO} 章中更详细地讨论等距变换,但目前,我们将主要使用它们来介绍图形的全等。两个图形 $\Phi$ 和 $\Phi'$ 被称为 \index{图形!全等} \concept{全等}(记作 $\Phi\cong \Phi'$),如果存在一个等距变换 $I$ 将图形 $\Phi$ 映射到图形 $\Phi'$。

公理 \ref{aksIII4} 的直接推论是以下定理。

\begin{theorem}
图形的全等是一个等价关系。 \label{sklRelEkv}
\end{theorem}

\textbf{\textit{证明。}}

\textit{自反性。} 对于每个图形 $\Phi$,都有 $\Phi \cong \Phi$,因为恒等映射 $\mathcal{E}$ 是一个等距变换(公理 \ref{aksIII4})并且 $\mathcal{E}:\Phi\rightarrow\Phi$。

\textit{对称性。} 从 $\Phi \cong \Phi\_1$,可得出存在一个等距变换 $\mathcal{I}$ 将图形 $\Phi$ 映射到图形 $\Phi\_1$。根据公理 \ref{aksIII4},逆映射 $\mathcal{I}^{-1}$ 是一个等距变换,它将图形 $\Phi\_1$ 映射到图形 $\Phi$,所以 $\Phi\_1 \cong \Phi$。

\textit{传递性。} 从 $\Phi \cong \Phi\_1$ 和 $\Phi\_1 \cong \Phi\_2$,可得出存在等距变换 $\mathcal{I}$ 和 $\mathcal{I}'$ 满足 $\mathcal{I}:\Phi\rightarrow\Phi\_1$ 和 $\mathcal{I}':\Phi\_1\rightarrow\Phi\_2$。那么组合 $\mathcal{I}'\circ\mathcal{I}$,根据公理 \ref{aksIII4} 是一个等距变换,它将图形 $\Phi$ 映射到图形 $\Phi\_2$,所以 $\Phi \cong \Phi\_2$。
\qed

图形全等的概念也适用于线段。直观地说,我们将线段的全等与点对的全等联系起来。现在我们将证明这两种关系之间的等价性。

\begin{theorem} \label{izrek(A,B)} $AB \cong A'B' \Leftrightarrow (A,B)\cong (A',B')$
\end{theorem}

\textbf{\textit{证明。}}

($\Rightarrow$) 如果 $(A,B)\cong (A',B')$,根据定理 \ref{izrekAB},存在一个等距变换 $\mathcal{I}$ 将点 $A$ 和 $B$ 映射到点 $A'$ 和 $B'$。根据定理 \ref{izrekIzoB},可得出等距变换 $\mathcal{I}$ 将线段 $AB$ 映射到线段 $A'B'$,即 $AB \cong A'B'$。

($\Leftarrow$) 如果 $AB \cong A'B'$,存在一个等距变换 $\mathcal{I}$ 将线段 $AB$ 映射到线段 $A'B'$。根据定理 \ref{izrekIzoB} 的推论,线段的端点被映射到线段的端点。这意味着要么 $\mathcal{I}:A,B\mapsto A',B'$,要么 $\mathcal{I}:A,B\mapsto B',A'$。从第一个关系可得出 $(A,B)\cong (A',B')$,从第二个关系可得出 $(A,B)\cong (B',A')$。然而,即使从第二种情况,我们也得到 $(A,B)\cong (A',B')$,这是公理 \ref{aksIII3} 和 \ref{aksIII4} 的推论。
\qed

由于前一个定理,我们将始终写 $AB\cong A'B'$ 而不是关系 $(A,B)\cong (A',B')$。

\begin{theorem} \label{ABnaPoltrakCX}
对于每条线段 $AB$ 和每个射线 $CX$,都存在唯一一个点 $D$ 在射线 $CX$ 上,使得 $AB\cong CD$ 成立。
\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.5b.pic}
\caption{} \label{sl.aks.2.3.5b.pic}
\end{figure}

\textbf{\textit{证明。}} 设 $P$ 为不在线 $AB$ 上的点,设 $Q$ 为不在线 $CX$ 上的点(图 \ref{sl.aks.2.3.5b.pic})。根据公理 \ref{aksIII2},存在一个唯一的等距变换 $\mathcal{I}$,它将点 $A$ 映射到点 $C$,将射线 $AB$ 映射到射线 $CX$,将半平面 $ABP$ 映射到半平面 $CXQ$。设 $D=\mathcal{I}(C)$,则 $AB \cong CD$。

假设在射线 $CX$ 上还存在另一个点 $\widehat{D}$,使得 $AB \cong C\widehat{D}$。由于射线 $CX$ 和 $CD$ 重合,并且等距变换 $\mathcal{I}$ 将点 $A$ 映射到点 $C$,将射线 $AB$ 映射到射线 $CD$,将半平面 $ABP$ 映射到半平面 $CDQ$,根据公理 \ref{aksIII2},可得出 $\mathcal{I}(C)=\widehat{D}$,即 $\widehat{D}=D$。
\qed

\begin{theorem} \label{izomEnaC'} 设 $A$, $B$, $C$ 为三个非共线点,且 $A'$,$B'$ 为半平面 $\pi$ 边缘上的点,使得 $AB \cong A'B'$。则在半平面 $\pi$ 中存在唯一一个点 $C'$,使得 $AC \cong A'C'$ 且 $BC \cong B'C'$。
\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.11a.pic}
\caption{} \label{sl.aks.2.3.11a.pic}
\end{figure}

\textbf{\textit{证明。}} (图 \ref{sl.aks.2.3.11a.pic})

根据公理 \ref{aksIII2},存在一个唯一的等距变换 $\mathcal{I}$,它将点 $A$ 映射到点 $A'$,将射线 $AB$ 映射到射线 $A'B'$,将半平面 $ABC$ 映射到半平面 $\pi$,并且 $\mathcal{I}(B)=B'$。设 $C'=\mathcal{I}(C)$,则 $AC \cong A'C'$ 且 $BC \cong B'C'$。假设存在这样一个点 $\widehat{C}'$,它位于半平面 $\pi$ 中,并满足 $AC \cong A'\widehat{C}'$ 和 $BC \cong B'\widehat{C}'$。由于 $AB \cong A'B'$,根据定理 \ref{IizrekABC},存在一个唯一的等距变换 $\mathcal{\widehat{I}}$,它将点 $A$, $B$,和 $C$ 映射到点 $A'$,$B'$,和 $\widehat{C}'$。然而,它也将射线 $AB$ 映射到射线 $A'B'$,并将半平面 $ABC$ 映射到半平面 $A'B'\widehat{C}'=\pi$。根据公理 \ref{aksIII2},$\mathcal{\widehat{I}}=\mathcal{I}$,因此 $\widehat{C}'=\mathcal{\widehat{I}}(C)=\mathcal{I}(C)=C'$。
\qed

\begin{theorem} \label{izoABAB} 如果 $\mathcal{I}$ 是一个等距变换,它将点 $A$ 和 $B$ 映射到相同的点 $A$ 和 $B$(即 $\mathcal{I}(A)=A$ 且 $\mathcal{I}(B)=B$),那么对于直线 $AB$ 上的每个点 $X$(即 $\mathcal{I}(X)=X$),这也成立。
\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.8.pic}
\caption{} \label{sl.aks.2.3.8.pic}
\end{figure}

\textbf{\textit{证明。}} 设 $X$ 为直线 $AB$ 上的任意点。不失一般性,假设点 $X$ 位于射线 $AB$ 上(图 \ref{sl.aks.2.3.8.pic})。让我们证明 $\mathcal{I}(X)=X$。

设 $P$ 为不在线 $AB$ 上的点,设 $P'=\mathcal{I}(P)$。等距变换 $\mathcal{I}$ 将点 $A$ 映射到点 $A$,将射线 $AB$ 映射到射线 $AB$(或射线 $AX$ 到射线 $AX$),并将半平面 $ABP$ 映射到半平面 $ABP'$(或半平面 $AXP$ 到半平面 $AXP'$)。根据公理 \ref{aksIII2},从 $AX\cong AX$,可得出 $\mathcal{I}(X)=X$。
\qed

让我们引入与线段相关的新概念。

我们说线段 $EF$ 是线段 $AB$ 和 $CD$ 的 \index{和!线段的和} \concept{线段的和},记作 $EF=AB+CD$,如果存在线段 $EF$ 上的点 $P$ 使得 $AB \cong EP$ 且 $CD \cong PF$(图 \ref{sl.aks.2.3.9.pic})。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.9.pic}
\caption{} \label{sl.aks.2.3.9.pic}
\end{figure}

线段 $EF$ 是线段 $AB$ 和 $CD$ 的 \index{差!线段的差} \concept{线段的差},记作 $EF=AB-CD$,如果 $AB=EF+CD$(图 \ref{sl.aks.2.3.9.pic})。

以类似的方式,我们也可以定义线段乘以自然数和正有理数。对于线段 $AB$ 和 $CD$,$AB=n\cdot CD$ ($n\in \mathbb{N}$) 如果存在点 $X\_1$, $X\_2$,...,$X\_{n-1}$ 使得 $\mathcal{B}(X\_1,X\_2,\ldots,X\_{n-1})$ 且 $AX\_1 \cong X\_1X\_2 \cong X\_{n-1}B \cong CD$(图 \ref{sl.aks.2.3.10.pic})。在这种情况下,$CD=\frac{1}{n}\cdot AB$。

此时,我们不会正式证明对于每条线段 $PQ$ 和每个自然数 $n$,都存在一条线段 $AB$ 使得 $AB=n\cdot PQ$,以及一条线段 $CD$ 使得 $CD=\frac{1}{n}\cdot PQ$。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.10.pic}
\caption{} \label{sl.aks.2.3.10.pic}
\end{figure}

线段乘以正有理数的方式如下定义。对于 $q=\frac{n}{m} \in \mathbb{Q^+}$,它是:

$$q\cdot AB=\frac{n}{m}\cdot AB = n\cdot\left(\frac{1}{m}\cdot AB\right)$$ 如果对于线段 $AB$ 上的点 $P$,有 $AP=\frac{n}{m}\cdot PB$,我们说点 $P$ 将线段 $AB$ 以 $n:m$ 的 \index{比率} \concept{比率} 分割,我们记作 $AP:PB=n:m$。

线段 $AB$ 比线段 $CD$ \index{关系!线段的顺序关系} \concept{长},记作 $AB>CD$,如果存在线段 $AB$ 上的点 $P\neq B$ 使得 $CD \cong AP$(图 \ref{sl.aks.2.3.11.pic})。在这种情况下,我们也说线段 $CD$ 比线段 $AB$ \concept{短}(记作 $CD<AB$)。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.11.pic}
\caption{} \label{sl.aks.2.3.11.pic}
\end{figure}

不难证明,对于线段 $AB$ 和 $CD$,恰好满足 $AB>CD$,$AB<CD$,或 $AB \cong CD$ 中的一个关系。这是定理 \ref{ABnaPoltrakCX} 的推论。

点 $S$ 是线段 $AB$ 的 \index{中点!线段的中点} \concept{中点(平分线)},如果它位于该线段上且 $AS \cong SB$ 成立(图 \ref{sl.aks.2.3.12.pic})。显然,中点将线段以 $1:1$ 的比率分割。有必要证明这样的点总是存在的。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.12.pic}
\caption{} \label{sl.aks.2.3.12.pic}
\end{figure}

\begin{theorem}
对于每条线段,都存在唯一一个中点。
\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.13.pic}
\caption{} \label{sl.aks.2.3.13.pic}
\end{figure}

\textbf{\textit{证明。}}
设 $AB$ 为一条线段,设 $C$ 为不在线 $AB$ 上的任意点(图 \ref{sl.aks.2.3.13.pic})。设 $\pi$ 为半平面 $ABC$,设 $\pi'$ 为半平面 $\pi$ 的补半平面。根据公理 \ref{aksIII2},存在一个唯一的等距变换 $\mathcal{I}$,它将点 $A$ 映射到点 $B$,将射线 $AB$ 映射到射线 $BA$,并将半平面 $\pi$ 映射到半平面 $\pi'$。从 $AB\cong BA$(公理 \ref{aksIII3} 的推论),可得出 $\mathcal{I}(B)=A$。

设 $C'=\mathcal{I}(C)$,则 $AC \cong B'C'$ 且 $BC \cong A'C'$。由于 $C$ 和 $C'$ 在直线 $AB$ 的两侧,直线 $CC'$ 与直线 $AB$ 相交于某点 $S$。如果 $\widehat{C}=\mathcal{I}(C')$,则 $A'C' \cong B\widehat{C}$ 且 $B'C' \cong A\widehat{C}$。由于 $AC \cong B'C'$ 且 $BC \cong A'C'$,根据定理 \ref{izomEnaC'},$\widehat{C}=C$,即 $\mathcal{I}(C')=C$。因此,等距变换 $\mathcal{I}$ 将直线 $AB$ 和 $CC'$ 映射到自身,所以:

$$\mathcal{I}(S)=\mathcal{I}(AB\cap CC')= \mathcal{I}(AB)\cap \mathcal{I}(CC')= AB\cap CC'=S.$$ 现在,从 $\mathcal{I}:A,S\mapsto B,S$,可得出 $AS\cong SB$。

要证明点 $S$ 确实是线段 $AB$ 的中点,有必要证明点 $S$ 位于线段 $AB$ 上。假设相反。不失一般性,设 $\mathcal{B}(A,B,S)$。然而,在这种情况下,存在射线 $SA$ 上的两个点 $A$ 和 $B$ 使得 $SA\cong SB$,这与定理 \ref{ABnaPoltrakCX} 矛盾。

让我们也证明线段只有一个中点。设 $\widehat{S}\neq S$ 为线段 $AB$ 上的点,且 $A\widehat{S}\cong \widehat{S}B$。根据公理 \ref{aksIII3},可得出 $\mathcal{I}(A\widehat{S})=A\widehat{S}$。这意味着(定理 \ref{izoABAB})对于 $AB$ 上的每个点 $X$,都有 $\mathcal{I}(X)=X$,并且也 $\mathcal{I}(A)=A$,这是不可能的。因此,$\widehat{S}= S$。
\qed

我们说点 $A$ 相对于点 $S$ 与点 $B$ \index{对称!关于点对称} \concept{对称},如果 $S$ 是线段 $AB$ 的中点。关于点的对称(所谓的中心反射)将在第 \ref{odd6SredZrc} 节中更详细地讨论。

现在我们将引入与角相关的概念和性质,这些概念和性质类似于我们为线段引入的。如果定理 \ref{ABnaPoltrakCX} 直观上指的是用圆规将线段转移到射线上,那么以下定理将表示将角转移到给定射线。

\begin{theorem} \label{KotNaPoltrak}
对于每个角 $\alpha$ 和每条射线 $Sp$ 位于直线 $p$ 上,在直线 $p$ 确定的一个半平面中存在唯一一条射线 $Sq$,使得 $\alpha \cong \angle pSq$。
\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.14.pic}
\caption{} \label{sl.aks.2.3.14.pic}
\end{figure}

\textbf{\textit{证明。}}
设 $\alpha=\angle BAC$ 且 $\pi'$ 为由射线 $Sp$ 的载体确定的一个半平面(图 \ref{sl.aks.2.3.14.pic})。

根据定理 \ref{ABnaPoltrakCX},存在唯一一个点 $P$ 在射线 $Sp$ 上,使得 $AB \cong SP$。根据公理 \ref{aksIII2},存在一个唯一的等距变换 $\mathcal{I}$,它将点 $A$ 映射到点 $S$,将射线 $AB$ 映射到射线 $Sp$,并将半平面 $ABC$ 映射到半平面 $\pi'$。如果 $Q=\mathcal{I}(C)$,则此等距变换将射线 $AC$ 映射到射线 $SQ$。因此,射线 $SQ=Sq$ 位于半平面 $\pi'$ 中,并且 $\angle BAC\cong pSq$ 成立。

假设 $S\widehat{q}$ 也是一条位于半平面 $\pi'$ 中的射线,并且 $\angle BAC\cong pS\widehat{q}$ 成立。从全等的定义可知,存在某个等距变换 $\mathcal{\widehat{I}}$ 将角 $BAC$ 映射到角 $\angle BAC\cong pS\widehat{q}$。由于等距变换 $\mathcal{\widehat{I}}$ 也将点 $A$ 映射到点 $S$,将射线 $AB$ 映射到射线 $Sp$,将半平面 $ABC$ 映射到半平面 $\pi'$,根据公理 \ref{aksIII2},$\mathcal{\widehat{I}}=\mathcal{I}$。因此,$$S\widehat{q}=\mathcal{\widehat{I}}(AB)=\mathcal{I}(AB)=Sq,$$ 这就证明了。
\qed

由于前一个定理中的射线 $Sp$ 的载体确定了两个半平面,因此存在两个以 $Sp$ 为臂的角与角 $\alpha$ 全等。这些角的方向不同。这意味着对于有向角 $\alpha$,只有其中一个角与 $\alpha$ 的方向相同(图 \ref{sl.aks.2.3.15.pic})。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.15.pic}
\caption{} \label{sl.aks.2.3.15.pic}
\end{figure}

与线段类似,我们定义角之间的某些运算和关系。

顶点为 $S$ 的角 $pq$ 是角 $ab$ 和 $cd$ 的 \index{和!角的和} \concept{角的和},即 $\angle pq = \angle ab + \angle cd$,如果存在一个角 $pq$ 中的射线 $s=SX$ 使得 $\angle ps \cong \angle ab$ 且 $\angle sq \cong \angle cd$ 成立(图 \ref{sl.aks.2.3.16.pic})。在这种情况下,我们也说角 $ab$ 是角 $pq$ 和 $cd$ 的 \index{差!角的差} \concept{角的差},即 $\angle ab= \angle pq - \angle cd$。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.16.pic}
\caption{} \label{sl.aks.2.3.16.pic}
\end{figure}

类似于线段,我们为角 $ab$ 定义了 $n\cdot \angle ab$ 和 $\frac{1}{n}\cdot \angle ab$ ($n\in \mathbb{N}$) 以及 $q\cdot \angle ab$ ($q\in \mathbb{Q}$) 的角。

我们说顶点为 $S$ 的角 $ab$ 比角 $cd$ \index{关系!角的顺序关系} \concept{大}($\angle ab > \angle cd$),如果角 $ab$ 中存在一条射线 $s=SX$ 使得 $\angle as \cong \angle cd$ 成立(图 \ref{sl.aks.2.3.17.pic})。在这种情况下,角 $cd$ 也比角 $ab$ \concept{小}($\angle cd< \angle ab$)。不难证明,对于两个角 $ab$ 和 $cd$,恰好满足以下关系之一:$\angle ab > \angle cd$,$\angle ab < \angle cd$,或 $\angle ab \cong \angle cd$。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.17.pic}
\caption{} \label{sl.aks.2.3.17.pic}
\end{figure}

如果两个角的和等于一个平角,我们说这两个角是 \index{角!互补角} \concept{互补的}(图 \ref{sl.aks.2.3.18.pic})。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.18.pic}
\caption{} \label{sl.aks.2.3.18.pic}
\end{figure}

射线 $s=SX$ 是角 $\angle pSq=\alpha$ 的 \index{角平分线} \concept{角平分线}(图 \ref{sl.aks.2.3.19.pic}),如果它位于该角内且 $\angle ps \cong \angle sq$ 成立。该角平分线的载体是 \index{对称轴!角的对称轴} \concept{角的对称轴}(直线 $s\_{\alpha}$)。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.19.pic}
\caption{} \label{sl.aks.2.3.19.pic}
\end{figure}

类似于线段的中点,角平分线也遵循以下定理。

\begin{theorem} \label{izrekSimetralaKota}
一个角恰好有一个角平分线。
\end{theorem}

\textbf{\textit{证明。}}
设 $\alpha=pSq$ 为任意角,设 $P$ 为位于臂 $Sp$ 上的任意点($P\neq S$),设 $Q$ 为位于臂 $Sq$ 上的点,使得 $SP\cong SQ$。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.20.pic}
\caption{} \label{sl.aks.2.3.20.pic}
\end{figure}

假设角 $\alpha$ 是一个平角(图 \ref{sl.aks.2.3.20.pic}),它确定了半平面 $\pi$。设 $A$ 为其任意点。根据定理 \ref{izomEnaC'},存在唯一一个点 $B$ 在半平面 $\pi$ 中,使得 $(P,Q,A)\cong (Q,P,B)$。从定理 \ref{IizrekABC} 可得出,存在一个唯一的等距变换 $\mathcal{I}$,它将点 $P$, $Q$,和 $A$ 映射到点 $Q$, $P$,和 $B$。设 $\mathcal{I}(B)=\widehat{A}$。由于 $(Q,P,B)\cong(P,Q,\widehat{A})$,根据定理 \ref{izomEnaC'},$\widehat{A}=A$。因此:
$$\mathcal{I}:P,Q,A,B\mapsto Q,P,B,A.$$

因此,线段 $PQ$ 和 $AB$ 的中点 $S$ 和 $L$ 被映射到自身(公理 \ref{aksIII4}),然后对于射线 $s=SL$ 及其上的每个点(定理 \ref{izoABAB})也成立。因此,等距变换 $\mathcal{I}$ 将角 $pSs$ 映射到角 $sSq$,所以 $pSs\cong sSq$,即射线 $s$ 是角 $pSq$ 的角平分线。

让我们证明 $s$ 是角 $\alpha$ 的唯一角平分线。设 $\widehat{s}=S\widehat{L}$ 为位于角 $\alpha$ 中的射线,且 $pS\widehat{s}\cong \widehat{s}Sq$ 成立。那么存在一个等距变换 $\mathcal{\widehat{I}}$ 将角 $pS\widehat{s}$ 映射到角 $\widehat{s}Sq$。这个等距变换将点 $S$ 映射到点 $S$,将射线 $p$ 映射到射线 $q$,并将半平面 $\pi$ 映射到半平面 $\pi$,所以根据公理 \ref{aksIII2},$\mathcal{\widehat{I}}=\mathcal{I}$。因此,$\mathcal{I}(\widehat{s})= \mathcal{\widehat{I}}(\widehat{s})=\widehat{s}$。如果 $\widehat{L} \notin s$,则等距变换 $\mathcal{I}$ 将三个非共线点 $S$, $L$,和 $\widehat{L}$ 映射到自身,并且 $\mathcal{I}$ 是恒等映射(定理 \ref{IizrekABCident}),这是不可能的。因此,$\widehat{L} \in s$,即 $\widehat{s}=s$。

如果 $\alpha$ 是一个非凸角,则角平分线是作为射线 $s$ 的补(或补角)射线获得的。
\qed

让我们证明两个关于邻补角和对顶角的定理。\index{角!邻补角} \index{角!对顶角}

\begin{theorem}
两个全等角的邻补角也全等。 \label{sokota}
\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.20a.pic}
\caption{} \label{sl.aks.2.3.20a.pic}
\end{figure}

\textbf{\textit{证明。}} 设 $\alpha'=\angle P'OQ$ 和 $\alpha\_1'=\angle P\_1'O\_1Q\_1$ 为两个全等角 $\alpha=\angle POQ$ 和 $\alpha\_1=\angle P\_1O\_1Q\_1$ 的邻补角(图 \ref{sl.aks.2.3.20a.pic})。根据公理 \ref{aksIII2},存在一个唯一的等距变换 $\mathcal{I}$,它将点 $O$ 映射到点 $O\_1$,将射线 $OP$ 映射到射线 $O\_1P\_1$,并将半平面 $POQ$ 映射到半平面 $P\_1O\_1Q\_1$。设 $Q\_2=\mathcal{I}(Q)$。那么 $\angle P\_1O\_1Q\_2\cong \angle POQ$。等距变换 $\mathcal{I}$ 将半平面 $POQ$ 映射到半平面 $P\_1O\_1Q\_1$,因此点 $Q\_2$(以及射线 $O\_1Q\_2$)位于半平面 $P\_1O\_1Q\_1$ 中。由于假设 $\angle POQ\cong\angle P\_1O\_1Q\_1$,根据定理 \ref{KotNaPoltrak},$OQ\_1$ 和 $OQ\_2$ 代表相同的射线。因此,点 $Q\_2$ 位于射线 $O\_1Q\_1$ 上。设 $P\_2'=\mathcal{I}(P')$。由于等距变换将射线映射到射线(定理 \ref{izrekIzoB}),点 $P\_2'$ 位于射线 $O\_1P\_1'$ 上。从 $\mathcal{I}:P',O,Q\mapsto P\_2',O\_1,Q\_2$,可得出等距变换 $\mathcal{I}$ 将角 $P'OQ$ 映射到角 $P\_2'O\_1Q\_2$(定理 \ref{izrekIzoB}),因此 $\angle P'OQ\cong \angle P\_2'O\_1Q\_2=\angle P\_1'O\_1Q\_1$。
\qed

\begin{theorem} \label{sovrsnaSkladna}
对顶角全等。
\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.20b.pic}
\caption{} \label{sl.aks.2.3.20b.pic}
\end{figure}

\textbf{\textit{证明。}} 设 $\alpha=\angle POQ$ 和 $\alpha'=\angle P'OQ'$ 为对顶角,其中点 $P$, $O$, $P'$(或 $Q$, $O$, $Q'$)共线(图 \ref{sl.aks.2.3.20b.pic})。角 $\beta=\angle QOP'$ 是角 $\alpha$ 和 $\alpha'$ 的邻补角。由于 $\beta\cong\beta$,根据前一个定理 \ref{sokota},$\alpha\cong\alpha'$。
\qed

\begin{theorem} \label{sredZrcObstoj}
对于每个点 $S$,都存在一个等距变换 $\mathcal{I}$ 使得 $\mathcal{I}(S)=S$。此外,对于每个点 $X\neq S$,以下条件成立:如果 $\mathcal{I}(X)=X'$,则 $S$ 是线段 $XX'$ 的中点。
\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.20c.pic}
\caption{} \label{sl.aks.2.3.20c.pic}
\end{figure}

\textbf{\textit{证明。}} 设 $P$ 为任意一个不同于 $S$ 的点(图 \ref{sl.aks.2.3.20c.pic})。根据公理 \ref{AksII3},存在一个点 $Q$ 在直线 $SP$ 上,使得 $\mathcal{B}(P,S,Q)$ 成立。设由直线 $SP$ 确定的半平面为 $\alpha$,其补半平面为 $\alpha'$。根据公理 \ref{aksIII2},存在(唯一)一个等距变换 $\mathcal{I}$,它将点 $S$ 映射到点 $S$,将射线 $SP$ 映射到射线 $SQ$,并将半平面 $\alpha$ 映射到半平面 $\alpha'$。

设直线 $SP$ 为 $p$。点 $P'=\mathcal{I}(P)$ 位于射线 $SQ$ 上,即直线 $p$ 上。由于 $\mathcal{I}:S,P \mapsto S,P'$,根据公理 \ref{aksIII1},直线 $SP$ 被映射到直线 $SP'$,即 $\mathcal{I}:p\rightarrow p$。因此,半平面 $\alpha'$ 的像(以 $p$ 为边缘)是具有相同边缘的半平面(定理 \ref{izrekIzoB})。这个半平面不可能是 $\alpha'$,因为等距变换 $\mathcal{I}$ 是一个双射映射,并且根据假设将半平面 $\alpha$ 映射到半平面 $\alpha'$。因此,$\mathcal{I}:\alpha'\rightarrow \alpha$。

现在很清楚,不失一般性,仅需为位于半平面 $\alpha$(不包括边缘或仅包括射线 $SP$)中的点推导证明即可。

设 $X\in \alpha\setminus p$ 且 $X'=\mathcal{I}(X)$。可以立即看出 $X'\in \alpha'\setminus p$。根据公理 \ref{AksII3},存在一个点 $X\_1$ 在直线 $SX$ 上,使得 $\mathcal{B}(X,S,X\_1)$ 成立。由于 $\angle PSX$ 和 $\angle P'SX\_1$ 是对顶角,根据定理 \ref{sovrsnaSkladna} 它们是全等的。然而,从 $\mathcal{I}:S,P,X \mapsto S,P',X'$ 可得出 $\angle PSX \cong \angle P'SX'$。因此,$\angle P'SX\_1\cong \angle P'SX'$(定理 \ref{sklRelEkv}),所以根据定理 \ref{KotNaPoltrak},射线 $SX\_1$ 和 $SX'$ 是相同的。这意味着点 $X'$ 位于射线 $SX\_1$ 上,即 $\mathcal{B}(X,S,X')$。由于 $\mathcal{I}:S,X \mapsto S,X'$,也有 $SX\cong SX'$,根据定义,点 $S$ 是线段 $XX'$ 的中点。

最后,设 $Y$ 为射线 $SP$ 上的任意一个不同于点 $S$ 的点,设 $Y'=\mathcal{I}(Y)$。点 $Y'$ 位于射线 $SQ$ 上,因此 $\mathcal{B}(Y,S,Y')$。由于 $\mathcal{I}:S,Y \mapsto S,Y'$,也有 $SY\cong SY'$,根据定义,点 $S$ 是线段 $YY'$ 的中点。
\qed

在第 \ref{odd6SredZrc} 节中,我们将专门讨论前一个定理 \ref{sredZrcObstoj} 中提到的等距变换。

我们定义了两种新的角类型。凸角是 \index{角!锐角} \concept{锐角}, \index{角!直角} \concept{直角},或 \index{角!钝角} \concept{钝角},如果它小于、等于或大于其邻补角(图 \ref{sl.aks.2.3.21.pic})。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.21.pic}
\caption{} \label{sl.aks.2.3.21.pic}
\end{figure}

从定义可知,锐角(或钝角)是那些小于(或大于)直角的凸角。

从定理 \ref{izrekSimetralaKota} 可得出,直角是存在的,因为角平分线将平角分成两个全等的邻补角。

不难证明,任何两个直角都是全等的,并且与直角全等的角也是直角。

如果两个角的和是直角,我们说这两个角是 \index{角!余角} \concept{余角}(图 \ref{sl.aks.2.3.22.pic})。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.22.pic}
\caption{} \label{sl.aks.2.3.22.pic}
\end{figure}

现在我们将引入直线之间一种极其重要的关系。如果直线 $p$ 和 $q$ 包含直角臂,我们说 $p$ 和 $q$ 是 \concept{垂直的},记作 $p \perp q$(图 \ref{sl.aks.2.3.23.pic})。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.23.pic}
\caption{} \label{sl.aks.2.3.23.pic}
\end{figure}

从定义本身可以清楚地看出,垂直关系是对称的,即从 $p \perp q$,可得出 $q \perp p$。如果 $p \perp q$ 且 $p \cap q=S$,我们说直线 $p$ 在点 $S$ 处 \index{垂直!直线} \concept{垂直} 于直线 $q$,或者说 $p$ 是直线 $q$ 在该点的 \index{垂直线} \concept{垂直线}。

以下定理是表征垂直关系最重要的定理。

\begin{theorem} \label{enaSamaPravokotnica}
对于每个点 $A$ 和每条直线 $p$,都存在一条唯一的直线 $n$ 通过点 $A$,并且垂直于直线 $p$。
\end{theorem}

\textbf{\textit{证明。}}
假设点 $A$ 不在线 $p$ 上。设 $B$ 和 $C$ 为位于直线 $p$ 上的任意点(图 \ref{sl.aks.2.3.24.pic})。设半平面 $BCA$ 为 $\pi$,其补半平面为 $\pi\_1$。根据定理 \ref{izomEnaC'},存在唯一一个点 $A\_1\in \pi\_1$,使得 $(A,B,C) \cong (A\_1,B,C)$。从定理 \ref{IizrekABC} 可得出,存在一个唯一的等距变换 $\mathcal{I}$,它将点 $A$, $B$,和 $C$ 映射到点 $A\_1$, $B$,和 $C$。设直线 $AA\_1$ 为 $n$。由于 $A$ 和 $A\_1$ 在直线 $p$ 的两侧,直线 $n$ 与直线 $p$ 相交于某点 $S$。从 $\mathcal{I}:B,C \mapsto B,C$,可得出 $\mathcal{I}(S)=S$(定理 \ref{izoABAB})。因此,等距变换 $\mathcal{I}$ 将角 $ASB$ 映射到角 $A\_1SB$。这表明角 $\angle ASB$ 和 $\angle A\_1SB$ 是全等的邻补角,因此它们也是直角。所以 $n \perp p$。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.24.pic}
\caption{} \label{sl.aks.2.3.24.pic}
\end{figure}

让我们证明 $n$ 是通过点 $A$ 的唯一垂直于直线 $p$ 的直线。设 $\widehat{n}$ 为一条直线,使得 $A\in \widehat{n}$ 且 $\widehat{n} \perp p$。设 $\widehat{S}$ 为直线 $\widehat{n}$ 和 $p$ 的交点。假设 $\angle A\widehat{S}B$ 是一个直角,并且与其邻补角 $\angle B\widehat{S}A\_2$($A\_2$ 是一个使得 $\mathcal{B}(A,\widehat{S},A\_2)$ 成立的点)全等,后者也是一个直角。

从 $\mathcal{I}:B,C \mapsto B,C$,可得出 $\mathcal{I}(\widehat{S})=\widehat{S}$(定理 \ref{izoABAB})。因此,等距变换 $\mathcal{I}$ 将角 $A\widehat{S}B$ 映射到角 $A\_1\widehat{S}B$。这表明角 $\angle A\widehat{S}B$ 和 $\angle A\_1\widehat{S}B$ 是全等的,因此角 $\angle A\_1\widehat{S}B$ 也是一个直角。因此,角 $A\_1\widehat{S}B$ 和 $A\_2\widehat{S}B$ 是直角,因此是全等的。由此可得出射线 $\widehat{S}A\_1$ 和 $\widehat{S}A\_2$ 是相同的,所以 $A\_1 \in \widehat{S}A\_2=\widehat{n}$,即 $\widehat{n}=AA\_1=n$。

当点 $A$ 位于直线 $p$ 上时,垂直直线 $n$ 是相应平角的角平分线(定理 \ref{izrekSimetralaKota})。
\qed

前一个定理的推论是一个非常重要的事实——平面中存在不相交直线对——即那些没有公共点的直线。这是以下两个定理的内容。

\begin{theorem} \label{absolGeom1}
设 $p$ 和 $q$ 为在点 $P$ 和 $Q$ 处垂直于直线 $PQ$ 的直线。那么直线 $p$ 和 $q$ 没有公共点,即 $p\cap q=\emptyset$。
\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.25b.pic}
\caption{} \label{sl.aks.2.3.25b.pic}
\end{figure}

\textbf{\textit{证明。}} 该定理是前一个定理 \ref{enaSamaPravokotnica} 的直接推论。如果直线 $p$ 和 $q$ 在某点 $S$ 相交,那么将有两条从点 $S$ 到直线 $PQ$ 的垂直线(图 \ref{sl.aks.2.3.25b.pic}),这与上述定理相矛盾。
\qed

\begin{theorem} \label{absolGeom}
如果 $A$ 是一个不在线 $p$ 上的点,那么存在至少一条直线(在同一平面内)通过点 $A$ 且不与直线 $p$ 相交(图 \ref{sl.aks.2.3.25a.pic})。
\end{theorem}

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.25a.pic}
\caption{} \label{sl.aks.2.3.25a.pic}
\end{figure}

\textbf{\textit{证明。}} 根据定理 \ref{enaSamaPravokotnica},存在(唯一)一条垂直于直线 $p$ 的直线 $n$,它通过点 $A$。设直线 $p$ 和 $n$ 的交点为 $A'$。从同一定理可得出,存在另一条垂直于直线 $n$ 在点 $A$ 处的直线 $q$。根据前一个定理 \ref{absolGeom1},$q$ 是通过点 $A$ 且没有与直线 $p$ 公共点的直线。
\qed

点 $A'$ 是点 $A$ 在直线 $p$ 上的 \index{垂足} \concept{垂足} 或 \index{正交投影} \concept{正交投影},如果通过点 $A$ 的垂直于直线 $p$ 的直线在该点与直线 $p$ 相交于点 $A'$。我们将它记作 $A'=pr\_{\perp p}(A)$(图 \ref{sl.aks.2.3.25.pic})。从前一个定理可得出,对于每个点和直线,都存在唯一的正交投影。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.25.pic}
\caption{} \label{sl.aks.2.3.25.pic}
\end{figure}

通过线段 $AB$ 的中点 $S$ 且垂直于直线 $AB$ 的直线称为线段 $AB$ 的 \index{对称轴!线段的对称轴} \concept{对称轴},并记作 $s\_{AB}$(图 \ref{sl.aks.2.3.26.pic})。线段对称轴的性质将在下一章中讨论。

\begin{figure}[!htb]
\centering
\input{sl.aks.2.3.26.pic}
\caption{} \label{sl.aks.2.3.26.pic}
\end{figure}

我们说点 $A$ 相对于直线 $s$ 与点 $B$ \index{对称!关于直线对称} \concept{对称},如果 $s$ 是线段 $AB$ 的对称轴。关于直线的对称(作为一种映射——所谓的轴反射)将在第 \ref{odd6OsnZrc} 节中更详细地讨论。

设 $S$ 为一点且 $AB$ 为一条线段。所有满足 $SX \cong AB$ 的点 $X$ 的集合称为以 $S$ 为 \index{圆心!圆的圆心} \concept{圆心},以 $AB$ 为 \index{半径!圆的半径} \concept{半径} 的 \index{圆} \concept{圆},我们记作 $k(S,AB)$(图 \ref{sl.aks.2.3.27.pic}),即:

$$k(S,AB)=\{X;\hspace*{1mm}SX \cong AB\}.$$ \begin{figure}[!htb] \centering \input{sl.aks.2.3.27.pic} \caption{} \label{sl.aks.2.3.27.pic} \end{figure}

当然,圆是平面中的一个点集,因为在这本书中,我们只处理平面几何(所有点和所有图形都属于同一个平面)。

从定义可以清楚地看出,对于半径,我们可以选择任何与线段 $AB$ 全等的线段,即任何射线 $SP$,其中 $P$ 是圆上的任意一点。由于半径不与特定线段绑定,我们通常用小写字母 $r$ 表示。因此,我们也可以将圆写成如下形式:

$$k(S,r)=\{X;\hspace*{1mm}SX \cong r\}.$$ 集合 $$\{X;\hspace*{1mm}SX \leq r\}$$ 称为以 $S$ 为中心,以 $r$ 为半径的 \index{圆盘} \concept{圆盘}(图 \ref{sl.aks.2.3.28.pic})并记作 $\mathcal{K}(S,r)$。 集合 $$\{X;\hspace*{1mm}SX < r\}$$ 是 $\mathcal{K}(S, r)$ 的 \index{内部!圆盘的内部} \concept{圆盘内部},其点是 \concept{圆盘的内部点}。 这意味着圆盘实际上是其内部和相应圆的并集。

集合

$$\{X;\hspace*{1mm}SX > r\}$$ 称为 $\mathcal{K}(S, r)$ 的 \index{外部!圆盘的外部} \concept{圆盘外部},其点是 \concept{圆盘的外部点}。

我们可以看到,这个特定的块只翻译了文本,但保留了LaTeX命令。

现在让我们翻译全书的所有块——这需要2-3小时,因为我们是顺序处理请求的。

dest_language = "English"

translated_chunks = []
for i, chunk in enumerate(chunks):
    print(str(i+1) + " / " + str(len(chunks)))
    # 翻译每个块
    translated_chunks.append(translate_chunk(chunk, model='gpt-4o', dest_language=dest_language))

# 将块连接在一起
result = '\n\n'.join(translated_chunks)

# 保存最终结果
with open(f"data/geometry_{dest_language}.tex", "w") as f:
    f.write(result)
Chunk 1 / 39 translated.
Chunk 3 / 39 translated.
Chunk 5 / 39 translated.
Chunk 2 / 39 translated.
Chunk 6 / 39 translated.
Chunk 4 / 39 translated.
Chunk 8 / 39 translated.
Chunk 7 / 39 translated.
Chunk 9 / 39 translated.
Chunk 14 / 39 translated.
Chunk 10 / 39 translated.
Chunk 11 / 39 translated.