Can you summarize the following document?
        
  縮排風格的主要區別在於複合語句的大括號(codice_1)的位置,這通常是為涵蓋一個控制宣告(codice_2、codice_3、codice_4...)。下表展示了本條目中討論的所有風格的所在位置。為了一致性,縮排深度(字元數)統一使用4個空格表示,這未考慮各風格中首選的縮排深度。

  縮排的尺寸通常與風格無關。許多早期程式使用製表符來縮排,從而簡化輸入和節約原始碼檔案的大小。Unix編輯器通常將製表符視為等同八個字元,而Macintosh和Windows環境將它視作四個字元,這使程式碼在各環境間交換時產生一種混亂。現代的程式設計編輯器通常可以設定任意的縮排尺寸,並會插入適當的製表符與空格。對Ruby、許多shell指令碼語言和某些形式的HTML格式,通常為每個縮排級別使用兩個空格。  使用製表符還是空格作為縮排字元是程式設計界的一項持續爭論。傑米·加文斯基等一些程式設計師認為空格而非製表符有助增加跨平臺可移植性。而如WordPress編碼規範的作者則認為製表符增加了可移植性。

  目前已有許多計算機程式可以自動校正縮排風格(依照程式作者或使用者的偏好)以及製表符表示的縮排長度。其中很著名的一個是codice_5,這個程式包含在許多類Unix作業系統中。  在Emacs中,有多種命令可用於自動解決縮排問題。  Elastic tabstops是一種需要文字編輯器支援的製表風格,當塊中的一行的長度改變時,整個文字塊將自動對齊。

  

  K&R風格常在C、C++以及其他大括號程式語言中使用。在布萊恩·柯林漢與丹尼斯·裡奇的《C程式設計語言》一書中也有使用。它起源於Kernighan和Plauger的《程式設計風格的元素》及軟體工具。

  Haskell是一種大括號可選的語言,也就是說,下面的兩組程式碼在語義上是相等的:通常,procedural codice_6的段落和一般程式文字會省略大括號和分號,但這種風格通常用於由一對括號或大括號組成的列表、記錄或其他句法元素,並用逗號或分號分隔。

  

  在某些情況下存在著丟失塊邊界的軌跡的風險。這通常在包含許多複雜語句的大量程式碼中看到,這些複合語句巢狀了許多層的縮排。當程式設計師滾動到一大堆巢狀語句的底部時,他可能已經忘記了哪些控制語句轉到哪裡。不過,過長的程式碼也可能有其他原因, 諸如過於複雜,面對這個問題的程式設計師可能會考慮程式碼重構以期待它在未來有更好的體驗。

  在使用標準的Unix行編輯器ed時,K&R風格能防止一個常見的錯誤。在控制語句與迴圈塊的開啟大括號之間錯誤地插入的語句將使迴圈體變為單次執行。K&R風格通過將控制語句和開啟括號保持在同一行來避免此問題。
在程式設計中,縮排風格(indent style)是管理程式碼塊縮排以表達程式結構的一種約定。本條目主要討論自由形式語言,例如C及其後裔,但這也可以(並經常)適用於大多數其他程式語言(尤其是大括號程式語言),其中的空白字元則並不重要。縮排風格是程式碼風格的一個方面。