> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/latex/tr/derinlemesine-makaleler/15-how-do-tex-engines-typeset-tables-2.md).

# TeX motorları tabloları nasıl dizer 2

## TeX motorları tabloları nasıl dizgiye döker 2

## TeX motorları tablolara hizalama der

değiştirilmiş bir sürümünü kullanır [TeX’in kaynak kodunun belgeleri](https://www.overleaf.com/latex/examples/typeset-the-source-code-documentation-for-tex-e-tex-or-pdftex/qkgfgyspnhcv) Knuth, TeX’in “tabloları dizgiye dökme” yeteneğini tartışmaz; bunun yerine, sözde *hizalamalar*. TeX’in tablo dizgisi, özünde otomatik bir kutu hizalama sürecidir: kutuları (tablo hücreleri, satırlar ve sütunlar) hoş bir dikdörtgen ızgara ya da dizi oluşturacak şekilde düzenlemek—elbette TeX olunca, burada *çok* bu süreçte incelikler vardır.

“Hizalama” terimi, tüm TeX motorlarına yerleşik iki tablo dizgi komutunun adlarında da yansır:

* `\halign` (yatay hizalama) ve
* `\valign` (dikey hizalama).

Bu makale dizisi boyunca her iki komutu da inceleyeceğiz; başlangıç olarak, `\halign` ve `\valign` bu dizideki sonraki ayrıntılı makaleler için temel oluşturmak üzere komutların biçiminin/yapısının daha resmi bir genel bakışını sunacağız.

### TeX’in tabloları kutular ve boşluklardır

Tek tek tablo hücreleri genellikle metin satırları, matematik ya da grafikler gibi çeşitli içerikler barındırır; bu da farklı genişlik, yükseklik veya derinlikte dizgilenmiş malzemeye sahip bir dizi tablo hücresi üretir. Bir şekilde TeX’in, son tabloda her satırın belirli bir yüksekliğe ve her sütunun belirli bir genişliğe sahip olacağı şekilde bu değişken içerikli hücrelerle çalışması gerekir. TeX’in, değişken boyutlu tablo hücreleri kümesinden her satırın yüksekliği ve her sütunun genişliği için uygun değerleri çıkarsaması gerekir.

Ancak TeX, her hücre içeriğinin gerçek boyutunu o içerik dizgilenene kadar bilemez; dolayısıyla TeX, tabloyu tamamlamak için gereken boyutlandırma verilerini elde etmek üzere tüm tablo boyunca ilerleyerek her hücreyi dizgiler. Bu boyut verilerinden TeX, her satır için doğru yüksekliği ve her sütun için doğru genişliği belirleyebilir. TeX ayrıca boş hücrelerle veya kullanıcının birden çok sütuna ya da birden çok satıra yaymak istediği hücrelerle de karşılaşabilir; bunların hepsinin TeX tarafından hesaplamalara dikkatle katılması gerekir. Bu farklı hücre (kutu) boyut verileri topluluğu “süzüldükten” sonra ancak TeX bir `\halign`, ya da `\valign` için satır yüksekliklerinin son değerlerini belirleyebilir ve bu değerleri tablo yerleşimi algoritmalarının son aşamalarında kullanır.

Uygulamada ve “kaputun altında”, TeX’in tablo dizgisi birkaç adımdan oluşur. Özetle, TeX önce hücre boyut verilerini—ve varsa `\span` komutlarına ilişkin verileri—toplayıp işlerken tablonun bir “taslak” ya da “eksik” sürümünü dizgiler. Son adımlarda TeX, tabloyu tamamlamak üzere o “eksik” sürümü yeniden işler ve `\halign` sütun genişliklerini veya `\valign` satır yüksekliklerini kesinleştirir; böylece tamamlanmış yerleşim elde edilir—bunların hepsini bu makale dizisinde inceleyeceğiz.

## \halign ve \valign: tabloları oluşturmanın iki yolu

Tüm TeX motorları, tabloları (hizalamaları) dizgilemek için tasarlanmış iki *yerleşik* komut (ilkel) sağlar: `\halign` ve `\valign`bunlar pek çok temel özelliği paylaşır, ancak bazı temel yönlerden de farklılık gösterir. Aralarındaki kilit fark `\halign` ve `\valign` kendi tablolarını nasıl oluşturduklarıdır: satır satır mı yoksa sütun sütun mu:

* `\halign`tabloyu satır satır dizgileyerek tek tek satırlar oluşturur ve bunları dikey olarak üst üste yığarak tablonun sütunlarını meydana getirir
* `\valign`tabloyu sütun sütun dizgileyerek tek tek sütunlar oluşturur ve bunları yatay olarak yan yana yığarak tablonun satırlarını meydana getirir

### \halign

Aşağıdaki diyagram, `\halign`ile oluşturulan bir tablonun yapımını göstermektedir. Tablo, tek tek satırlar dikey olarak üst üste yığılacak şekilde satır satır dizgilenir. Bunun bazı sonuçları şunlardır:

* tablo sütunları, tablo satırlarının dikey olarak üst üste yığılmasından oluşur
* sayfa sonları tablo satırları arasında gerçekleşebilir
* tablo dışı malzeme satırlar arasına eklenebilir (şu yolla: `\nolign`ve bunu daha sonra inceleyeceğiz)

![](/files/52bc2028e037df1a44092848d98444f0840037b0)

### \valign

Aşağıdaki diyagram, `\valign`. Tablo, tek tek sütunlar yatay olarak (yan yana) üst üste yığılacak şekilde sütun sütun dizgilenir. Bunun bazı sonuçları şunlardır:

* tablo satırları, tablo sütunlarının yatay olarak üst üste yığılmasından oluşur
* satır sonları tablo sütunları arasında gerçekleşebilir
* tablo dışı malzeme sütunlar arasına eklenebilir (şu yolla: `\\noalign`ve bunu daha sonra inceleyeceğiz)

![](/files/e68a74607a1b3dc69e905543d5df918a7f3c309b)

### Örnekler

Aşağıdaki örnek, \halign ve \valign’in satır *ile*. sütun yaklaşımını vurgulamak için tasarlanmıştır.

```latex
\documentclass{article}
\begin{document}
\pagestyle{empty}
% Kutu kenarlıklarını sıkılaştır
\setlength{\fboxsep}{0pt}

İşte bir \verb|\valign| tablosu:
\begingroup
% \hsize, \valign
% sütun genişliklerini denetler. Ayrıca
% \parindent’i daha küçük bir değere ayarlıyoruz
\hsize=30pt
\parindent=10pt
\fbox{\valign{
#&#&#\cr % Önsöz: daha sonra ele alınacak (ve büyük ayrıntıyla!)
A&B&C\cr % Bu \valign tablosunun ilk SÜTUNU
D&E&F\cr
G&H&I\cr
}}
\endgroup

% Not: daha sonra açıklanacak nedenlerle
% \halign bir \vbox içine yerleştirilmelidir
İşte bir \verb|\halign| tablosu: \fbox{%
\vbox{\halign{
#&#&#\cr % Önsöz: daha sonra ele alınacak (ve büyük ayrıntıyla!)
A&B&C\cr % Bu \halign tablosunun ilk SATIRI
D&E&F\cr
G&H&I\cr
}}}
\end{document}
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+table+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cpagestyle%7Bempty%7D%0A%25+Close-fitting+box+borders+%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%0AHere+is+a+%5Cverb%7C%5Cvalign%7C+table%3A+%0A%5Cbegingroup%0A%25+%5Chsize+controls+the+%5Cvalign+%0A%25+column+widths.+We+also+set+%0A%25+%5Cparindent+to+a+smaller+value%0A%5Chsize%3D30pt+%0A%5Cparindent%3D10pt%0A%5Cfbox%7B%5Cvalign%7B%0A%23%26%23%26%23%5Ccr+%25+The+preamble%3A+covered+later+%28in+great+detail%21%29%0AA%26B%26C%5Ccr+%25+The+first+COLUMN+of+this+%5Cvalign+table%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%7D%0A%5Cendgroup%0A%0A%25+Note%3A+for+reasons+explained+later%0A%25+the+%5Chalign+has+to+be+put+in+a+%5Cvbox%0AHere+is+an+%5Cverb%7C%5Chalign%7C+table%3A+%5Cfbox%7B%25%0A%5Cvbox%7B%5Chalign%7B%0A%23%26%23%26%23%5Ccr+%25+The+preamble%3A+covered+later+%28in+great+detail%21%29%0AA%26B%26C%5Ccr+%25+The+first+ROW+of+this+%5Chalign+table%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%7D%7D%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıdaki çıktıyı üretir: ![](/files/f35a020bb88fbf324a229465abc65f89880f8d92)

Aşağıdaki grafik, yukarıdaki kodla üretilen tabloların açıklamalı bir sürümünü göstermektedir. Bu makale dizisinin ilerleyen bölümlerinde şu gibi konuları ele alacağız:

* tablo önsözleri nedir?
* neden `\hsize` ve `\parindent` için `\valign` tablolar için ayar yaparız?

Şimdilik, yalnızca `\halign` *ile*. `\valign` tablo oluşturmanın satır ile sütun yaklaşımına dikkat edin:

![](/files/c9900b7cf8ce181592831b186fb0b62902dc82e7)

## \halign ve \valign’in genel biçimi

Başlangıç olarak `\halign` ve `\valign` temel özelliklerini ve genel biçimini gözden geçireceğiz, [Belirtildiği gibi](#intro), `\halign` ve `\valign` komutlarının biçimi/yapısı hakkında biraz daha resmi bir genel bakış benimseyerek bu dizideki sonraki makaleler için temel oluşturuyoruz.

komutlarının en genel biçimi `\halign` ve `\valign` şu şekilde yazılabilir:

`\halign` $$\langle$$⁠`isteğe bağlı belirleme`⁠$$\rangle$$ { $$\langle$$⁠`önsöz`⁠$$\rangle$$ $$\langle$$⁠`gövde`⁠$$\rangle$$ }

`\valign` $$\langle$$⁠`isteğe bağlı belirleme`⁠$$\rangle$$ { $$\langle$$⁠`önsöz`⁠$$\rangle$$ $$\langle$$⁠`gövde`⁠$$\rangle$$ }

Gördüğünüz gibi, her iki `\halign` ve `\valign` üç ana bölümden oluşur:

* [$$\langle$$⁠`isteğe bağlı belirleme`⁠$$\rangle$$](#optspec)
* [$$\langle$$⁠`önsöz`⁠$$\rangle$$](#preamble)
* [$$\langle$$⁠`gövde`⁠$$\rangle$$](#body)

## Bu $$\langle$$⁠isteğe bağlı belirleme⁠$$\rangle$$

Bir tablonun varsayılan boyutu/kaplaması, sözde "doğal boyutu", içeriği tarafından belirlenir—yalnızca açıklığa kavuşturmak için, boyut/kaplama derken kastettiğimiz şey

* şu *genişlik* olup `\halign`, veya
* şu *yüksekliği* olup `\valign`

Bir $$\langle$$⁠`isteğe bağlı belirleme`⁠$$\rangle$$ tablonun doğal boyutunu "geçersiz kılmak" için kullanılabilir ve iki biçimden birini alır:

* **`ile`** $$\langle$$**⁠`boyut`⁠**$$\rangle$$
* **`yayma`** $$\langle$$**⁠`boyut`⁠**$$\rangle$$

burada

* $$\langle$$**⁠`boyut`⁠**$$\rangle$$ TeX’in anladığı birimlerle verilen bir uzunluktur; örneğin pt, mm veya cm—uzunluk ayrıca uygun birimlerde belirtilen bir değere genişleyen bir komut olarak da verilebilir;
* **`ile`** ve **`yayma`** doğal boyutun "geçersiz kılınması" türünü belirten TeX anahtar sözcükleridir:
  * **`ile`**: tablonun boyutunu belirtilen $$\langle$$⁠`boyut`⁠$$\rangle$$ değer
  * **`yayma`**: belirtilen $$\langle$$⁠`boyut`⁠$$\rangle$$ değeri tablonun doğal boyutuna ekler

Bir $$\langle$$⁠`isteğe bağlı belirleme`⁠$$\rangle$$ etkisi, dizgilenmekte olan tablonun türüne bağlıdır: bir `\halign` tablonun doğal *genişlik*boyutunu ya da bir `\valign` tablonun doğal *yüksekliği*.

İşte bazı örnekler:

* `\halign **to 100pt**{...}`: tablonun `\halign` genişliğini `100pt olarak ayarlar`
* `\valign **to 50pt**{...}`: tablonun `\valign` tablonun yüksekliğini `30pt olarak ayarlar`
* `\halign **spread 30pt**{...}`: 30pt’yi `\halign` tablonun doğal genişliğine ekler. Tersine, **spread -30pt** yazmak tablonun genişliğini 30pt azaltırdı.
* `\valign **spread 20pt**{...}`: 20pt’yi `\valign` tablonun doğal yüksekliğine ekler. Tersine, **spread -20pt** yazmak tablonun yüksekliğini 20pt azaltırdı.

Aşağıdaki kod, yukarıdaki tablo örneklerini yeniden kullanır, ancak bir $$\langle$$⁠`isteğe bağlı belirleme`⁠$$\rangle$$ uygular `\valign` ve `\halign` tablosuna:

```latex
\documentclass{article}
\begin{document}
\pagestyle{empty}
% Kutu kenarlıklarını sıkılaştır
\setlength{\fboxsep}{0pt}

İşte bir \verb|\valign| tablosu:
\begingroup
\hsize=30pt
\parindent=10pt
\fbox{\valign to 50pt{
#&#&#\cr
A&B&C\cr
D&E&F\cr
G&H&I\cr
}}
\endgroup

İşte bir \verb|\halign| tablosu:
\fbox{%
\vbox{\halign to 100pt{
#&#&#\cr
A&B&C\cr
D&E&F\cr
G&H&I\cr
}}}
\end{document}
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+table+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cpagestyle%7Bempty%7D%0A%25+Close-fitting+box+borders+%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%0AHere+is+a+%5Cverb%7C%5Cvalign%7C+table%3A+%0A%5Cbegingroup%0A%5Chsize%3D30pt+%0A%5Cparindent%3D10pt%0A%5Cfbox%7B%5Cvalign+to+50pt%7B%0A%23%26%23%26%23%5Ccr%0AA%26B%26C%5Ccr%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%7D%0A%5Cendgroup%0A%0AHere+is+an+%5Cverb%7C%5Chalign%7C+table%3A%0A%5Cfbox%7B%25%0A%5Cvbox%7B%5Chalign+to+100pt%7B%0A%23%26%23%26%23%5Ccr%0AA%26B%26C%5Ccr%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%7D%7D%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıda gösterilen çıktıyı üretir:

![](/files/3b6896a907434f135dfc6dd17487261e55e8728b)

—ama her iki tablonun içeriğinin nasıl “bir araya sıkışmış” olduğuna dikkat edin. Bunun nedeni, TeX’in \tabskip tarafından sağlanan ek alanı doldurmak için içeriği genişletmekte kullanabileceği esnek boşluğun (yapışkanın) olmamasıdır. Burada **`ile`** $$\langle$$**⁠`boyut`⁠**$$\rangle$$\tabskip komutundan söz etmek üzere biraz ileri atlayacağız. `\tabskip` komutunu.

#### \tabskip komutuna ilk giriş

Bir tablonun yerleşiminin estetiği, satırları ya da sütunları arasındaki boşluğun ayarlanmasını gerektirebilir; bu yüzden, şaşırtıcı olmayacak şekilde, TeX motorları `\tabskip` adlı bir komut sağlar; bu komut bunu yapmanıza izin verir. `\tabskip` bir `\halign` veya bir `\valign`satırları arasına TeX’in yerleştirdiği esnek boşluk (“yapışkan”) miktarını ayarlamak (ve değiştirmek) için kullanılır. `\tabskip` Daha sonraki makaleler

çok daha ayrıntılı inceleyecektir. `\tabskip` başlatıcı bir örnek olarak, aşağıdaki kod `\valign` için bir ayar kullanır; bu da TeX’in bir $$\langle$$⁠`isteğe bağlı belirleme`⁠$$\rangle$$ için bir belirteç değeri oluşturur **`50pt’ye`**:

```latex
\documentclass{article}
\setlength{\fboxsep}{0pt}
\setlength{\parindent}{0pt}
\newcommand{\optspec}{\(\langle \texttt{isteğe bağlı belirleme} \rangle\)}
\begin{document}
\pagestyle{empty}
İşte bir \verb|\valign| tablosu:
\vspace{6pt}

\begingroup
\hsize=30pt
\parindent=10pt
\fbox{\valign{
#&#&#\cr
A&B&C\cr
D&E&F\cr
G&H&I\cr
}}
\endgroup
\vspace{6pt}

İşte aynı \verb|\valign| tablosu, ancak ``\texttt{to 50pt}'' biçiminde bir \optspec{} ile. Satırlar arasında kullanılabilir ``gerilebilir yapışkan'' olmadığından satırların nasıl ``bir araya sıkıştığına'' dikkat edin:

\vspace{6pt}
\begingroup
\hsize=30pt
\parindent=10pt
\fbox{\valign to 50pt{
#&#&#\cr
A&B&C\cr
D&E&F\cr
G&H&I\cr
}}
\endgroup
\vspace{6pt}

\optspec{} olarak ``\texttt{to 50pt}'' kullanacağız, ancak \verb|\tabskip| komutu aracılığıyla ``esnek boşluk'' sağlayacağız. Burada \verb|\tabskip|, \verb|\valign| satırlarının ``genişleyip yayılmasına'' ve mevcut fazla alanı doldurmasına yetecek kadar ``yapışkan'' sağlıyor. İşte ``genişletilmiş'' \verb|\valign| tablosu:

\tabskip=0pt plus1fil % Bu, \tabskip’i çok esnek bir yapışkan olarak ayarlar
\vspace{6pt}

\def\mylen{50pt}
\begingroup
\hsize=30pt
\parindent=10pt
\fbox{\valign to \mylen{
#&#&#\cr
A&B&C\cr
D&E&F\cr
G&H&I\cr
}}
\endgroup
\end{document}
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+example+using+tabskip+glue\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%5Csetlength%7B%5Cparindent%7D%7B0pt%7D%0A%5Cnewcommand%7B%5Coptspec%7D%7B%5C%28%5Clangle+%5Ctexttt%7Boptional+specification%7D+%5Crangle%5C%29%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cpagestyle%7Bempty%7D%0AHere+is+a+%5Cverb%7C%5Cvalign%7C+table%3A%0A%5Cvspace%7B6pt%7D%0A%0A%5Cbegingroup%0A%5Chsize%3D30pt+%0A%5Cparindent%3D10pt%0A%5Cfbox%7B%5Cvalign%7B%0A%23%26%23%26%23%5Ccr%0AA%26B%26C%5Ccr%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%7D%0A%5Cendgroup%0A%5Cvspace%7B6pt%7D%0A%0AHere+is+the+same+%5Cverb%7C%5Cvalign%7C+table+but+with+an+%5Coptspec%7B%7D+of+%60%60%5Ctexttt%7Bto+50pt%7D%27%27.+Note+how+the+rows+are+%60%60bunched+up%27%27+because+there%27s+no+available+%60%60stretchable+glue%27%27+between+the+rows%3A+%0A%0A%5Cvspace%7B6pt%7D%0A%5Cbegingroup%0A%5Chsize%3D30pt+%0A%5Cparindent%3D10pt%0A%5Cfbox%7B%5Cvalign+to+50pt%7B%0A%23%26%23%26%23%5Ccr%0AA%26B%26C%5Ccr%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%7D%0A%5Cendgroup%0A%5Cvspace%7B6pt%7D%0A%0AWe%27ll+use+the+%5Cverb%7C%5Cvalign%7C+table+with+%5Coptspec%7B%7D+of+%60%60%5Ctexttt%7Bto+50pt%7D%27%27%2C+but+provide+%60%60flexible+spacing%27%27+via+the+%5Cverb%7C%5Ctabskip%7C+command.+Here%2C+%5Cverb%7C%5Ctabskip%7C+is+providing+enough+%60%60glue%27%27+to+enable+the++%5Cverb%7C%5Cvalign%7C+rows+to++%60%60stretch+out%27%27+and+fill+any+available+extra+space.+Here+is+the+%60%60stretched+out%27%27+%5Cverb%7C%5Cvalign%7C+table%3A%0A%0A%5Ctabskip%3D0pt+plus1fil+%25+This+sets+%5Ctabskip+to+a+very+flexible+glue%0A%5Cvspace%7B6pt%7D%0A%0A%5Cdef%5Cmylen%7B50pt%7D%0A%5Cbegingroup%0A%5Chsize%3D30pt+%0A%5Cparindent%3D10pt%0A%5Cfbox%7B%5Cvalign+to+%5Cmylen%7B%0A%23%26%23%26%23%5Ccr%0AA%26B%26C%5Ccr%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%7D%0A%5Cendgroup%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıdaki çıktıyı üretir:

![](/files/2a7fc75a97f00f409452afb6973976d1c03aab9a)

## Tabloya giriş $$\langle$$⁠önsöz⁠$$\rangle$$ ve $$\langle$$⁠gövde⁠$$\rangle$$

Bu bölüm, tabloya bir giriş sağlar $$\langle$$⁠`önsöz`⁠$$\rangle$$ve *kısaca* tabloya değinir $$\langle$$⁠`gövde`⁠$$\rangle$$ bu daha sonra [daha ayrıntılı olarak incelenecektir](#bodydetails).

Bu dizideki sonraki makaleler $$\langle$$⁠`önsöz`⁠$$\rangle$$ ve $$\langle$$⁠`gövde`⁠$$\rangle$$ daha ayrıntılı olarak, özellikle de TeX’in tablo önsözünü kullanışını ve işlemesini inceleyecektir $$\langle$$⁠`önsöz`⁠$$\rangle$$.

Yukarıda belirtildiği gibi, `\halign` ya da `\valign` tablolarının en genel biçimi şu şekilde yazılabilir:

`\halign` $$\langle$$⁠`isteğe bağlı belirleme`⁠$$\rangle$$ { $$\langle$$⁠`önsöz`⁠$$\rangle$$ $$\langle$$⁠`gövde`⁠$$\rangle$$ }

`\valign` $$\langle$$⁠`isteğe bağlı belirleme`⁠$$\rangle$$ { $$\langle$$⁠`önsöz`⁠$$\rangle$$ $$\langle$$⁠`gövde`⁠$$\rangle$$ }

### Bu $$\langle$$⁠önsöz⁠$$\rangle$$

Bu $$\langle$$⁠`önsöz`⁠$$\rangle$$ bölüm tek bir $$\langle$$⁠`önsöz satırı`⁠$$\rangle$$ ki bu *ile sonlandırılır* ve `\\cr` komutu tarafından; dolayısıyla, $$\langle$$⁠`önsöz`⁠$$\rangle$$ şu şekilde yeniden yazılabilir:

$$\langle$$⁠`önsöz`⁠$$\rangle$$=$$\langle$$⁠`önsöz satırı`⁠$$\rangle$$**`\\cr`**

### Bu $$\langle$$⁠gövde⁠$$\rangle$$

Benzer şekilde, $$\langle$$⁠gövde⁠$$\rangle$$ bölüm, bir veya daha fazla bileşen "satıra" daha da ayrılabilir; ancak burada her satır için iki seçenek vardır:

* bir `\halign` satır ya da `\valign` sütun oluşturan hücreler kümesinden oluşan bir satır; veya
* a `\\noalign` ile materyali bir `\halign`'in satırları ya da `\valign`'nın sütunları arasına "enjekte eden" komut.

Şimdilik `\\noalign` komutunu göz ardı edeceğiz (bkz. [daha sonra makalede](#noalign)) ve $$\langle$$⁠gövde⁠$$\rangle$$ bölümünün her satırının bir dizi hücre için veri olduğunu ve *ile sonlandırılır* ile `\\cr` komutunu.

Yoksayarak `\\noalign`, ikinci $$\langle$$⁠`gövde`⁠$$\rangle$$ bölüm, kullanıcının içeriğini temsil eder ve her biri bizim $$\langle$$⁠`gövde satırı`⁠$$\rangle$$ olarak adlandıracağımız bir satır dizisi içerir *ile sonlandırılır* eşlik eden `\\cr` komutunu.

Bu $$\langle$$⁠`gövde`⁠$$\rangle$$ şu şekilde yeniden yazılabilir:

$$\langle$$⁠gövde satırı$${}\_1$$⁠$$\rangle$$\\\cr $$\langle$$⁠gövde satırı$${}\_2$$⁠$$\rangle$$\\\cr $$\langle$$⁠gövde satırı$${}*3$$⁠$$\rangle$$\cr ... $$\langle$$⁠gövde satırı$${}*\mathrm{N}$$⁠$$\rangle$$\\\cr

Bunları bir araya koyarsak, `\halign` ve `\valign` olarak:

`\halign` $$\langle$$⁠`isteğe bağlı belirleme`⁠$$\rangle$$ { $$\langle$$⁠`önsöz satırı`⁠$$\rangle$$\\\cr $$\langle$$⁠gövde satırı$${}\_1$$⁠$$\rangle$$\\\cr $$\langle$$⁠gövde satırı$${}\_2$$⁠$$\rangle$$\\\cr $$\langle$$⁠gövde satırı$${}*3$$⁠$$\rangle$$\cr ... $$\langle$$⁠gövde satırı$${}*\mathrm{N}$$⁠$$\rangle$$\cr }

`\valign` $$\langle$$⁠`isteğe bağlı belirleme`⁠$$\rangle$$ { $$\langle$$⁠`önsöz satırı`⁠$$\rangle$$\\\cr $$\langle$$⁠gövde satırı$${}\_1$$⁠$$\rangle$$\\\cr $$\langle$$⁠gövde satırı$${}\_2$$⁠$$\rangle$$\\\cr $$\langle$$⁠gövde satırı$${}*3$$⁠$$\rangle$$\cr ... $$\langle$$⁠gövde satırı$${}*\mathrm{N}$$⁠$$\rangle$$\cr }

İlerleyen makalelerde ele alınacak nedenlerle, $$\langle$$⁠`önsöz`⁠$$\rangle$$, yalnızca bir $$\langle$$⁠`önsöz satırı`⁠$$\rangle$$olan $$\langle$$⁠`gövde`⁠$$\rangle$$, tablodaki tüm satırlardan farklı bir biçime sahiptir [. Ayrıca `\\noalign` komut](#noalign) tablolar içinde de kullanılabilen $$\langle$$⁠`gövde`⁠$$\rangle$$.

### Bu $$\langle$$⁠önsöz satırı⁠$$\rangle$$

Bu $$\langle$$⁠`önsöz satırı`⁠$$\rangle$$ hayati bir *önemli* rol oynar; çünkü içerikleri dizgilemek için kullanılan bir tür “taslak” sağlar—`\halign` satırlar ya da `\valign` sütunlar—tabloda bulunan $$\langle$$⁠`gövde`⁠$$\rangle$$. The $$\langle$$⁠`önsöz satırı`⁠$$\rangle$$ bir `\halign` ya da bir `\valign`—bu, ayrıntılı olarak incelenecek bir konudur.

bölümünün amacı iki yönlüdür: $$\langle$$⁠`önsöz satırı`⁠$$\rangle$$ şunu belirler:

* bir *tarafından kapsanan girdilerin ötesine uzandığını not ediyoruz; ancak bu girdi* olarak sütun başına hücre sayısını `\halign` ya da bir `\valign`.
* şunu saklar *hücre şablonları* bunlar, tablo içindeki hücreler içinde biçimlendirmeyi ya da içerik eklemeyi otomatikleştirmek için kullanılabilir $$\langle$$⁠`gövde`⁠$$\rangle$$. Hücre şablonları isteğe bağlıdır ve "boş" olabilir; ya da tablonuzdaki belirli hücrelerin gerçek içeriğinden önce ve/veya sonra TeX’in otomatik olarak ekleyeceği karakterler ya da komutlar ekleyebilirsiniz. Bu, bunların uygulanmasını istediğiniz her hücreye o karakterleri ya da komutları elle yazma/ekleme zahmetinden sizi kurtarır.

**Not**: bir `\halign` satır ya da `\valign` sütun, $$\langle$$⁠`önsöz satırı`⁠$$\rangle$$ ile belirtilen en fazla sayıdan daha az hücre içerebilir, *döngüsel* önsözler.

Yapı diyagramlarımızla devam edersek, $$\langle$$⁠`önsöz satırı`⁠$$\rangle$$ için

* bir `\halign` en fazla $$\mathrm{K}$$ hücre içeren *satırı içinde yatay olarak*, veya
* a `\valign` en fazla $$\mathrm{K}$$ hücre içeren *sütunlu*

tablo şu şekilde yazılabilir:

$$\langle$$⁠şablon⁠$${}\_1$$⁠$$\rangle$$&$$\langle$$⁠şablon⁠$${}\_2$$⁠$$\rangle$$&$$\langle$$⁠şablon⁠$${}*3$$⁠$$\rangle$$ $$\cdots$$ &$$\langle$$⁠şablon⁠$${}*\mathrm{K}$$⁠$$\rangle$$

burada `&` şudur *hizalama sekmesi karakteri* bu, bir hücrenin sonunu ve bir sonrakinin başlangıcını belirtir. Geleneksel olarak, ve işareti (`&`) hizalama sekmesi olarak kullanılır, ancak [kategori kodu](/latex/tr/daha-fazla-konu/43-table-of-tex-category-codes.md) 4 değerine sahip herhangi bir karakter bunun yerine kullanılabilir.

Hatırlatmak gerekirse, $$\langle$$⁠`önsöz`⁠$$\rangle$$ şu şekilde yazılabilir $$\langle$$⁠`önsöz`⁠$$\rangle$$=$$\langle$$⁠`önsöz satırı`⁠$$\rangle$$**`\\cr`**, ya da eşdeğer olarak

$$\langle$$⁠`önsöz`⁠$$\rangle$$=$$\langle$$⁠şablon⁠$${}\_1$$⁠$$\rangle$$&$$\langle$$⁠şablon⁠$${}\_2$$⁠$$\rangle$$&$$\langle$$⁠şablon⁠$${}*3$$⁠$$\rangle$$ $$\cdots$$ &$$\langle$$⁠şablon⁠$${}*\mathrm{K}$$⁠$$\rangle$$**`\\cr`**

#### Her hücrenin yapısı $$\langle$$⁠şablon⁠$$\rangle$$

Her hücre $$\langle$$⁠şablon⁠$${}\_i$$⁠$$\rangle$$ tablo şu şekilde yazılabilir:

$$\langle$$⁠$$\texttt{U}\_i$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_i$$⁠$$\rangle$$ burada:

* $$\langle$$⁠$$\texttt{U}\_i$$⁠$$\rangle$$ TeX’in otomatik olarak ekleyeceği karakterler ya da komutlar (belirteçler) kümesidir *önce* kullanıcı tarafından sağlanan hücre içeriği $$i$$;
* $$\texttt{#}$$ bir yer tutucudur; hücrede kullanıcının sağladığı içeriğin nerede görüneceğini gösterir $$i$$. Yine, `#` karakteri sadece bir *gelenektir*, [kategori kodu](/latex/tr/daha-fazla-konu/43-table-of-tex-category-codes.md) 6 değerine sahip herhangi bir karakter bunun yerine kullanılabilir. Kategori kodu 6’nın makro parametreleri için kullanıldığını unutmayın;
* $$\langle$$⁠$$\texttt{V}\_i$$⁠$$\rangle$$ TeX’in otomatik olarak ekleyeceği karakterler ya da komutlar (belirteçler) kümesidir *sonrasına* kullanıcı tarafından sağlanan hücre içeriği $$i$$.

Tüm $$\langle$$⁠$$\texttt{U}\_i$$⁠$$\rangle$$ ve $$\langle$$⁠$$\texttt{V}\_i$$⁠$$\rangle$$ ise *isteğe bağlı*: hücrenin içeriğinden önce ya da sonra herhangi bir karakter veya komut kullanmak zorunda değilsiniz.

**Tamamlanması** $$\langle$$**⁠önsöz⁠**$$\rangle$$

Son olarak, yukarıdaki gösterimi kullanarak, $$\langle$$⁠`önsöz`⁠$$\rangle$$ için

* bir `\halign` en fazla $$\mathrm{K}$$ hücre içeren *satırı içinde yatay olarak*, veya
* a `\valign` en fazla $$\mathrm{K}$$ hücre içeren *sütunlu*

tablo şu şekilde yazılabilir:

$$\langle$$⁠`önsöz`⁠$$\rangle$$=$$\langle$$⁠`önsöz satırı`⁠$$\rangle$$`**\cr**`

ya da

$$\langle$$⁠`önsöz`⁠$$\rangle$$=$$\langle$$⁠$$\texttt{U}\_1$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_1$$⁠$$\rangle$$&$$\langle$$⁠$$\texttt{U}\_2$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_2$$⁠$$\rangle$$&$$\langle$$⁠$$\texttt{U}*3$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}*3$$⁠$$\rangle$$$$\cdots$$$$\langle$$⁠$$\texttt{U}*\mathrm{K}$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}*\mathrm{K}$$⁠$$\rangle$$`**\cr**`

**Bu** $$\langle$$**⁠önsöz⁠**$$\rangle$$ **ve satır ve sütunların sayılması**

Bir **`\halign`** tablosu, bir $$\langle$$⁠`önsöz`⁠$$\rangle$$ belirten $$\mathrm{K}$$ hücre ve bir $$\langle$$⁠`gövde`⁠$$\rangle$$ içeren $$\mathrm{N}$$ $$\langle$$⁠`gövde satırları`⁠$$\rangle$$ içeren bir tablo üretecektir $$\mathrm{K}$$ *sütun* ve $$\mathrm{N}$$ *satır*, aşağıdaki diyagramda gösterildiği gibi:

![](/files/957c5ccf57661d4268791af7dd82ec8387d4b4cc)

Bir **`\valign`** tablosu, bir $$\langle$$⁠`önsöz`⁠$$\rangle$$ belirten $$\mathrm{K}$$ hücre ve bir $$\langle$$⁠`gövde`⁠$$\rangle$$ içeren $$\mathrm{N}$$ $$\langle$$⁠`gövde satırları`⁠$$\rangle$$ içeren bir tablo üretecektir $$\mathrm{K}$$ *satır* ve $$\mathrm{N}$$ *sütun*, aşağıdaki diyagramda gösterildiği gibi:

![](/files/9d19321c237fbeafc1e6a03564de866df557035f)

### Yeterince teori, biraz örnek!

Birazdan ayrıntılı olarak göreceğimiz gibi, TeX bir tablonun içeriğini— [$$\langle$$⁠`gövde`⁠$$\rangle$$](#body)içindeki tablo hücrelerini—işlerken, $$\langle$$⁠`önsöz`⁠$$\rangle$$içinde tanımlanmış olan hücre şablonlarının varlığını denetler; çünkü TeX, kullanıcının içeriğinden önce ve/veya sonra eklenecek herhangi bir şablon belirtecini arar. Aşağıdaki, en küçük örnekler, hücre şablonlarının kullanımını gösterir $$\langle$$⁠$$\texttt{U}\_i$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_i$$⁠$$\rangle$$ bir `\halign` ve `\valign` tablo.

#### Hücre şablonları kullanan bir \halign tablosu

Aşağıdaki örnek, her satırın ilk hücresinin içeriğinin etrafına çift tırnak işaretlerini otomatik olarak eklemek için bir hücre şablonu kullanan bir `\halign` tabloyu gösterir; yani ilk sütundaki her hücreyi etkileyen bir şablon:

```latex
\documentclass{article}
\usepackage{parskip} % \parindent’i 0pt olarak ayarlayın
% Uygun derecede küçük bir sayfa boyutu seçin
\usepackage[paperheight=10cm,paperwidth=12cm,textwidth=8cm]{geometry}
\setlength{\tabskip}{20pt} % \halign sütunlarını aralayın
\begin{document}
\pagestyle{empty}

İşte hücre şablonları \textit{kullanmayan} bir \verb|\halign| tablosu:

\halign{
% <önsöz> içindeki her '#' işaretinin önünde ya da arkasında hiçbir şey yok
#&#&#\cr
A&B&C\cr
D&E&F\cr
G&H&I\cr
}

İşte aynı \verb|\halign| tablosu, ancak her satırın ilk hücresine otomatik olarak çift tırnak işaretleri eklenmiş halde; yani ilk sütundaki her hücreyi etkiliyor:

\halign{
% Önsözdeki tırnak şablonları:
``#''&#&#\cr % İlk # işaretinin önüne ve arkasına çift tırnak işaretleri
A&B&C\cr
D&E&F\cr
G&H&I\cr
}
\end{document}
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=halign+example+of+cell+templates\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bparskip%7D+%25+Set+%5Cparindent+to+0pt%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D10cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%5Csetlength%7B%5Ctabskip%7D%7B20pt%7D+%25+Space+out+the+%5Chalign+columns%0A%5Cbegin%7Bdocument%7D%0A%5Cpagestyle%7Bempty%7D%0A%0AHere+is+an+%5Cverb%7C%5Chalign%7C+table+%5Ctextit%7Bwithout%7D+cell+templates%3A+%0A%0A%5Chalign%7B%0A%25+Nothing+before+or+after+each+%27%23%27+in+the+%3Cpreamble%3E%0A%23%26%23%26%23%5Ccr+%0AA%26B%26C%5Ccr%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%0A%0AHere+is+the+same+%5Cverb%7C%5Chalign%7C+table+but+with+double+quotes+automatically+added+to+the+first+cell+in+each+row%3B+i.e.%2C+it+affects+every+cell+in+the+first+column%3A+%0A%0A%5Chalign%7B%0A%25+Quotation+templates+in+the+preamble%3A%0A%60%60%23%27%27%26%23%26%23%5Ccr+%25+Double+quote+marks+before+and+after+first+%23%0AA%26B%26C%5Ccr%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıdaki çıktıyı üretir:

![](/files/90129882a2b60798267ba3539245890635c57cce)

Aşağıdaki grafik, yukarıdaki örnekle üretilen `\halign` tablonun açıklamalı bir sürümüdür; burada, üç hücreli bir $$\langle$$⁠`önsöz`⁠$$\rangle$$:

$$\langle$$⁠$$\texttt{U}\_1$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_1$$⁠$$\rangle$$&$$\langle$$⁠$$\texttt{U}\_2$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_2$$⁠$$\rangle$$&$$\langle$$⁠$$\texttt{U}\_3$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_3$$⁠$$\rangle$$`**\cr**`

nin “resmî” yapısını gerçek $$\langle$$⁠`önsöz`⁠$$\rangle$$ için bir belirteç değeri oluşturur ` ``#''&#&#**\cr** `ile karşılaştırarak hücre şablonlarının varlığını ya da yokluğunu vurguluyoruz:

![](/files/c0efc68919021ad954639a04da7a2ac06bb46495)

#### Hücre şablonları kullanan bir \valign tablosu

Aşağıdaki örnek, bir `\valign` tablo için, kullanıcının içeriğini çevreleyen rakamları otomatik olarak eklemek üzere her hücre için bir şablon kullanan bir

```latex
\documentclass{article}
\usepackage{parskip} % \parindent’i 0pt olarak ayarlayın
% Uygun derecede küçük bir sayfa boyutu seçin
\usepackage[paperheight=14cm,paperwidth=12cm,textwidth=10cm]{geometry}
\setlength{\tabskip}{8pt} % \valign satırlarını aralayın
\begin{document}
\pagestyle{empty}

İşte hücre şablonları \textit{kullanmayan} bir \verb|\valign| tablosu:

\begingroup
\hsize=25pt
\valign{
% <önsöz> içindeki her '#' işaretinin önünde ya da arkasında hiçbir şey yok
%
#&#&#\cr
A&B&C\cr
D&E&F\cr
G&H&I\cr
}
\endgroup

İşte aynı \verb|\valign| tablosu, ancak her hücreye rakamları otomatik olarak eklemek için hücre şablonları kullanılarak oluşturulmuş halde:

\begingroup
\hsize=25pt
\valign{
% Her '#' işaretinin önüne ve arkasına rakamlar eklenmiştir
%
1#2&3#4&5#6\cr
A&B&C\cr
D&E&F\cr
G&H&I\cr
}
\endgroup
\end{document}
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+valign+cell+templates\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bparskip%7D+%25+Set+%5Cparindent+to+0pt%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D14cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D10cm%5D%7Bgeometry%7D%0A%5Csetlength%7B%5Ctabskip%7D%7B8pt%7D+%25+Space+out+the+%5Cvalign+rows%0A%5Cbegin%7Bdocument%7D%0A%5Cpagestyle%7Bempty%7D%0A%0AHere+is+a+%5Cverb%7C%5Cvalign%7C+table+%5Ctextit%7Bwithout%7D+cell+templates%3A%0A%0A%5Cbegingroup%0A%5Chsize%3D25pt%0A%5Cvalign%7B%0A%25+Nothing+before+or+after+each+%27%23%27+in+%0A%25+the+%3Cpreamble%3E%0A%23%26%23%26%23%5Ccr+%0AA%26B%26C%5Ccr%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%0A%5Cendgroup%0A%0AHere+is+the+same+%5Cverb%7C%5Cvalign%7C+table+but+using+cell+templates+to+automatically+insert+digits+into+every+cell%3A+%0A%0A%5Cbegingroup%0A%5Chsize%3D25pt%0A%5Cvalign%7B%0A%25+Digits+inserted+before+and+after+every+%27%23%27+in%0A%25+the+%3Cpreamble%3E%0A1%232%263%234%265%236%5Ccr+%0AA%26B%26C%5Ccr%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%0A%5Cendgroup%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıdaki çıktıyı üretir:

![](/files/c45e6f0e4c7349042a92d2314285f3f2a0a96615)

Aşağıdaki grafik, yukarıdaki örnekle üretilen `\valign` tablonun açıklamalı bir sürümüdür; burada, üç hücreli bir $$\langle$$⁠`önsöz`⁠$$\rangle$$:

$$\langle$$⁠$$\texttt{U}\_1$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_1$$⁠$$\rangle$$&$$\langle$$⁠$$\texttt{U}\_2$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_2$$⁠$$\rangle$$&$$\langle$$⁠$$\texttt{U}\_3$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_3$$⁠$$\rangle$$`**\cr**`

nin “resmî” yapısını gerçek $$\langle$$⁠`önsöz`⁠$$\rangle$$ için bir belirteç değeri oluşturur `1#2&3#4&5#6**\cr**`hücre şablonlarının kullanımını vurgulayarak $$\langle$$⁠$$\texttt{U}\_i$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_i$$⁠$$\rangle$$:

![](/files/a50f5fefedaefc4373d923a18cf265a40e0fc2b4)

Hücre $$i$$ ($$\langle$$⁠$$\texttt{U}\_i$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_i$$⁠$$\rangle$$) şablonunun $$i$$inci `\valign` sütunundaki her $$i$$inci *satırı içinde yatay olarak* etkilenir.

#### Hücre şablonları kullanarak metni biçimlendirme

Bir sonraki örnek aşağıdaki $$\langle$$⁠`önsöz`⁠$$\rangle$$ (hücre şablonları) kullanarak her satır ya da sütunda bulunan metni biçimlendirir:

`\textbf{#}&\textit{#}&\texttt{#}\cr`

Bu $$\langle$$⁠`önsöz`⁠$$\rangle$$ ile üç hücreli bir "resmî" yapımızı karşılaştırırsak $$\langle$$⁠`önsöz`⁠$$\rangle$$:

$$\langle$$⁠$$\texttt{U}\_1$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_1$$⁠$$\rangle$$&$$\langle$$⁠$$\texttt{U}\_2$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_2$$⁠$$\rangle$$&$$\langle$$⁠$$\texttt{U}\_3$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_3$$⁠$$\rangle$$`**\cr**`

şunları görebiliriz:

$$\langle$$⁠$$\texttt{U}\_1$$⁠$$\rangle$$=`\textbf{`

$$\langle$$⁠$$\texttt{V}\_1$$⁠$$\rangle$$=`}`

$$\langle$$⁠$$\texttt{U}\_2$$⁠$$\rangle$$=`\textit{`

$$\langle$$⁠$$\texttt{V}\_2$$⁠$$\rangle$$=`}`

$$\langle$$⁠$$\texttt{U}\_3$$⁠$$\rangle$$=`\texttt{`

$$\langle$$⁠$$\texttt{V}\_3$$⁠$$\rangle$$=`}`

Bu hücre şablonlarının, örneğin `\textbf{#}` tek bir parametreye (hücre içeriği) sahip makrolara benzediğine dikkat edin.

```latex
Hücre şablonları kullanılarak biçimlendirilmiş metin içeren bir \verb|\valign| tablosu:

\begingroup
\hsize=25pt
\valign{
\textbf{#}&\textit{#}&\texttt{#}\cr
A&B&C\cr
D&E&F\cr
G&H&I\cr
}
\endgroup

Hücre şablonları kullanılarak biçimlendirilmiş metin içeren bir \verb|\halign| tablosu:

\halign{
\textbf{#}&\textit{#}&\texttt{#}\cr
A&B&C\cr
D&E&F\cr
G&H&I\cr
}
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Styling+with+cell+templates\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bparskip%7D+%25+Set+%5Cparindent+to+0pt%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D14cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D6cm%5D%7Bgeometry%7D%0A%25+Space+out+the+%5Chalign+columns+or+%5Cvalign+rows%0A%5Csetlength%7B%5Ctabskip%7D%7B8pt%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cpagestyle%7Bempty%7D%0AA+%5Cverb%7C%5Cvalign%7C+table+with+text+styled+using+cell+templates%3A%0A%0A%5Cbegingroup%0A%5Chsize%3D25pt%0A%5Cvalign%7B%0A%5Ctextbf%7B%23%7D%26%5Ctextit%7B%23%7D%26%5Ctexttt%7B%23%7D%5Ccr+%0AA%26B%26C%5Ccr%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%0A%5Cendgroup%0A%0AAn+%5Cverb%7C%5Chalign%7C+table+with+text+styled+using+cell+templates%3A%0A%0A%5Chalign%7B%0A%5Ctextbf%7B%23%7D%26%5Ctextit%7B%23%7D%26%5Ctexttt%7B%23%7D%5Ccr+%0AA%26B%26C%5Ccr%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıdaki çıktıyı üretir:

![](/files/8e0928f4b3fbc838515e3d54fcb6a8319f531ab0)

## Tablo hakkında daha fazla ayrıntı $$\langle$$⁠gövde⁠$$\rangle$$

Bölümde [Tabloya giriş $$\langle$$⁠`önsöz`⁠$$\rangle$$ ve $$\langle$$⁠`gövde`⁠$$\rangle$$](#preamble) geçici olarak göz ardı edersek nasıl `\\noalign`, ikinci $$\langle$$⁠`gövde`⁠$$\rangle$$ bir `\halign` ya da `\valign` tablo birden çok satırdan oluşur, her biri $$\langle$$⁠gövde satırı$${}\_j$$⁠$$\rangle$$, burada:

* her bir $$\langle$$⁠gövde satırı$${}\_j$$⁠$$\rangle$$ ile sonlandırılır `\\cr` komut
* her bir $$\langle$$⁠gövde satırı$${}\_j$$⁠$$\rangle$$ bir `\halign` bir tablo satırıdır
* her bir $$\langle$$⁠gövde satırı$${}\_j$$⁠$$\rangle$$ bir `\valign` bir tablo sütunudur

Satır dizisi, $$\langle$$⁠gövde satırı$${}\_j$$⁠$$\rangle$$, burada $$j=1\ldots\mathrm{N}$$, üretir $$\mathrm{N}$$ birin satırları `\halign` ya da $$\mathrm{N}$$ bir için sütunlar `\valign`. Aşağıdaki diyagramda özetlendiği gibi, genel bir $$\langle$$⁠`önsöz`⁠$$\rangle$$ gibi

$$\langle$$⁠`önsöz`⁠$$\rangle$$=$$\langle$$⁠$$\texttt{U}\_1$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_1$$⁠$$\rangle$$&$$\langle$$⁠$$\texttt{U}\_2$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}\_2$$⁠$$\rangle$$&$$\langle$$⁠$$\texttt{U}*3$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}*3$$⁠$$\rangle$$$$\cdots$$$$\langle$$⁠$$\texttt{U}*\mathrm{K}$$⁠$$\rangle$$$$\texttt{#}$$$$\langle$$⁠$$\texttt{V}*\mathrm{K}$$⁠$$\rangle$$`**\cr**`

en fazla $$\mathrm{K}$$ hücre için hücre şablonları belirtir $$\mathrm{N}$$ $$\langle$$⁠`gövde satırı`⁠$$\rangle$$ girdilerini $$\langle$$⁠`gövde`⁠$$\rangle$$:

![](/files/aa3a8f32dc7bb4a5fd9d2850ff8ebb76af9cb276)

### Her birinin yapısı $$\langle$$⁠gövde satırı$${}\_j$$⁠$$\rangle$$

Her satır $$\langle$$⁠gövde satırı$${}\_j$$⁠$$\rangle$$ tablonun $$\langle$$⁠gövde⁠$$\rangle$$ en fazla $$\mathrm{K}$$ hücre için içerik içerir—tablo tarafından belirlenen $$\langle$$⁠önsöz⁠$$\rangle$$—ve genel biçimi şöyledir:

$$\langle$$⁠gövde satırı$${}\_j$$⁠$$\rangle$$=$$\langle$$⁠Hücre$${}\_1$$⁠$$\rangle$$$$\texttt{&}$$$$\langle$$⁠Hücre$${}\_2$$⁠$$\rangle$$$$\texttt{&}$$$$\langle$$⁠Hücre$${}*3$$⁠$$\rangle$$$$\texttt{&}$$$$\cdots$$$$\texttt{&}$$$$\langle$$⁠Hücre$${}*\mathrm{K}$$⁠$$\rangle$$`**\cr**`

burada:

* $$\langle$$⁠Hücre$${}\_i$$⁠$$\rangle$$ kullanıcının içeriğini temsil eder $$i$$nci hücre $$\langle$$⁠gövde satırı$${}\_j$$⁠$$\rangle$$
* şu **`&`** karakterine denir *hizalama sekme karakteri* (aynısı \texttt{\\&} içinde kullanıldığı gibi $$\langle$$⁠önsöz⁠$$\rangle$$) bu da bir hücrenin sonunu ve bir sonrakinin başlangıcını işaret eder. Yine, kullanımı **`&`** yalnızca bir gelenek (konvansiyon) meselesidir çünkü [kategori kodu](/latex/tr/daha-fazla-konu/43-table-of-tex-category-codes.md) 4 değerine sahip herhangi bir karakter bunun yerine kullanılabilir.

Her ne kadar her bir $$\langle$$⁠gövde satırı$${}\_j$$⁠$$\rangle$$ en fazla $$\mathrm{K}$$ hücre içerebilse de ( $$\langle$$⁠önsöz⁠$$\rangle$$) daha azını içerebilirler *daha az* den $$\mathrm{K}$$ hücre ve herhangi bir $$\langle$$⁠Hücre$${}\_i$$⁠$$\rangle$$ içine $$\langle$$⁠gövde satırı$${}\_j$$⁠$$\rangle$$ boş olabilir.

Aşağıdaki örnek, bir $$\langle$$⁠önsöz⁠$$\rangle$$ için bir belirteç değeri oluşturur `#&#&#&#&#\cr` bu da her bir için en fazla 5 hücre sağlar $$\langle$$⁠gövde satırı⁠$$\rangle$$; ancak, dizilmiş tablolar 5'ten az hücre içeren satırlar barındırır:

```latex
1 ile 5 hücre arasında içeren bir \verb|\valign| tablosu \textit{sütun} başına:

\begingroup
% \hsize, \valign sütun genişliklerini (dizilmiş satırların boyutu) kontrol eder.
\hsize=40pt
\fbox{\valign{
% Sütun başına 5 hücreye izin veren bir başlangıç bölümü kullanın
% Çoğu sütun 5 hücre için içerik sağlamaz
#&#&#&#&#\cr% sütun başına 5 hücre
\(\mathrm{Hücre}{}_1\)\cr
\(\mathrm{Hücre}{}_1\)&\(\mathrm{Hücre}{}_2\)\cr
\(\mathrm{Hücre}{}_1\)&\(\mathrm{Hücre}{}_2\)&\(\mathrm{Hücre}{}_3\)\cr
\(\mathrm{Hücre}{}_1\)&\(\mathrm{Hücre}{}_2\)&\(\mathrm{Hücre}{}_3\)&\(\mathrm{Hücre}{}_4\)\cr
\(\mathrm{Hücre}{}_1\)&\(\mathrm{Hücre}{}_2\)&\(\mathrm{Hücre}{}_3\)&\(\mathrm{Hücre}{}_4\)&\(\mathrm{Hücre}{}_5\)\cr
}}
\endgroup

% Not: daha sonra açıklanacak nedenlerle
% \halign bir \vbox içine yerleştirilmelidir
1 ile 5 hücre arasında içeren bir \verb|\halign| tablosu \textit{satır} başına:

\fbox{%
\vbox{\halign{
% Satır başına 5 hücreye izin veren bir başlangıç bölümü kullanın
% Çoğu satır 5 hücre için içerik sağlamaz
#&#&#&#&#\cr % satır başına 5 hücre
\(\mathrm{Hücre}{}_1\)\cr
\(\mathrm{Hücre}{}_1\)&\(\mathrm{Hücre}{}_2\)\cr
\(\mathrm{Hücre}{}_1\)&\(\mathrm{Hücre}{}_2\)&\(\mathrm{Hücre}{}_3\)\cr
\(\mathrm{Hücre}{}_1\)&\(\mathrm{Hücre}{}_2\)&\(\mathrm{Hücre}{}_3\)&\(\mathrm{Hücre}{}_4\)\cr
\(\mathrm{Hücre}{}_1\)&\(\mathrm{Hücre}{}_2\)&\(\mathrm{Hücre}{}_3\)&\(\mathrm{Hücre}{}_4\)&\(\mathrm{Hücre}{}_5\)\cr
}}}
```

[Bu örneği Overleaf'te açın](/latex/tr/derinlemesine-makaleler/15-how-do-tex-engines-typeset-tables-2.md)

Bu örnek aşağıdaki çıktıyı üretir:

![](/files/7d4394af2fcab2c55d7ed8146321bde260eeb738)

Bir sonraki `\halign` örneği, satır başına değişen sayıda hücreyi ve hücrelerin boş olabilmesini gösterir—boş hücrelerin tablodaki ardışık **`&`** karakterleriyle nasıl oluşturulduğuna dikkat edin:

```latex
Bazı boş hücreler içeren bir \verb|\halign| tablosu—tabloda ardışık \texttt{\&} karakterleri olduğuna dikkat edin \(\langle\texttt{gövde}\rangle\):

\fbox{%
\vbox{\halign{
% Satır başına 5 hücreye izin veren bir başlangıç bölümü kullanın
% Çoğu satır 5 hücre için içerik sağlamaz
#&#&#&#&#\cr % satır başına 5 hücre
\(\mathrm{Hücre}{}_1\)\cr
\(\mathrm{Hücre}{}_1\)&\(\mathrm{Hücre}{}_2\)\cr
\(\mathrm{Hücre}{}_1\)&&\(\mathrm{Hücre}{}_3\)\cr
&\(\mathrm{Hücre}{}_2\)&\(\mathrm{Hücre}{}_3\)&\(\mathrm{Hücre}{}_4\)\cr
\(\mathrm{Hücre}{}_1\)&\(\mathrm{Hücre}{}_2\)&&&\(\mathrm{Hücre}{}_5\)\cr
}}}
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Empty+cells+Number+of+cells+per+row\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bparskip%7D+%25+Set+%5Cparindent+to+0pt%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Space+out+the+%5Chalign+columns+and+%5Cvalign+rows%0A%5Csetlength%7B%5Ctabskip%7D%7B8pt%7D+%0A%25+Close-fitting+box+borders+%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%5Cbegin%7Bdocument%7D%0AAn+%5Cverb%7C%5Chalign%7C+table+with+some+empty+cells---note+there+are+consecutive+%5Ctexttt%7B%5C%26%7D+characters+in+the+table+%5C%28%5Clangle%5Ctexttt%7Bbody%7D%5Crangle%5C%29%3A%0A%0A%5Cfbox%7B%25%0A%5Cvbox%7B%5Chalign%7B%0A%25+Use+a+preamble+that+allows+for+5+cells+per+row%0A%25+Most+rows+don%27t+provide+content+for+5+cells%0A%23%26%23%26%23%26%23%26%23%5Ccr+%25+5+cells+per+row%0A%5C%28%5Cmathrm%7BCell%7D%7B%7D_1%5C%29%5Ccr+%0A%5C%28%5Cmathrm%7BCell%7D%7B%7D_1%5C%29%26%5C%28%5Cmathrm%7BCell%7D%7B%7D_2%5C%29%5Ccr%0A%5C%28%5Cmathrm%7BCell%7D%7B%7D_1%5C%29%26%26%5C%28%5Cmathrm%7BCell%7D%7B%7D_3%5C%29%5Ccr%0A%26%5C%28%5Cmathrm%7BCell%7D%7B%7D_2%5C%29%26%5C%28%5Cmathrm%7BCell%7D%7B%7D_3%5C%29%26%5C%28%5Cmathrm%7BCell%7D%7B%7D_4%5C%29%5Ccr%0A%5C%28%5Cmathrm%7BCell%7D%7B%7D_1%5C%29%26%5C%28%5Cmathrm%7BCell%7D%7B%7D_2%5C%29%26%26%26%5C%28%5Cmathrm%7BCell%7D%7B%7D_5%5C%29%5Ccr%0A%7D%7D%7D%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıdaki çıktıyı üretir:

![](/files/1436d5e5c576bde06da9917c176acb22fc610ad6)

### Tablo dizgisinde & ve # ile ilgili özel bir şey yok

TeX’in karakterleri kullanması `&` ve `#` dizgi içinde `\halign`- ya da `\valign`-tabanlı tablolar, Knuth'un orijinal düz TeX makrolarından kaynaklanan bir gelenektir. Şunlar dışındaki karakterleri kullanmak gayet mümkündür: `&` ve `#` aşağıdaki örneğin gösterdiği gibi, tercih ettiğiniz yerine koymalara uygun kategori kodları atayarak:

* yerine koymak `&` ile `@` atayarak `@` kategori kodu 4'e
* yerine koymak `#` ile `|` atayarak `|` kategori kodu 6'ya (makro parametreleri için kullanılır)

Kategori değişiklikleri yerel tutulur `\begingroup` ve `\endgroup`:

```latex
\documentclass{article}
\begin{document}
\begingroup
\catcode`@=4
\catcode`|=6
\halign{
|@|@|\cr
A@B@C\cr
D@E@F\cr
}
\endgroup
\end{document}
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Tables+and+category+codes\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegingroup%0A%5Ccatcode%60%40%3D4%0A%5Ccatcode%60%7C%3D6%0A%5Chalign%7B%0A%7C%40%7C%40%7C%5Ccr%0AA%40B%40C%5Ccr%0AD%40E%40F%5Ccr%0A%7D%0A%5Cendgroup%0A%5Cend%7Bdocument%7D)

## \noalign komutunu yeniden tanıtalım

TeX motorları yerleşik (ilkel) `\\noalign` komutuyla:

`\noalign{`$$\langle$$⁠`tokenlar`⁠$$\rangle$$`}`

burada $$\langle$$⁠`tokenlar`⁠$$\rangle$$ karakterler ve/veya TeX/LaTeX komutlarıdır.  `\\noalign` komutu yalnızca bir `\halign` ya da `\valign` tablo içinde kullanılmak içindir: bunların dışında kullanmak hata oluşturur.

Amacı `\\noalign` metnin ve TeX/LaTeX komutlarının "eklenmesine" izin vermektir *arasında* birin satırları `\halign` tablo veya birin sütunları `\valign` tablo. \nin en yaygın kullanımı `\\noalign` tablo kuralları (çizgileri) oluşturmaktır:

* *yatay* aralarındaki çizgiler `\halign` tablo satırları
* *dikey* aralarındaki çizgiler `\valign` tablo sütunları

Şunlara dikkat edin:

* şu `\\noalign` şu şekildedir ***ile sonlandırılmaz\*\*\*\*****&#x20;****`\\cr`****&#x20;****\*\*\*\*komutu***
* içinde izin verilen komutlar kümesi `\noalign{...}` kullanılmasına bağlıdır $$\langle$$⁠`gövde`⁠$$\rangle$$ bir `\halign` ya da `\valign` tablo (yani, dikey veya yatay kipte).

Artık tablo $$\langle$$⁠`gövde`⁠$$\rangle$$ için bir belirteç değeri oluşturur `\halign` ya da `\valign` bireysel satırlardan oluşabilir $$\langle$$⁠gövde satırı$${}\_i$$⁠$$\rangle$$`\\cr` arasına serpiştirilmiş `\\noalign` komutlarla; olası birçok seçenek/kombinasyondan biri şöyle olabilir:

`\noalign{`$$\langle$$⁠`tokenlar`⁠$$\rangle$$`}` $$\langle$$⁠gövde satırı$${}\_1$$⁠$$\rangle$$\\\cr $$\langle$$⁠gövde satırı$${}\_2$$⁠$$\rangle$$\\\cr `\noalign{`$$\langle$$⁠`daha fazla belirteç`⁠$$\rangle$$`}` $$\langle$$⁠gövde satırı$${}*3$$⁠$$\rangle$$\cr ... $$\langle$$⁠gövde satırı$${}*\mathrm{N}$$⁠$$\rangle$$\\\cr `\noalign{`$$\langle$$⁠`diğer belirteçler`⁠$$\rangle$$`}`

### \noalign kullanarak örnek

Bu makale dizisinin ilerleyen bölümlerinde diğer kullanım durumlarına bakacağız, ancak burada aracılığıyla tablo kuralları oluşturmayı göstermek için temel bir örnek var `\\noalign`:

```latex
\setlength{\tabskip}{5pt}

Bir \verb|\halign| tablosunun satırları arasına yatay çizgiler yerleştirmek için \verb|\noalign| kullanımı:
\vspace{6pt}

\halign{%
#&#&#&#&#\cr
\noalign{\hrule\kern2pt}
1&2&3&4&5\cr
\noalign{\kern2pt\hrule\kern2pt}
6&7&8&9&10\cr
\noalign{\kern2pt\hrule}
}

Bir \verb|\valign| tablosunun sütunları arasına dikey çizgiler yerleştirmek için \verb|\noalign| kullanımı:
\vspace{6pt}

\begingroup % \parindent ve \hsize üzerindeki değişiklikleri yerel tut
\parindent=0pt
\hsize=50pt
\valign{%
#&#&#&#&#\cr
\noalign{\vrule\kern2pt}
1&2&3&4&5\cr
\noalign{\kern2pt\vrule\kern2pt}
6&7&8&9&10\cr
\noalign{\kern2pt\vrule}
}
\endgroup
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+the+noalign+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D10cm%2Ctextwidth%3D6cm%5D%7Bgeometry%7D%0A%5Cusepackage%7Bverbatim%7D+%0A%5Cusepackage%7Bparskip%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cpagestyle%7Bempty%7D%0A%5Csetlength%7B%5Ctabskip%7D%7B5pt%7D%0A%0AUsing+%5Cverb%7C%5Cnoalign%7C+to+place+horizontal+rules+between+rows+of+an+%5Cverb%7C%5Chalign%7C+table%3A%0A%5Cvspace%7B6pt%7D%0A%0A%5Chalign%7B%25%0A%23%26%23%26%23%26%23%26%23%5Ccr%0A%5Cnoalign%7B%5Chrule%5Ckern2pt%7D%0A1%262%263%264%265%5Ccr%0A%5Cnoalign%7B%5Ckern2pt%5Chrule%5Ckern2pt%7D%0A6%267%268%269%2610%5Ccr%0A%5Cnoalign%7B%5Ckern2pt%5Chrule%7D%0A%7D%0A%0AUsing+%5Cverb%7C%5Cnoalign%7C+to+place+vertical+rules+between+columns+of+a+%5Cverb%7C%5Cvalign%7C+table%3A%0A%5Cvspace%7B6pt%7D%0A%0A%5Cbegingroup+%25+keep+changes+to+%5Cparindent+and+%5Chsize+local%0A%5Cparindent%3D0pt%0A%5Chsize%3D50pt%0A%5Cvalign%7B%25%0A%23%26%23%26%23%26%23%26%23%5Ccr%0A%5Cnoalign%7B%5Cvrule%5Ckern2pt%7D%0A1%262%263%264%265%5Ccr%0A%5Cnoalign%7B%5Ckern2pt%5Cvrule%5Ckern2pt%7D%0A6%267%268%269%2610%5Ccr%0A%5Cnoalign%7B%5Ckern2pt%5Cvrule%7D%0A%7D%0A%5Cendgroup%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıdaki çıktıyı üretir:

![](/files/ad625ed8deb25fa37d9b728b91af44b26aa32f06)

## tabskip yeniden gözden geçirildi

komuta daha yakından bakacağız `\tabskip` önceki bölümdeki [girişe dayanarak](#tabskip).

Bu `\tabskip` komutu, kullanılan özel bir "aralık" (glue) biçiminin değerini ayarlar *yalnızca* tablo dizgisinde: amacı tablo satırları veya sütunları arasında boşluk sağlamaktır:

* için `\halign` tablolar: `\tabskip` glue tablonun önüne ve arkasına (yani soluna ve sağına) ve tablo sütunları arasına yerleştirilir
* için `\valign` tablolar: `\tabskip` glue tablonun önüne ve arkasına (yani üstüne ve altına) ve tablo satırları arasına yerleştirilir

Değeri `\tabskip` LaTeX kullanılarak ayarlanabilir `\setlength` komutuyla:

`\setlength{\tabskip}{`$$\langle$$⁠`glue değeri`⁠$$\rangle$$`}`

burada $$\langle$$⁠`glue değeri`⁠$$\rangle$$ şöyle olabilir:

* şu gibi sabit bir uzunluk: `5pt`, `3mm`, veya
* şu gibi sonlu esnek bir glue: `3pt plus 2pt minus 1pt`, veya
* şu gibi sonsuz esnek bir glue: `0pt plus1fill`.

Ayrıca doğrudan da ayarlayabilirsiniz `\tabskip` (atlayarak `\setlength`)

`\tabskip`=$$\langle$$⁠`glue değeri`⁠$$\rangle$$

Ancak, değerindeki herhangi bir değişiklik `\tabskip` glue, yalnızca bu değişiklik şu olduğunda tablo aralığını etkiler:

* yapıldığında *önce* şu `\halign` ya da `\valign` komutunun işlenmesi sırasında, ya da
* tablonun içinde yapıldığında $$\langle$$⁠`önsöz`⁠$$\rangle$$

Ayarlama girişimleri `\tabskip` değerleri tablo içeriğinin içinde (tablodaki hücrelerde $$\langle$$⁠`gövde`⁠$$\rangle$$) *olmayacağını* boşluğunu değiştirmez `\halign` tablo sütunlarının veya `\valign` tablo satırlarının. \nin bu davranışının nedeni `\tabskip` tarafından oynanan role kadar izlenebilir $$\langle$$⁠`önsöz`⁠$$\rangle$$ tablo dizgisi sırasında—daha sonra ayrıntılı olarak inceleyeceğimiz süreçler.

### Görmek inanmaktır

Tabloların dizgisinde kullanılan çeşitli boşluk/glue türlerinin varlığını görselleştirmeye yardımcı olmak için, özellikle

* `\tabskip` glue
* `\\baselineskip` glue
* manuel kerning (`\\kern`)

Overleaf, tablonun bileşenlerini renklendirmek için LuaTeX tabanlı bir proje hazırladı. LuaTeX, dizilmiş tabloların iç veri/yapılarının düşük seviyeli yeniden işlenmesini sağladığı için seçildi, ancak burada bu ayrıntıları incelemeyeceğiz.

İşte çeşitli uygulamalarını gösteren bazı örnekler `\tabskip`. Her örnek için gerçek çıktıyı ve LuaTeX tarafından üretilen renklendirilmiş sürümü göstereceğiz.

### \tabskip örneği 1

kullanımını inceleyelim `\tabskip` bir `\halign` ve `\valign` tablo. Gerçek dizilmiş tabloları, boyutlarını ve boşluklarını görselleştirmek için bir kenarlıkla birlikte, ayrıca her tabloda çeşitli glue'ların/boşlukların boyutunu açıkça gösteren renklendirilmiş sürümler içeren açıklamalı grafiklerle birlikte göstereceğiz.

İlk olarak, `\halign`:

```latex
% Tablonun kapladığı alanı görselleştirmek için etrafına bir kenarlık koyacağız
% Sıkıca oturan kenarlıklar kullanın

% Burada \tabskip'i "doğrudan" ayarlıyoruz
\tabskip5pt % Başlangıç \tabskip değerini tablonun dışında ayarla

% Tablonun etrafına bir kenarlık koymak için onun bir TeX kutusunda saklanması gerekir.
% Bir \halign, bir \vbox içine yerleştirilmelidir çünkü \halign
% "dikey kipte" işlenir: bir \hbox işe yaramaz çünkü
% bu "yatay kipte" işlenir

\fbox{\vbox{\halign{
\tabskip10pt#&
\tabskip15pt#&
\tabskip20pt#\cr
A&B&C\cr
D&E&F\cr
G&H&I\cr
}}}
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Tabskip+glue+in+an+halign\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D10cm%2Ctextwidth%3D6cm%5D%7Bgeometry%7D%0A%5Cusepackage%7Bverbatim%7D+%0A%5Cusepackage%7Bparskip%7D+%25+sets+%5Cparindent+to+0pt%0A%5Cbegin%7Bdocument%7D%0A%5Cpagestyle%7Bempty%7D%0A%25+To+visualize+the+table%27s+extent+we%27ll+put+a+border+around+it+%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D+%25+Use+close-fitting+borders%0A%0A%25+Here+we+set+%5Ctabskip+%22directly%22%0A%5Ctabskip5pt+%25+Set+the+initial+%5Ctabskip+value+outside+the+table%0A%0A%25+To+put+a+border+around+the+table+it+has+to+be+saved+to+a+TeX+box.%0A%25+An+%5Chalign+has+to+be+placed+in+a+%5Cvbox+because+%5Chalign+must+be+%0A%25+processed+in+a+%22vertical+mode%22%3A+an+%5Chbox+will+not+work+because%0A%25+that+is+processed+in+a+%22horizontal+mode%22%0A%0A%5Cfbox%7B%5Cvbox%7B%5Chalign%7B%0A%5Ctabskip10pt%23%26%0A%5Ctabskip15pt%23%26%0A%5Ctabskip20pt%23%5Ccr%0AA%26B%26C%5Ccr%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%7D%7D%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıdaki çıktıyı üretir:

![](/files/a162dc4b4ba4a3b389f1d7663fefdc66da39ffb1)

Sonraki grafik, önceki örneğin ürettiği tablonun daha büyük, renklendirilmiş ve açıklamalı bir sürümüdür:

![](/files/07652d6c95c74f96e14559275111fab3534837cd)

\nin 4 örneği vardır `\tabskip` komutu, her biri tablonun içindeki belirli bir boşluk konumuna karşılık gelir:

1. `\tabskip5pt` tablonun dışında kullanılır ve `\tabskip` değeri her satırdaki ilk hücrenin önüne (soluna) uygulanır.
2. `\tabskip10pt` birinci hücre şablonunda ayarlanır $$\langle$$⁠`önsöz`⁠$$\rangle$$ bu da arasındaki boşluğu etkiler $$\langle$$⁠Hücre$${}\_1$$⁠$$\rangle$$ ve $$\langle$$⁠Hücre$${}\_2$$⁠$$\rangle$$ her satırın
3. `\tabskip15pt` ikinci hücre şablonunda ayarlanır $$\langle$$⁠`önsöz`⁠$$\rangle$$ bu da arasındaki boşluğu etkiler $$\langle$$⁠Hücre$${}\_2$$⁠$$\rangle$$ ve $$\langle$$⁠Hücre$${}\_3$$⁠$$\rangle$$ her satırın
4. `\tabskip20pt` üçüncü ve son hücre şablonunda ayarlanır $$\langle$$⁠`önsöz`⁠$$\rangle$$ bu da sonrasında eklenen boşluğu etkiler $$\langle$$⁠Hücre$${}\_3$$⁠$$\rangle$$, her satırın son hücresi.

Şimdi, `\valign`

```latex
% Sıkıca oturan kenarlıklar kullanın
\tabskip5pt % Başlangıç \tabskip değerini tablonun dışında ayarla

% \hsize üzerindeki değişiklikleri yerel tutun (bir grup içinde)
\begingroup
% \hsize, \valign sütun genişliklerini belirler
\setlength{\hsize}{50pt}
% \valign bir \vbox veya \hbox içine yerleştirilebildiğinden, kullanabiliriz
% \fbox'ı doğrudan
\fbox{\valign{
\tabskip10pt#&
\tabskip15pt#&
\tabskip20pt#\cr
A&B&C\cr
E&E&F\cr
G&H&I\cr
}}
\endgroup
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+halign\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D10cm%2Ctextwidth%3D6cm%5D%7Bgeometry%7D%0A%5Cusepackage%7Bverbatim%7D+%0A%5Cusepackage%7Bparskip%7D+%25+sets+%5Cparindent+to+0pt%0A%5Cbegin%7Bdocument%7D%0A%5Cpagestyle%7Bempty%7D%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D+%25+Use+close-fitting+borders%0A%5Ctabskip5pt+%25+Set+the+initial+%5Ctabskip+value+outside+the+table%0A%0A%25+Keep+changes+to+%5Chsize+local+%28in+a+group%29%0A%5Cbegingroup%0A%25+%5Chsize+determines+the+%5Cvalign+column+widths%0A%5Csetlength%7B%5Chsize%7D%7B50pt%7D+%0A%25+Because+%5Cvalign+can+be+placed+in+a+%5Cvbox+or+%5Chbox+we+can+use+%0A%25+%5Cfbox+directly%0A%5Cfbox%7B%5Cvalign%7B%0A%5Ctabskip10pt%23%26%0A%5Ctabskip15pt%23%26%0A%5Ctabskip20pt%23%5Ccr%0AA%26B%26C%5Ccr%0AE%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%7D%7D%0A%5Cendgroup%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıdaki çıktıyı üretir:

![](/files/da060dc3d2b3f91c150e50c1c331e7d0fe6d9ec4)

Yine, sonraki grafik önceki örneğin ürettiği tablonun daha büyük, renklendirilmiş ve açıklamalı bir sürümüdür:

![](/files/9828f1867595a8117f1d80336d862a4ccf16838b)

ile olduğu gibi `\halign` örnekte, \nin 4 örneği vardır `\tabskip` komutu. Ancak, bir `\valign` tablosunda `\tabskip` tablo satırları arasına yerleştirilir:

1. `\tabskip5pt` tablonun dışında kullanılır ve `\tabskip` değeri her sütundaki ilk hücrenin önüne (üstüne) uygulanır.
2. `\tabskip10pt` birinci hücre şablonunda ayarlanır $$\langle$$⁠`önsöz`⁠$$\rangle$$ bu da arasındaki boşluğu etkiler $$\langle$$⁠Hücre$${}\_1$$⁠$$\rangle$$ ve $$\langle$$⁠Hücre$${}\_2$$⁠$$\rangle$$ her sütunun
3. `\tabskip15pt` ikinci hücre şablonunda ayarlanır $$\langle$$⁠`önsöz`⁠$$\rangle$$ bu da arasındaki boşluğu etkiler $$\langle$$⁠Hücre$${}\_2$$⁠$$\rangle$$ ve $$\langle$$⁠Hücre$${}\_3$$⁠$$\rangle$$ her sütunun
4. `\tabskip20pt` üçüncü ve son hücre şablonunda ayarlanır $$\langle$$⁠`önsöz`⁠$$\rangle$$ bu da sonrasında eklenen boşluğu etkiler $$\langle$$⁠Hücre$${}\_3$$⁠$$\rangle$$, her sütunun son hücresi.

**Özet/sonuçlar**

* Bir `\halign` tablosunda `\tabskip` glue her hücrenin sağına ve soluna yerleştirilir, böylece tablo sütunları arasında boşluk oluşturulur.
* Bir `\valign` tablosunda `\tabskip` glue her hücrenin üstüne ve altına yerleştirilir, böylece tablo satırları arasında boşluk oluşturulur.

### \tabskip ve \noalign

#### \halign kullanarak

Aşağıdaki `\halign` örneği kullanır `\tabskip` glue'ları da kullanır ve ayrıca `\\noalign` komutunu, bir ... satırlarının üstüne ve altına aralıklı çizgiler yerleştirmek için kullanarak `\halign` tablo. Bu çizgiler `\\hrule` (ilkel) komutu ile birlikte ... tarafından oluşturulan boşluk kullanılarak dizilir `\\kern`:

```latex
\setlength{\tabskip}{5pt} % Tablo dışında \tabskip'i ayarla

\halign{
#&#&#&#&#\cr % <başlangıç bölümü>
\noalign{\hrule\kern2pt} % 1. satırdan önce aralıklı kural
1&2&3&4&5\cr % 1. satır
\noalign{\kern2pt\hrule\kern2pt} % 1. ve 2. satırlar arasındaki aralıklı kural
6&7&8&9&10\cr % 2. satır
\noalign{\kern2pt\hrule\kern2pt} % 2. ve 3. satırlar arasındaki aralıklı kural
11&12&13&14&15\cr % 3. satır
16&17&18&19&20\cr % 4. satır---3. ve 4. satırlar arasında kural yok
\noalign{\kern2pt\hrule} % Tablo sonunda aralıklı kural
}
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+halign\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D10cm%2Ctextwidth%3D6cm%5D%7Bgeometry%7D%0A%5Cusepackage%7Bverbatim%7D+%0A%5Cusepackage%7Bparskip%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cpagestyle%7Bempty%7D%0A%5Csetlength%7B%5Ctabskip%7D%7B5pt%7D+%25+Set+%5Ctabskip+outside+of+the+table%0A%0A%5Chalign%7B%0A%23%26%23%26%23%26%23%26%23%5Ccr+%25+The+%3Cpreamble%3E%0A%5Cnoalign%7B%5Chrule%5Ckern2pt%7D+%25+Spaced+rule+before+row+1%0A1%262%263%264%265%5Ccr+%25+Row+1%0A%5Cnoalign%7B%5Ckern2pt%5Chrule%5Ckern2pt%7D+%25+Spaced+rule+between+rows+1%2F2+%0A6%267%268%269%2610%5Ccr+%25+Row+2%0A%5Cnoalign%7B%5Ckern2pt%5Chrule%5Ckern2pt%7D+%25+Spaced+rule+between+rows+2%2F3+%0A11%2612%2613%2614%2615%5Ccr+%25+Row+3%0A16%2617%2618%2619%2620%5Ccr+%25+Row+4---no+rules+between+rows+3%2F4%0A%5Cnoalign%7B%5Ckern2pt%5Chrule%7D+%25+Space+rule+at+table+end%0A%7D%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıda gösterilen tabloyu üretir; bu tablo, (La)TeX kodunu ve (1) ile (4) arasındaki numaraları yeniden üretmek için ayrıca notlandırılmıştır `\\noalign` kuralları ve kernleri içeren komutları, bunların karşılık gelen dizilmiş çıktılarıyla birlikte:

![](/files/d820a81f9480f69a9b22f4286e4d941dbdf4d9d8)

Aşağıdaki grafik, tablodaki çeşitli boşlukları/glue'ları göstermek için etiketlenmiş, renklendirilmiş bir sürümü gösterir:

![](/files/1628183b4b933a32514b0dfa6fc0a2ca2640e7bf)

Şunlara dikkat edin:

* kullanımı `\\noalign` bazı satırlar arasına kurallar yerleştirmek için ve manuel kullanımı `\\kern` değerlerinin, kurallardan önce/sonra biraz boşluk koymak için kullanılması. TeX motorları `\\baselineskip` dizilmiş bir kuralı izleyen glue'yu eklemez `\\kern` (başka boşluk komutları kullanılabilir);
* `\\baselineskip` glue, 3. ve 4. satırlar arasına otomatik olarak eklendi.

#### \valign kullanarak

Aşağıdaki `\valign` örneği öncekiyle aynı verileri kullanır `\halign`:

```latex
\begingroup
\setlength{\parindent}{10pt}
\setlength{\hsize}{50pt}
\setlength{\tabskip}{5pt}
\valign{
#&#&#&#&#\cr
\noalign{\vrule\kern2pt}
1&2&3&4&5\cr
\noalign{\kern2pt\vrule\kern2pt}
6&7&8&9&10\cr
\noalign{\kern2pt\vrule\kern2pt}
11&12&13&14&15\cr
16&17&18&19&20\cr
\noalign{\kern2pt\vrule}
}
\endgroup
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+halign\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D10cm%5D%7Bgeometry%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cpagestyle%7Bempty%7D%0A%5Cbegingroup%0A%5Csetlength%7B%5Cparindent%7D%7B10pt%7D%0A%5Csetlength%7B%5Chsize%7D%7B50pt%7D%0A%5Csetlength%7B%5Ctabskip%7D%7B5pt%7D%0A%5Cvalign%7B%0A%23%26%23%26%23%26%23%26%23%5Ccr%0A%5Cnoalign%7B%5Cvrule%5Ckern2pt%7D%0A1%262%263%264%265%5Ccr%0A%5Cnoalign%7B%5Ckern2pt%5Cvrule%5Ckern2pt%7D%0A6%267%268%269%2610%5Ccr%0A%5Cnoalign%7B%5Ckern2pt%5Cvrule%5Ckern2pt%7D%0A11%2612%2613%2614%2615%5Ccr%0A16%2617%2618%2619%2620%5Ccr%0A%5Cnoalign%7B%5Ckern2pt%5Cvrule%7D%0A%7D%0A%5Cendgroup%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıda gösterilen tabloyu üretir; bu tablo, (La)TeX kodunu ve (1) ile (4) arasındaki numaraları yeniden üretmek için ayrıca notlandırılmıştır `\\noalign` kuralları ve kernleri içeren komutları, bunların karşılık gelen dizilmiş çıktılarıyla birlikte:

![](/files/5dd6519ce4f0b9a66d50a2216f29ea26d6cdcb6c)

![](/files/6a6245eba4b50e5c3930aaef659896ef3117bf0b)

### Metin satırları içeren bir \valign tablosu

Bir sonraki örnek

```latex
\setlength{\tabskip}{5pt}
\begingroup % \parindent ve \hsize üzerindeki değişiklikleri yerel tut
\setlength{\parindent}{10pt}
\setlength{\hsize}{75pt}
\valign{
#&#&#\cr
\noalign{\vrule\kern5pt}
\TeX{} çok karmaşık
tablolar.&İşte biraz ekstra
metin.&Ve, son olarak, bir ekstra satır
bu sütunda.\cr
\noalign{\kern5pt\vrule\kern5pt}
A&B&C\cr
\noalign{\kern5pt\vrule\kern5pt}
D&E&F\cr
G&H&I\cr
\noalign{\kern5pt\vrule}
}
\endgroup
```

[Bu örneği Overleaf'te açın](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+valign+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D16cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Ctabskip%7D%7B5pt%7D%0A%5Cbegingroup+%25+Keep+changes+to+%5Cparindent+and+%5Chsize+local%0A%5Csetlength%7B%5Cparindent%7D%7B10pt%7D%0A%5Csetlength%7B%5Chsize%7D%7B75pt%7D%0A%5Cvalign%7B%0A%23%26%23%26%23%5Ccr%0A%5Cnoalign%7B%5Cvrule%5Ckern5pt%7D%0A%5CTeX%7B%7D+can+typeset+very+complex%0Atables.%26Here%27s+a+bit+of+extra+%0Atext.%26And%2C+finally%2C+an+extra+line%0Ain+this+column.%5Ccr%0A%5Cnoalign%7B%5Ckern5pt%5Cvrule%5Ckern5pt%7D%0AA%26B%26C%5Ccr%0A%5Cnoalign%7B%5Ckern5pt%5Cvrule%5Ckern5pt%7D%0AD%26E%26F%5Ccr%0AG%26H%26I%5Ccr%0A%5Cnoalign%7B%5Ckern5pt%5Cvrule%7D%0A%7D%0A%5Cendgroup%0A%5Cend%7Bdocument%7D)

Bu örnek aşağıdaki çıktıyı üretir:

## Satır genişliklerini ve sütun yüksekliklerini ayarlama

## Tablo hakkında daha fazlası $$\langle$$⁠önsöz⁠$$\rangle$$


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/latex/tr/derinlemesine-makaleler/15-how-do-tex-engines-typeset-tables-2.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
