Skip to content

Commit 3ffdead

Browse files
committed
L-more-15 translation
1 parent c22563f commit 3ffdead

1 file changed

Lines changed: 124 additions & 0 deletions

File tree

zh-hant/more-15.md

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
---
2+
layout: "lesson"
3+
lang: "zh-hant"
4+
title: "更多內容:處理錯誤"
5+
description: "本課展示了 LaTeX 中的一些更常見的錯誤,並解釋了鏈式錯誤和靜默錯誤。"
6+
toc-anchor-text: "更多內容:處理錯誤"
7+
---
8+
9+
## 在環境末尾報告的錯誤
10+
11+
某些環境(特別是`amsmath`的對齊環境和`tabularx`表格)在處理內容之前會掃描整個環境主體。這意味著環境內的任何錯誤都會在最後一行被報告。然而,如主課程所示,TeX 顯示的錯誤上下文仍然應該能夠準確指出錯誤位置。
12+
13+
```latex
14+
% !TEX program=lualatex
15+
16+
\documentclass{ctexart}
17+
\usepackage{amsmath}
18+
19+
\begin{document}
20+
21+
\begin{align}
22+
\alpha &= \frac{1}{2}\\
23+
\beta &= \frak{2}{3}\\
24+
\gamma &= \frac{3}{4}
25+
\end{align}
26+
27+
\end{document}
28+
```
29+
30+
這裡的錯誤將在第12行被報告
31+
32+
```
33+
l.12 \end{align}
34+
```
35+
{: .noedit :}
36+
37+
儘管實際錯誤是在第10行,這可以從上下文行中看出:
38+
39+
```
40+
! Undefined control sequence.
41+
<argument> ...ha &= \frac {1}{2}\\ \beta &= \frak
42+
{2}{3}\\ \gamma &= \frac {...
43+
```
44+
{: .noedit :}
45+
46+
47+
## 由早期錯誤引起的虛假錯誤
48+
49+
當從命令列互動式呼叫 LaTeX 時,可以在第一個錯誤處使用`x`停止處理,編輯文件並重新執行。但是,如果你滾動過錯誤提示,或使用自動執行此操作的編輯器或線上系統,TeX 將嘗試恢復;然而這可能會導致報告更多的錯誤。
50+
51+
因此,不要太在意報告的錯誤 _數量_,始終專注於修復第一個報告的錯誤。
52+
53+
```latex
54+
% !TEX program=lualatex
55+
56+
\documentclass{ctexart}
57+
\begin{document}
58+
Text_word $\alpha + \beta$.
59+
60+
More text.
61+
\end{document}
62+
```
63+
64+
這裡的錯誤是下劃線`_`,它應該輸入為`\_`
65+
66+
TeX 在 _第一個_ 錯誤訊息中正確地報告了這一點
67+
68+
```
69+
! Missing $ inserted.
70+
<inserted text>
71+
$
72+
l.5 Text_
73+
word $\alpha + \beta$.
74+
?
75+
```
76+
{: .noedit :}
77+
78+
然而,如果你滾動過`?`提示,TeX 會通過新增一個`$`來恢復,這樣`_`就會在數學模式中被視為下標。數學模式然後會繼續到結束數學模式的`$`,因此後面的`\alpha`會在文字模式中被看到,從而產生另一個錯誤
79+
80+
```
81+
! Missing $ inserted.
82+
<inserted text>
83+
$
84+
l.5 Text_word $\alpha
85+
+ \beta$.
86+
?
87+
```
88+
{: .noedit :}
89+
90+
91+
## 不觸發錯誤提示的錯誤
92+
93+
某些錯誤,特別是直到檔案末尾才被檢測到的錯誤,不會生成錯誤提示,而只是在日誌中給出警告。
94+
95+
如果你在 TeXLive.net 伺服器上嘗試這個示例,它預設會返回一個 PDF;要在日誌中檢視錯誤訊息,請新增`%!TeX log`
96+
97+
```latex
98+
% !TEX program=lualatex
99+
100+
\documentclass{ctexart}
101+
\begin{document}
102+
103+
Text {\large some large text) normal size?
104+
105+
\end{document}
106+
```
107+
108+
在這個例子中,大小變化錯誤地以 `)` 而不是 `}` 結尾。直到檔案末尾,TeX 檢測到仍有一個未關閉的組時,才會檢測到這種情況。它在這裡報告組以 `{` 開頭的行。它無法檢測到實際錯誤,因為 `)` 被視為“普通文字”。
109+
110+
```
111+
(\end occurred inside a group at level 1)
112+
113+
### simple group (level 1) entered at line 5 ({)
114+
```
115+
{: .noedit :}
116+
117+
118+
<script>
119+
window.addEventListener('load', function(){
120+
if(editors['pre0'] != null) editors['pre0'].moveCursorTo(8, 15, false);
121+
if(editors['pre3'] != null) editors['pre3'].moveCursorTo(3, 5, false);
122+
if(editors['pre6'] != null) editors['pre6'].moveCursorTo(4, 30, false);
123+
}, false);
124+
</script>

0 commit comments

Comments
 (0)