> 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/mzyd-mn-almwdhwaat/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.md).

# كيفية كتابة ملف فئة LaTeX وتصميم سيرتك الذاتية الخاصة (الجزء 2)

[الجزء 1](/latex/ar/mzyd-mn-almwdhwaat/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md) | الجزء 2

**المؤلف: Cody Herring (يونيو 2013)**

هذا استمرار لـ [كيفية كتابة ملف فئة LaTeX وتصميم سيرتك الذاتية الخاصة (الجزء 1)](/latex/ar/mzyd-mn-almwdhwaat/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md)، مع استعراض المزيد من الخيارات لإنشاء سيرة ذاتية، واستخدام ملفات الفئة للقيام بذلك.

في المقال السابق، أنشأنا ملفين: `cv.tex` و `my_cv.cls`. ملف المحتوى، `cv.tex`، كان يحتوي على ما يلي:

```latex
\documentclass{my_cv}
\begin{document}
\section{Education}
\datedsubsection{University of Nowhere}{2004-2008}
\section{العمل}
\datedsubsection{ABC Limited}{2008-Now}
\end{document}
```

`my_cv.cls` كان يحتوي على بعض الإعدادات الافتراضية للتنسيق، بالإضافة إلى بعض الأوامر لاستخدامها:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 custom CV class]
\LoadClass{article}
\RequirePackage{titlesec}
\titleformat{\section}       % تخصيص أمر \section
{\Large\scshape\raggedright} % اجعل رؤوس \section كبيرة (\Large)،
                             % بأحرف كبيرة صغيرة (\scshape) ومحاذاة إلى اليسار (\raggedright)
  {}{0em}            % يمكن استخدامه لإضافة بادئة إلى جميع الأقسام، مثل 'Section ...'
  {}                 % يمكن استخدامه لإدراج كود قبل العنوان
  [\titlerule]       % يُدرج خطًا أفقيًا بعد العنوان
  \titleformat{\subsection}
  {\large\scshape\raggedright}
  {}{0em}
  {}
\newcommand{\datedsection}[2]{%
  \section[#1]{#1 \hfill #2}%
}
\newcommand{\datedsubsection}[2]{%
  \subsection[#1]{#1 \hfill #2}%
}
```

ينتج عن ذلك المستند التالي:

![الشكل 1.png](/files/5545dc03fe42c12741e4e4d2211b52464a21c119)

ال `#1` و `#2` تشير إلى الوسيط الأول والثاني أو المعاملين اللذين يتم تمريرهما إلى الأمر. في السطر الأول من `\newcommand`، يشير القسم الموجود بين الأقواس، مثلًا: `[2]` يشير إلى عدد المعاملات التي يتم تمريرها إلى الدالة. ويمكن للدالة بعد ذلك استدعاء هذه المعاملات باستخدام `#1`, `#2`، وهكذا، اعتمادًا على عدد المعاملات التي كانت الدالة بحاجة إليها. ستظهر الدوال ذات المعاملات الأكثر لاحقًا في المقال.

سنواصل بإضافة قسم الاسم ومعلومات الاتصال، وكذلك الاستمرار مع قسم الخبرة والأقسام الأخرى.

### الاسم ومعلومات الاتصال

في السيرة الذاتية، يكون الاسم عادةً في الأعلى، مع معلومات الاتصال للتواصل بشأن الوظائف. سيتم تحقيق ذلك بإضافة دوال جديدة إلى ملف الفئة الخاص بنا. يمكن إضافة الاسم باستخدام دالة بسيطة:

```latex
\newcommand{\name}[1]{%
  \centerline{\Huge{#1}}
}
```

ينتج عن ذلك اسمًا كبيرًا ومتمركزًا أينما استُخدم. ويمكن استدعاؤه هكذا:

```latex
\name{John Smith}
```

والآن، بالنسبة لمعلومات الاتصال. أضف ما يلي إلى ملف الفئة:

```latex
\newcommand\contact[5]{%
    \centerline{%
        \makebox[0pt][c]{%
            #1 {\large\textperiodcentered} #2 {\large\textperiodcentered} #3
            \ #4 \ \ #5%
        }%
    }%
}
```

ثم استدعِ الدالة من المستند:

```latex
\contact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
```

يظهر كل ذلك بشكل جميل، مع الاسم ومعلومات الاتصال على النحو التالي:

![الشكل 2.png](/files/fb72dc1af992d238dd922e2e93f4bca3b2dbd915)

يعرض هذا معلومات الاتصال بتنسيق جميل مع فاصل على شكل نقطة بينهما. ويمكن تعديل ذلك للعناوين الأطول إذا لزم الأمر بإضافة دالة ثانية:

```latex
\newcommand{\longcontact}[5]{%
    \noindent
    #1\hfill {\large\textperiodcentered}\hfill #2\hfill
    {\large\textperiodcentered}\hfill #3\\
    #4\hfill #5%
}
```

![Screenshot3.png](/files/b037d04bcce67eb6ca74b549e9b92f13947ab46b)

يبدو هذا غريبًا قليلًا مع المعلومات القصيرة، لكن إذا كان العنوان طويلًا بشكل خاص، فهو أكثر مرونة للاستخدام. وأفضل ما في الأمر أن مستند TeX يتطلب تغييرات طفيفة جدًا:

```latex
\longcontact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
```

هذه هي الفكرة الأساسية من استخدام ملفات الفئة. إذ تتيح إجراء تغييرات طفيفة جدًا في محتوى المستند، والتحكم في طريقة العرض (كيفية إظهار المحتوى) من الخارج.

### توسيع قسم الخبرة

ينبغي أن تحتوي السيرة الذاتية على أكثر من مجرد قائمة بالوظائف. ينبغي إضافة بعض الوصف لما تم إنجازه في كل وظيفة تحت كل بند. تُعد ثلاث نقاط لكل وظيفة توازنًا جيدًا بين التفصيل والوصف. ويمكن تعديل ذلك بسهولة بإضافة العقد أو إزالتها. أضف ما يلي إلى ملف الفئة:

```latex
\newcommand{\workitems}[3]{%
    \begin{itemize}
    \item #1
    \item #2
    \item #3
    \end{itemize}%
}
```

أضف ما يلي إلى `.tex` :

```latex
\workitems
{تم تطوير منتج جديد}
{تحسين الإنتاجية بنسبة 20\%}
{خفض التكاليف بمقدار \$10,000}
```

أصبح قسم الخبرة يبدو أكثر اكتمالًا الآن:

![الشكل 4.png](/files/cf6b89c8093d5bd2efbae5653b6744f834e31764)

تؤدي إضافة قسم المهارات إلى إكمال السيرة الذاتية. تم ذلك من دون دالة في ملف الفئة، لأنه لم يُقصّر كود LaTeX كثيرًا:

```latex
\section{المهارات}

\begin{tabular}{l l l l}
C\# & T-SQL & Javascript & HTML \\
XML & JSON & SOAP & REST
\end{tabular}
```

ينتج عن ذلك ما يلي:

![الشكل 5.png](/files/0428b8ec9c3bd7bbc785c48f026f547534ef884b)

### الخاتمة

كان ينبغي أن تكون هذه المقالة المكوّنة من جزأين قد تركتك مع قالب أساسي جدًا لسيرة ذاتية، جاهز للتوسيع وإضافة أقسام جديدة.

ملف الفئة بالكامل كما يلي:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 custom CV class]
\LoadClass{article}
\RequirePackage{titlesec}

\titleformat{\section}
  {\Large\scshape\raggedright}
  {}{0em}
  {}
  [\titlerule]

  \titleformat{\subsection}
  {\large\scshape\raggedright}
  {}{0em}
  {}

\newcommand{\datedsection}[2]{%
  \section[#1]{#1 \hfill #2}%
}
\newcommand{\datedsubsection}[2]{%
  \subsection[#1]{#1 \hfill #2}%
}

\newcommand{\name}[1]{%
  \centerline{\Huge{#1}}%
}

\newcommand\contact[5]{%
    \centerline{%
        \makebox[0pt][c]{%
            #1 {\large\textperiodcentered} #2 {\large\textperiodcentered} #3
            \ #4 \ \ #5%
        }%
    }%
}

\newcommand{\longcontact}[5]{%
    \noindent
    #1\hfill {\large\textperiodcentered}\hfill #2\hfill
    {\large\textperiodcentered}\hfill #3\\
    #4\hfill #5%
}

\newcommand{\workitems}[3]{%
    \begin{itemize}
    \item #1
    \item #2
    \item #3
    \end{itemize}%
}
```

ال `.tex` الملف كما يلي:

```latex
\documentclass{my_cv}
\begin{document}
\name{John Smith}
\contact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
\section{Education}
\datedsubsection{University of Nowhere}{2004-2008}
\section{العمل}
\datedsubsection{ABC Limited}{2008-Now}
\workitems
{تم تطوير منتج جديد}
{تحسين الإنتاجية بنسبة 20\%}
{خفض التكاليف بمقدار \$10,000}

\section{المهارات}
\begin{tabular}{l l l l}
C\# & T-SQL & Javascript & HTML \\
XML & JSON & SOAP & REST
\end{tabular}

\end{document}
```

ينتج عن ذلك المستند التالي:

![الشكل 6.png](/files/c01364c5f2ad0c1004c67cde7b2983ca6e5185ad)

ينبغي أن يمنحك هذا الدرس نقطة انطلاق ممتازة لسيرة ذاتية، مع مجال للتوسّع.

[الجزء 1](/latex/ar/mzyd-mn-almwdhwaat/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md) | الجزء 2


---

# 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/mzyd-mn-almwdhwaat/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-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.
