> For the complete documentation index, see [llms.txt](https://overleaf-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://overleaf-pro.ayaka.space/latex/ar/mqalat-mtamqh/19-how-does-expandafter-work-an-introduction-to-tex-tokens.md).

# كيف تعمل \expandafter: مقدمة إلى رموز TeX

[الجزء 1](/latex/ar/mqalat-mtamqh/19-how-does-expandafter-work-an-introduction-to-tex-tokens.md) [الجزء 2](/latex/ar/mqalat-mtamqh/22-how-does-expandafter-work-the-meaning-of-expansion.md) [الجزء 3](/latex/ar/mqalat-mtamqh/21-how-does-expandafter-work-tex-uses-temporary-token-lists.md) [الجزء 4](/latex/ar/mqalat-mtamqh/20-how-does-expandafter-work-from-basic-principles-to-exploring-tex-s-source-code.md) [الجزء 5](/latex/ar/mqalat-mtamqh/17-how-does-expandafter-work-a-detailed-macro-case-study.md) [الجزء 6](/latex/ar/mqalat-mtamqh/18-how-does-expandafter-work-a-detailed-study-of-consecutive-expandafter-commands.md)

## خلفية عن \expandafter: رموز TeX وقوائم الرموز

كخطوة أولى نحو فهم كيف `\expandafter` يعمل الأمر فعليًا، سنلقي نظرة على مكوّنين من TeX أساسيين لعمل `\expandafter`: رموز TeX (أعداد صحيحة) وقوائم الرموز (قوائم من الأعداد الصحيحة). قد يهم القراء الذين يرغبون في استكشاف هذه الموضوعات بمزيد من التفصيل قراءة المقالات التالية المنشورة على Overleaf:

* [ما هو رمز TeX؟](/latex/ar/mqalat-mtamqh/53-what-is-a-tex-token.md)
* [ما هي قائمة رموز TeX؟](/latex/ar/mqalat-mtamqh/54-what-is-a-tex-token-list.md)-[كيف تعمل ماكروات TeX فعليًا؟](/latex/ar/mzyd-mn-almwdhwaat/01-a-six-part-series-how-do-tex-macros-actually-work.md)

### من أين جاءت بيانات الرموز؟

طوال هذه المقالة نستخدم قيم الرموز الفعلية التي يحسبها TeX—وهي بيانات لا تكون متاحة عادةً للمستخدمين. وللقراء الذين يثير فضولهم معرفة كيف تم الحصول على بيانات قيم الرموز هذه، لدى Overleaf نسخ مخصصة من عدة محركات TeX نستخدمها للبحث. وقد عُدِّلت تلك المحركات لتُخرج معلومات عن أنشطة المعالجة الداخلية في TeX—وذلك للمساعدة في توفير مادة خلفية إضافية لبعض المقالات التي ننتجها. ومن خلال عرض/مناقشة القيم العددية للرموز، نهدف إلى تضمين تفاصيل تساعد، نأمل، القراء على فهم «رموز TeX» بصورة أفضل، مما يجعل هذا المفهوم المهم أقل غموضًا قليلًا.

## مقدمة إلى رموز TeX 101 (ومفاهيم التوسيع)

عندما يعالج TeX ملف الإدخال الخاص بك، فإنه يقرأ النص ويحوّل الأحرف المفردة وتسلسلات الأحرف (الأوامر) إلى ما يُسمّى *رموز*. رمز TeX هو ببساطة قيمة صحيحة يحسبها TeX وتُستخدم «لتشفير» البيانات التي يحتاج TeX إلى تخزينها حول عنصر تمت قراءته من مصدر الإدخال الحالي. تخيّل الرموز كطرود صغيرة من المعلومات «تجمع معًا» البيانات التي يحتاج TeX إلى تسجيلها، لتكون جاهزة لتمريرها إلى المرحلة التالية من المعالجة. داخليًا، يعمل TeX على قيم الرموز الصحيحة تلك—فهو لا يستخدم الحروف أو الرموز أو الأرقام الفعلية وما إلى ذلك الموجودة أصلاً في ملف الإدخال الخاص بك: إذ يتحول كل شيء إلى رمز (عدد صحيح) ويعمل TeX على ذلك.

## كيف يحسب TeX قيم الرموز

هنا ننظر إلى حسابات الرموز المستخدمة في TeX الأصلي لكونث، وe-TeX وpdfTeX؛ أما محركات TeX الأخرى، ولا سيما XeTeX وLuaTeX، فتحتاج حسابات رموزها إلى أن تكون مختلفة قليلًا لمراعاة استخدام Unicode، لكن طرق الحساب مشابهة لتلك الموضحة أدناه.

### رموز المحارف (المحارف غير النشطة)

حساب قيم الرموز للمحارف غير النشطة بسيط:

$$\text{character token} = 256\times \text{(category code)} + \text{character (ASCII) code}$$

**مثال**: الحرف A مع [رمز الفئة](/latex/ar/mzyd-mn-almwdhwaat/43-table-of-tex-category-codes.md) 11، فإن رمز المحرف ذي الكود 65 يمثله TeX بقيمة رمز المحرف $$256\times 11 + 65 = 2881$$.

قد تصادف في أدبيات TeX أوصافًا تشير إلى أنه بمجرد أن يُدخل TeX حرفًا، تصبح قيمة رمز فئته «مرتبطة به ارتباطًا دائمًا»: يوضح حساب قيمة الرمز أعلاه سبب صحة ذلك. لكن، لاحقًا في معالجة TeX، يمكنه—وفعلًا يفعل—«فك حزمة» رموز المحارف للكشف عن الزوج المكوَّن من (رمز الحرف، رمز الفئة) الذي بُني منه الرمز—وعندما يقوم TeX بذلك «الفك»، فإنه لن يغيّر رمز فئة ذلك الحرف، بل يستخدم تلك المعلومة فقط أثناء معالجته اللاحقة.

### رموز الأوامر

يتعرّف TeX في معالجة الإدخال وتوليد الرموز على نوعين من الأوامر:

* أوامر تُبنى من حرف واحد أو أكثر يحملون رمز الفئة 11؛
* أوامر أحادية الحرف حيث لا يكون رمز فئة ذلك الحرف 11: مثل `\$` أو `\#`.

في كلتا الحالتين، يستبعد TeX الحرف البادئ `\` ويستخدم رمز كل حرف متبقٍ لحساب عدد صحيح يسميه TeX `curcs` (**حالي**ة **c**تحكم **s**تسلسل). `curcs` لحساب قيمة رمز للأمر.

#### الأوامر المكوّنة من أحرف ذات رمز الفئة 11

لنفترض أن أمرنا (من دون الحرف البادئ `\` الحرف) مكوَّن من تسلسل من الأحرف: $$\mathrm{C\_1C\_2C\_3...C\_N}$$ حيث $$\mathrm{C}\_i$$ هو رمز كل حرف—على سبيل المثال، رمز الحرف A هو 65. يستخدم TeX جميع رموز الأحرف $$\mathrm{C}\_i$$ لحساب العدد الصحيح `curcs` (باستخدام [دالة تجزئة](https://en.wikipedia.org/wiki/Hash_function)). بمجرد أن يحسب TeX قيمة `curcs` فهو يضيف ببساطة 4095 إلى تلك القيمة ليعطي قيمة الرمز:

$$\text{command token} = \text{curcs + 4095}$$

لاحظ أن المتغيّر `curcs` يلعب دورًا بالغ الأهمية في أنشطة المعالجة الداخلية في TeX.

#### أوامر حرف واحد

الرموز التي تمثل أوامر مثل `\$`, `\#` إلخ تخضع لحساب مختلف قليلًا: فالعدد الصحيح `curcs` يُحسب الآن بهذه الصيغة الأبسط:

$$\text{curcs} = 257 + \text{character (ASCII) code}$$

على سبيل المثال، مع `\$`, $$\text{curcs}=257 + 36 = 293$$. يضيف TeX مرة أخرى 4095 إلى هذه القيمة (باستخدام $$\text{command token} = \text{curcs} + 4095$$) مما ينتج `\$` أن له قيمة رمز $$293 + 4095 = 4388$$.

مقارنةً بالأوامر المكوّنة من أحرف ذات رمز الفئة 11، فإن الاختلاف الوحيد هنا هو الطريقة التي يحسب بها TeX قيمة `curcs`.

**ملاحظة**: فالعدد الصحيح `curcs` لا يُحسب للرموز الخاصة بالمحارف: إذ يُضبط دائمًا على 0 عندما يكون TeX بصدد إنشاء رموز المحارف أو التعامل معها.

#### رموز المحارف النشطة

يمتلك TeX مفهوم ما يُسمّى *المحارف النشطة*: أي حرف يُخصَّص له رمز الفئة 13. تخضع الرموز الخاصة بهذه الفئة الخاصة من الأحرف لحساب مختلف مقارنةً بالأحرف العادية.

تتيح آلية المحرف النشط لـTeX إنشاء ما يُعدّ، في الواقع، ماكروات أحادية الحرف يمكنك استخدامها *بدون* من دون الحاجة إلى إسباق المحرف النشط بمحرف هروب (عادةً `\`): إذ سيؤدي الحرف المنفصل إلى تفعيل سلوك الماكرو الخاص به. والمثال القياسي هو حرف التلدة (\~) الذي يستخدمه TeX/LaTeX للمسافات غير القابلة للكسر، ويمكن تعريفه/تفعيله كما يلي:

```
\catcode`~=13 %تعيين رمز الفئة 13 إلى ~
\def~{\penalty100000\ } % تعريف ~ ليعمل كـماكرو
```

عندما يقرأ TeX لاحقًا `~` حرفًا، سيتعرف على أن رمز فئته هو 13 ويعالجها باعتبارها «ماكرو صغيرًا». ولحساب رمز يمثّل محرفًا نشطًا يطبّق TeX تنويعًا آخر لحساب `curcs`:

$$\begin{align\*} \text{curcs} &= \text{character code} + 1\ \text{active character token} &= \text{curcs} + 4095\ \end{align\*}$$

على سبيل المثال، يحمل الحرف \~ رمز المحرف 126، مما يعني أن تمثيل قيمة رمزه كمحرف نشط يُحسب كما يلي:

$$\begin{align\*} \text{curcs} &= 126 + 1\ \text{active character token} &= 127 + 4095\ &=4222\ \end{align\*}$$

لاحظ أنه، مثل الأوامر، فإن الرموز التي تمثل محارف نشطة تكون > 4095.

### النتائج/الملاحظات

* يمكن التعرف فورًا على أي رمز تتجاوز قيمته 4095 باعتباره رمز أمر—ومن ثم يستطيع TeX بسهولة كبيرة تحديد ما إذا كان رمز معين يمثل حرفًا أم أمرًا.
* بالنسبة لأي قيمة رمز، يستطيع TeX، عند الحاجة، «فكّ حزمة» ذلك الرمز لكشف الحرف (ورمز فئته)، أو الأمر، الموجودين أصلًا في `.tex` ملفك، أو المخزَّنين في تعريف ماكرو، أو الموجودين في قائمة رموز أخرى.
* الكمية «الوسيطة» المسماة `curcs`—التي يستخدمها TeX لحساب قيم رموز الأوامر—تلعب دورًا مهمًا في المعالجة منخفضة المستوى في TeX. `curcs` تعمل كـ«قيمة فهرس» يستخدمها TeX لتخزين/استرجاع المعنى الحالي لأمر. وبالنسبة لأي رمز أمر، $$\mathrm{T}$$، يطرح TeX ببساطة 4095 للوصول إلى قيمة `curcs`: $$\text{curcs} = \mathrm{T}-4095$$

وبالمناسبة، يخزّن TeX أيضًا السلسلة المقروءة بشريًا من الأحرف التي يُولَّد منها رمز الأمر—وهذا ضروري للإبلاغ عن الأخطاء وأوامر أخرى مثل `\string` الذي يكون توسّعه هو النسخة المقروءة بشريًا من قيمة رمز. ومع ذلك، فإن سلاسل الأحرف المقروءة بشريًا والمخزنة داخل TeX لا تُستخدم/تُخرج إلا عند الطلب: أما في كل المعالجات الأخرى فتُستخدم القيمة الصحيحة للرمز.

## نظرة على بعض الرموز الحقيقية

ولجعل مفهوم الرموز أقل غموضًا قليلًا، سنعرّف الماكرو البسيط التالي ونلقي نظرة على الرموز التي ينتجها TeX:

```
\def\hello{Greetings, from \TeX. \hskip 10pt}
```

بالنسبة إلى `\hello` الماكرو، يستخدم TeX الأحرف `h`, `e`, `l`, `l`, `o` لحساب قيمة قدرها 3745 لـ `curcs`؛ ثم يضيف TeX 4095 لإنشاء قيمة رمز مقدارها $$3745 + 4095 = 7840$$ (في TeX لكونث أو e-TeX أو pdfTeX).

بعد إنشاء رمز لتمثيل `\hello`، و `\def` الأمر، يجعل TeX يقرأ الرموز اللاحقة ويستخدمها لإنشاء قائمة رموز تُخزَّن باعتبارها *التعريف* في `\hello` الأمر. ويمكن بعد ذلك استرجاع هذا التعريف المخزَّن (قائمة الرموز) كلما طلبت من TeX استخدام `\hello` الأمر.

يسرد الجدول التالي قيم الرموز الفعلية التي أُنشئت لكل عنصر (حرف، ماكرو أو أمر بدائي) موجود في `\hello` تعريف الماكرو—هذه القائمة من الرموز (الأعداد الصحيحة) هي ما يخزنه TeX في ذاكرته (كبنية بيانات تُعرف باسم [قائمة مرتبطة](https://en.wikipedia.org/wiki/Linked_list)). يُحال القراء الذين يرغبون في فهم قوائم الرموز بمزيد من التفصيل إلى مقال Overleaf [ما هي قائمة رموز TeX؟](/latex/ar/mqalat-mtamqh/54-what-is-a-tex-token-list.md)

|                  |                     |
| ---------------- | ------------------- |
| **قيمة رمز TeX** | **العنصر الممثَّل** |
| 2887             | G                   |
| 2930             | r                   |
| 2917             | e                   |
| 2917             | e                   |
| 2932             | t                   |
| 2921             | i                   |
| 2926             | n                   |
| 2919             | g                   |
| 2931             | s                   |
| 3116             | ,                   |
| 2592             |                     |
| 2918             | f                   |
| 2930             | r                   |
| 2927             | o                   |
| 2925             | m                   |
| 2592             |                     |
| 5235             | \TeX                |
| 3118             | .                   |
| 2592             |                     |
| 7943             | \hskip              |
| 3121             | 1                   |
| 3120             | 0                   |
| 2928             | ص                   |
| 2932             | t                   |

في قائمة الرموز أعلاه، تحمل الأحرف رموز فئات 10 أو 11 أو 12. على سبيل المثال:

* تحمل الأحرف رمز فئة 10 ورمز حرف 32، مما يعطي قيمة رمز قدرها $$256\times 10 + 32 = 2592$$
* `,` و `.` تحمل رمز فئة 12 ورموز أحرف 44 و46 على التوالي، مما يعطي الرموز:
* رمز لـ `,` $$= 256 \times 12 + 44 = 3116$$
* رمز لـ `.` $$= 256\times 12+ 46 = 3118$$

كلما صادف TeX لاحقًا قيمة الرمز 7840 (التي تمثل `\hello` ) يمكنه، إذا لزم، «فكّ حزمة» ذلك الرمز لاستخراج `curcs` من خلال الحساب البسيط $$\text{curcs} = \text{token value} - 4095$$ (انظر أعلاه). وباستخدام قيمة `curcs` يمكن لـTeX الرجوع إلى جداول بياناته الداخلية ليحدد أن رمز الأمر 7840 يمثل أمر ماكرو. بالإضافة إلى ذلك، ومن خلال `curcs`، يمكن لـTeX أيضًا البحث عن التعريف المخزَّن واسترجاعه لـ `\hello`.

عندما يحتاج TeX إلى معالجة الرمز 7840 بالكامل، أي إلى تشغيل `\hello` الماكرو، لم يعد يحتاج إلى الرمز 7840: فقد *أدى مهمته*—أي إنه دفع TeX إلى تشغيل الماكرو `\hello` . يمكن لـTeX الآن التخلص من الرمز 7840 وجلب الرموز التي تمثل التعريف (قائمة الرموز) المخزَّن في الذاكرة. في الواقع، `\hello` أمر الماكرو (الرمز 7840) قد تم *إزالته* من مصدر الإدخال الحالي في TeX و *استبداله* برموز موجودة في تعريف `\hello` . ما وصفناه للتو هو أحد أشكال *توسيع الرموز*.

ال `\TeX` الأمر (قيمة الرمز 5235 المدرجة أعلاه) المستخدم داخل `\hello` هو نفسه ماكرو مُكوَّن من مزيد من الرموز—لذلك يُخزَّن تعريفه أيضًا كقائمة رموز:

|                  |                     |
| ---------------- | ------------------- |
| **قيمة رمز TeX** | **العنصر الممثَّل** |
| 2900             | T                   |
| 19598            | \kern               |
| 3117             | -                   |
| 3118             | .                   |
| 3121             | 1                   |
| 3126             | 6                   |
| 3126             | 6                   |
| 3127             | 7                   |
| 2917             | e                   |
| 2925             | m                   |
| 19597            | \lower              |
| 3118             | .                   |
| 3125             | 5                   |
| 2917             | e                   |
| 2936             | x                   |
| 6175             | \hbox               |
| 379              | {                   |
| 2885             | E                   |
| 637              | }                   |
| 19598            | \kern               |
| 3117             | -                   |
| 3118             | .                   |
| 3121             | 1                   |
| 3122             | 2                   |
| 3125             | 5                   |
| 2917             | e                   |
| 2925             | m                   |
| 2904             | X                   |

لو كنا سنستبدل `\hello` الأمر بالقائمة الكاملة من الرموز التي بُني منها، بما في ذلك `\TeX` الماكرو، لكانت قائمة طويلة نسبيًا—أي إذا قمنا أيضًا *بتوسيع* موقع `\TeX` الماكرو فسنرى:

![قائمة رموز مخزنة في ماكرو TeX](/files/4b7434afb41f13e2758fccd59d19ea80bf19858d)

في الأساس، فإن قيمة الرمز المفرد 7840 (لـ `\hello` ) ستنتج، عند توسيعها بالكامل، ما مجموعه 51 رمزًا (أعدادًا صحيحة) تمثل الأحرف والأوامر البدائية. في القائمة التالية يُوضَع الحرف أو الأمر الذي يمثله كل رمز بين قوسين «(...)»—وهذه لا تُخزَّن مباشرة في قوائم رموز TeX، وإنما تُعرض لمساعدة القارئ:

```
2887 (G), 2930 (r), 2917 (e), 2917 (e), 2932 (t), 2921 (i), 2926 (n), 2919 (g), 2931 (s), 3116 (,), 2592 (<space>), 2918 (f), 2930 (r), 2927 (o), 2925 (m), 2592 (<space>),  2900 (T), 19598 (\kern), 3117 (-), 3118 (.), 3121 (1), 3126 (6), 3126 (6), 3127 (7), 2917 (e), 2925 (m), 19597 (\lower), 3118 (.), 3125 (5), 2917 (e), 2936 (x), 6175 (\hbox), 379 ({), 2885 (E), 637 (}), 19598 (\kern), 3117 (-), 3118 (.), 3121 (1), 3122 (2), 3125 (5), 2917 (e), 2925 (m), 2904 (X), 3118 (.), 2592 (<space>), 7943 (\hskip), 3121 (1), 3120 (0), 2928 (p), 2932 (t)
```

بالنسبة للقارئ البشري فهذا مجرد سلسلة من الأعداد الصحيحة، لكن بالنسبة إلى TeX فإنه يشفّر قدرًا كبيرًا من المعلومات.

## اقرأ الرموز الآن واحفظها لوقت لاحق

أثناء قراءة TeX لإدخالك قد تكون هناك أوقات يحتاج فيها (أو يُطلب منه) إلى تأخير المعالجة الكاملة لمجموعة معينة من الرموز. وإذا وُجّه إلى ذلك، فسيستمر TeX، حتى يُقال له التوقف، في إنشاء رموز من الإدخال لكنه سيخزنها لاستخدامها لاحقًا—ثم يسترجعها ويعالجها لاحقًا كجزء من أنشطة التنضيد الخاصة به. تُحفظ هذه الرموز المخزنة فيما يُسمّى *قوائم الرموز* والتي تُعد، في الواقع، آلية تخزين بيانات الرموز الداخلية الوحيدة في TeX.

لقد رأينا بالفعل أمثلة على قوائم الرموز— `\hello` و `\TeX` الماكروات المدرجة أعلاه: إذ تُخزن تعريفات تلك الماكروات في ذاكرة TeX على هيئة قوائم من الرموز. ولن يعالج TeX هذه القوائم الرمزية (تنفيذًا) إلا عندما تقرر استدعاء تلك الماكروات. وتذكّر أيضًا أن كل رمز (قيمة صحيحة) يشفّر معلومات كافية تمكّن TeX من معرفة ما إذا كان كل رمز مخزَّن في تعريف ماكرو يمثل حرفًا أم أمرًا بسهولة.

### حفظ الرموز باستخدام سجلات الرموز

مثال آخر على تخزين الرموز هو الإنشاء الصريح لقوائم من الرموز التي تُحفظ في ما يُسمّى *سجلات الرموز*مناطق تخزين داخلية مخصّصة يوفّرها TeX للمستخدمين لتخزين قوائم الرموز. الأمر البدائي في TeX `\toksdef` هو إحدى طرق استخدام سجلات الرموز؛ فعلى سبيل المثال، لاستخدام سجل الرموز `100` والإشارة إليه باستخدام الأمر `\mylist`:

```
        \toksdef\mylist=100
        \mylist={some \TeX{} tokens here}
```

`\mylist` هو، في الواقع، مجرد اسم تُسنده إلى قائمة من الرموز المخزَّنة في موضع السجل `100`. وبالمثل لتعريف ماكرو، `\mylist` تحتوي على قائمة الرموز التالية:

|                  |                     |
| ---------------- | ------------------- |
| **قيمة رمز TeX** | **العنصر الممثَّل** |
| 2931             | s                   |
| 2927             | o                   |
| 2925             | m                   |
| 2917             | e                   |
| 2592             |                     |
| 5235             | \TeX                |
| 379              | {                   |
| 637              | }                   |
| 2592             |                     |
| 2932             | t                   |
| 2927             | o                   |
| 2923             | ك                   |
| 2917             | e                   |
| 2926             | n                   |
| 2931             | s                   |
| 2592             |                     |
| 2920             | h                   |
| 2917             | e                   |
| 2930             | r                   |
| 2917             | e                   |

**ملاحظة**: لإنهاء `\TeX` الماكرو ومنعه من امتصاص `<مسافة>` الحرف التالي، استخدمنا زوجًا من الأقواس المعقوفة `{}` مباشرة بعد `\TeX`—فالرموز الخاصة بـ `{` (379) و `}` (637) تُخزَّن في قائمة الرموز. وخيار آخر هو استخدام رمز «مسافة تحكم» `\<space>` الذي سيظهر في قائمة الرموز كما هو موضح أدناه (بالخط العريض):

|                  |                     |
| ---------------- | ------------------- |
| **قيمة رمز TeX** | **العنصر الممثَّل** |
| 2931             | s                   |
| 2927             | o                   |
| 2925             | m                   |
| 2917             | e                   |
| 2592             |                     |
| 5235             | \TeX                |
| **4384**         | **\\**              |
| 2932             | t                   |
| 2927             | o                   |
| 2923             | ك                   |
| 2917             | e                   |
| 2926             | n                   |
| 2931             | s                   |
| 2592             |                     |
| 2920             | h                   |
| 2917             | e                   |
| 2930             | r                   |
| 2917             | e                   |

لاحظ أن `<مسافة>` يُمثَّل الحرف كـ *رمز حرف* بقيمة $$256\times 10 + 32 = 2592$$ لكن `\﻿<space>` يُعامل كـ *رمز أمر* (بقيمة 4384) والتي تُحسب باستخدام الصيغ المذكورة أعلاه:

\begin{align\*} \text{curcs} & = 257 + \text{character (ASCII) code}\\\ & = 257 + 32\\\ &=289\\\ \text{command token for} \left<\text{\\\space}\right> & = \text{curcs + 4095}\\\ & = 289+4095\\\ &=4384\\\ \end{align\*}

في الأساس `\mylist={some \TeX{} tokens here}` يقول لـTeX: من فضلك افحص ملف الإدخال الخاص بي لتحويل الأحرف/الأوامر التالية إلى رموز واحفظها لاستخدامها لاحقًا. وسيمتثل TeX لذلك ويخزن تلك الرموز في موضع ذاكرة يمكنك الوصول إليه بكتابة `\the\mylist`، موجهًا TeX إلى إدراج نسخة من الرموز الموجودة في سجل الرموز `\mylist`. تتضمن محركات TeX عددًا من الأوامر البدائية التي تُنشئ وتخزن قوائم الرموز صراحةً—مثل `\everyjob`, `\everypar`, `\mark`، وغيرها الكثير.

[الجزء 1](/latex/ar/mqalat-mtamqh/19-how-does-expandafter-work-an-introduction-to-tex-tokens.md) [الجزء 2](/latex/ar/mqalat-mtamqh/22-how-does-expandafter-work-the-meaning-of-expansion.md) [الجزء 3](/latex/ar/mqalat-mtamqh/21-how-does-expandafter-work-tex-uses-temporary-token-lists.md) [الجزء 4](/latex/ar/mqalat-mtamqh/20-how-does-expandafter-work-from-basic-principles-to-exploring-tex-s-source-code.md) [الجزء 5](/latex/ar/mqalat-mtamqh/17-how-does-expandafter-work-a-detailed-macro-case-study.md) [الجزء 6](/latex/ar/mqalat-mtamqh/18-how-does-expandafter-work-a-detailed-study-of-consecutive-expandafter-commands.md)


---

# 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://overleaf-pro.ayaka.space/latex/ar/mqalat-mtamqh/19-how-does-expandafter-work-an-introduction-to-tex-tokens.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.
