initial commit
This commit is contained in:
commit
ffefb066ea
|
|
@ -0,0 +1,15 @@
|
||||||
|
# .gitignore
|
||||||
|
*.aux
|
||||||
|
*.bbl
|
||||||
|
*.bcf
|
||||||
|
*.blg
|
||||||
|
*.fdb_latexmk
|
||||||
|
*.fls
|
||||||
|
*.log
|
||||||
|
*.out
|
||||||
|
*.run.xml
|
||||||
|
*.toc
|
||||||
|
*.lof
|
||||||
|
*.lot
|
||||||
|
*.pdf
|
||||||
|
*.zip
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
% =================================================================
|
||||||
|
% تنظیمات سند (کاربران تیم فقط این فایل را ویرایش کنند)
|
||||||
|
% =================================================================
|
||||||
|
|
||||||
|
% -----------------------------------------------------------------
|
||||||
|
% ۱. اطلاعات اصلی سند (بیشترین میزان تغییر)
|
||||||
|
% -----------------------------------------------------------------
|
||||||
|
\newcommand{\DocTitle}{عنوان اصلی مستندات پروژه}
|
||||||
|
\newcommand{\DocSubtitle}{توضیحات کوتاه یا زیرعنوان مستند}
|
||||||
|
\newcommand{\DocVersion}{1.0.3}
|
||||||
|
\newcommand{\DocID}{\lr{[DOC-PRJ-01]}}
|
||||||
|
\newcommand{\DocDate}{\today} % میتوانید تاریخ دستی بنویسید مثل: 1403/08/02
|
||||||
|
|
||||||
|
% -----------------------------------------------------------------
|
||||||
|
% ۲. وضعیت و سطح محرمانگی
|
||||||
|
% -----------------------------------------------------------------
|
||||||
|
% برای سطح محرمانگی یکی از این متغیرها را انتخاب کنید:
|
||||||
|
% \ConfPublic , \ConfInternal , \ConfSecret , \ConfTopSecret
|
||||||
|
\newcommand{\DocSecret}{\ConfInternal}
|
||||||
|
|
||||||
|
% برای وضعیت سند یکی از این متغیرها را انتخاب کنید:
|
||||||
|
% \StatusDraft , \StatusReview , \StatusApproved , \StatusArchived
|
||||||
|
\newcommand{\DocStatus}{\StatusDraft}
|
||||||
|
|
||||||
|
% -----------------------------------------------------------------
|
||||||
|
% ۳. تهیهکنندگان و سازمان (تغییرات متوسط)
|
||||||
|
% -----------------------------------------------------------------
|
||||||
|
\newcommand{\DocAuthor}{نام شخص اول \newline نام شخص دوم \newline نام شخص سوم}
|
||||||
|
\DefaultAuthortrue % اگر true باشد نام پارک علم و فناوری چاپ میشود، اگر false باشد نامهای بالا
|
||||||
|
\MultiAuthorfalse % اگر true باشد مینویسد "تهیهکنندگان"، اگر false باشد "تهیهکننده"
|
||||||
|
|
||||||
|
% -----------------------------------------------------------------
|
||||||
|
% ۴. تنظیمات ظاهری (کمترین میزان تغییر)
|
||||||
|
% -----------------------------------------------------------------
|
||||||
|
\ModernShapestrue % نمایش شکلهای هندسی در گوشه صفحات (true یا false)
|
||||||
|
\SeparateCovertrue % کاور در صفحه مجزا (true) یا چسبیده به متن (false)
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 5.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.9 MiB |
|
|
@ -0,0 +1,34 @@
|
||||||
|
@book{smith2023,
|
||||||
|
author = {Smith, John},
|
||||||
|
title = {Modern Software Architecture},
|
||||||
|
publisher = {Tech Press},
|
||||||
|
year = {2023},
|
||||||
|
keywords = {english}
|
||||||
|
}
|
||||||
|
|
||||||
|
@article{doe2024,
|
||||||
|
author = {Doe, Jane and Roe, Richard},
|
||||||
|
title = {Optimizing CI/CD pipelines in cloud environments},
|
||||||
|
journal = {Journal of Cloud Computing},
|
||||||
|
volume = {12},
|
||||||
|
number = {3},
|
||||||
|
pages = {45--60},
|
||||||
|
year = {2024},
|
||||||
|
keywords = {english}
|
||||||
|
}
|
||||||
|
|
||||||
|
@book{test_persian,
|
||||||
|
author = {نام نویسنده},
|
||||||
|
title = {عنوان کتاب فارسی},
|
||||||
|
publisher = {انتشارات دانشگاه},
|
||||||
|
year = {1403},
|
||||||
|
keywords = {persian}
|
||||||
|
}
|
||||||
|
|
||||||
|
@online{django2024,
|
||||||
|
author = {{Django Software Foundation}},
|
||||||
|
title = {Django 5.0 Documentation},
|
||||||
|
year = {2024},
|
||||||
|
url = {https://docs.djangoproject.com/en/5.0/},
|
||||||
|
keywords = {english}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
\section*{مقدمه و هدف}
|
||||||
|
\addcontentsline{toc}{section}{مقدمه و هدف}
|
||||||
|
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد.
|
||||||
|
|
||||||
|
هدف از تدوین این مستند، یکپارچهسازی فرآیندهای توسعه نرمافزار و تعیین استانداردهای اولیه است
|
||||||
|
کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد \cite{smith2023, test_persian}.
|
||||||
|
|
||||||
|
\subsection*{پیشنیازهای سیستم}
|
||||||
|
\addcontentsline{toc}{subsection}{پیشنیازهای سیستم}
|
||||||
|
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است. این بخش برای تست طولانیتر شدن محتوا و نمایش زیربخشها در فهرست مطالب ایجاد شده است.
|
||||||
|
|
||||||
|
\section*{معماری و ساختار فنی}
|
||||||
|
\addcontentsline{toc}{section}{معماری و ساختار فنی}
|
||||||
|
|
||||||
|
\subsection*{ساختار کلی سیستم}
|
||||||
|
\addcontentsline{toc}{subsection}{ساختار کلی سیستم}
|
||||||
|
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ است. در این بخش، معماری کلی به شکل زیر تقسیمبندی میشود:
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textbf{توسعه بکاند:} لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم (به عنوان مثال پیادهسازی مدلها در \lr{Django} و توسعه \lr{API}ها \cite{django2024}).
|
||||||
|
\item \textbf{توسعه فرانتاند:} چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.
|
||||||
|
\item \textbf{زیرساخت و استقرار (\lr{DevOps}):} مدیریت سرورهای \lr{VPS}، پیکربندی پراکسیها و راهاندازی فرآیند \lr{CI/CD}.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
متغیرهای کلیدی سیستم جهت استانداردسازی به شرح زیر تعریف میشوند:
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item متغیر اول سیستم: $\boldsymbol{X}$
|
||||||
|
\item متغیر دوم محاسباتی: $\boldsymbol{Y_i}$ (به \textcolor{primary}{\textbf{پیوست ۱: جدول ساختار دادهها}} مراجعه شود).
|
||||||
|
\item خروجی نهایی پردازش: $\boldsymbol{Z_{total}}$
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\textbf{معادلات نمونه:} \\
|
||||||
|
فرمول محاسبه خروجی بر اساس ورودیهای سیستم:
|
||||||
|
\[ \boldsymbol{Z_{total} = \sum_{i=1}^{n} (X \times Y_i)} \]
|
||||||
|
درصد بهرهوری یا توزیع بار در سرور:
|
||||||
|
\[ \boldsymbol{P_n = \frac{Y_n}{Z_{total}}} \]
|
||||||
|
|
||||||
|
% نمونه استفاده از باکس امتیاز شبیه به عکس شما
|
||||||
|
این مسیر زمانی مناسب است که هدف اصلی شرکت، افزایش درگیری کارکنان و خانوادهها باشد و اولویت اصلی، وایرال شدن یا دیده شدن بیرونی نباشد.
|
||||||
|
|
||||||
|
\vspace{0.3cm}
|
||||||
|
\begin{ScoreBox}
|
||||||
|
\textbf{امتیاز کلی:} متوسط رو به خوب؛ اما بیشتر مناسب برنامههای درونسازمانی است.
|
||||||
|
\end{ScoreBox}
|
||||||
|
\vspace{0.3cm}
|
||||||
|
|
||||||
|
% نمونه استفاده از باکس نقل قول
|
||||||
|
\begin{QuoteBox}
|
||||||
|
طراحی خوب یعنی حذف جزئیات غیرضروری تا زمانی که تنها هسته اصلی و ارزشمند باقی بماند.
|
||||||
|
ما این نقلقول را برای جلب توجه بیشتر به این شکل طراحی کردهایم.
|
||||||
|
\end{QuoteBox}
|
||||||
|
|
@ -0,0 +1,84 @@
|
||||||
|
\newpage
|
||||||
|
\section*{پیوست ۱: جداول نمونه (ساختار دادهها و تسکها)}
|
||||||
|
\addcontentsline{toc}{section}{پیوست ۱: جداول نمونه (ساختار دادهها و تسکها)}
|
||||||
|
جدول زیر به عنوان یک نمونه استاندارد برای نمایش اطلاعات، تسکها یا ساختار داده در مستندات تیم تدوین شده است. این جدول در فهرست جداول نیز نمایش داده خواهد شد.
|
||||||
|
|
||||||
|
\vspace{0.5cm}
|
||||||
|
\renewcommand{\arraystretch}{1.6}
|
||||||
|
\begin{longtable}{|>{\centering\arraybackslash}p{0.1\textwidth}|p{0.6\textwidth}|>{\centering\arraybackslash}p{0.2\textwidth}|}
|
||||||
|
\caption{ساختار دادهها و زمانبندی تسکهای فاز اول} \\
|
||||||
|
\hline
|
||||||
|
\rowcolor{tablehead}
|
||||||
|
\textbf{ردیف} & \multicolumn{1}{c|}{\textbf{عنوان بخش / تسک}} & \textbf{مقدار / وضعیت} \\
|
||||||
|
\hline
|
||||||
|
\endfirsthead
|
||||||
|
|
||||||
|
\multicolumn{3}{c}%
|
||||||
|
{{\bfseries \tablename\ \thetable{} -- ادامه از صفحه قبل}} \\
|
||||||
|
\hline
|
||||||
|
\rowcolor{tablehead}
|
||||||
|
\textbf{ردیف} & \multicolumn{1}{c|}{\textbf{عنوان بخش / تسک}} & \textbf{مقدار / وضعیت} \\
|
||||||
|
\hline
|
||||||
|
\endhead
|
||||||
|
|
||||||
|
\hline \multicolumn{3}{|r|}{{\textcolor{gray}{ادامه در صفحه بعد...}}} \\ \hline
|
||||||
|
\endfoot
|
||||||
|
|
||||||
|
\hline
|
||||||
|
\endlastfoot
|
||||||
|
|
||||||
|
% --- فاز اول ---
|
||||||
|
\rowcolor{tablephase}
|
||||||
|
\multicolumn{3}{|c|}{\textbf{بخش اول: لورم ایپسوم متن ساختگی}} \\ \hline
|
||||||
|
۱ & لورم ایپسوم متن ساختگی با تولید سادگی & \textbf{مقدار نمونه} \\ \hline
|
||||||
|
۲ & چاپگرها و متون بلکه روزنامه و مجله & \textbf{مقدار نمونه} \\ \hline
|
||||||
|
۳ & برای شرایط فعلی تکنولوژی مورد نیاز & \textbf{مقدار نمونه} \\ \hline
|
||||||
|
|
||||||
|
% --- فاز دوم ---
|
||||||
|
\rowcolor{tablephase}
|
||||||
|
\multicolumn{3}{|c|}{\textbf{بخش دوم: کاربردهای متنوع و ابزارها}} \\ \hline
|
||||||
|
۴ & طراحان گرافیک است چاپگرها و متون & \textbf{مقدار نمونه} \\ \hline
|
||||||
|
۵ & شناخت فراوان جامعه و متخصصان را می طلبد & \textbf{مقدار نمونه} \\ \hline
|
||||||
|
۶ & ایجاد با شناخت فراوان جامعه و متخصصان & \textbf{مقدار نمونه} \\ \hline
|
||||||
|
|
||||||
|
\end{longtable}
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\section*{پیوست ۲: دستورالعملهای فنی و ابزارهای توسعه}
|
||||||
|
\addcontentsline{toc}{section}{پیوست ۲: دستورالعملهای فنی و ابزارهای توسعه}
|
||||||
|
|
||||||
|
\subsection*{نمونه درج بلوک کد \lr{(Code Snippet)}}
|
||||||
|
\addcontentsline{toc}{subsection}{نمونه درج بلوک کد \lr{(Code Snippet)}}
|
||||||
|
برای قرار دادن کدهای برنامهنویسی (مانند متدهای بکآند یا استایلهای فرانتآند)، اعضای تیم باید از ساختار زیر استفاده کنند. توجه شود که توضیحات داخل کد حتماً به زبان انگلیسی نوشته شود تا ساختار چپبهراست کد خراب نشود.
|
||||||
|
|
||||||
|
\vspace{0.4cm}
|
||||||
|
\textbf{نمونه کد اتصال به پایگاه داده و احراز هویت دیتابیس:}
|
||||||
|
\begin{LTR}
|
||||||
|
\begin{lstlisting}[language=Python]
|
||||||
|
# Example configurations for database routing
|
||||||
|
def check_user_permission(user_id, role):
|
||||||
|
try:
|
||||||
|
user = User.objects.get(id=user_id)
|
||||||
|
if user.role == role:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
except User.DoesNotExist:
|
||||||
|
return False
|
||||||
|
\end{lstlisting}
|
||||||
|
\end{LTR}
|
||||||
|
|
||||||
|
\subsection*{نمونه درج تصویر و نمودارهای سیستم}
|
||||||
|
\addcontentsline{toc}{subsection}{نمونه درج تصویر و نمودارهای سیستم}
|
||||||
|
شما میتوانید معماری سیستم، خروجی تسکها یا نمودارهای پایگاه داده را با ساختار استاندارد زیر اضافه کنید. برای اینکه تصویر در جای دقیق خود قرار گیرد، از پارامتر \lr{[h!]} استفاده شده است.
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
% برای تست کامپایل بدون خطا، یک کادر فرضی به جای عکس رسم میکنیم.
|
||||||
|
% در پروژه واقعی خط زیر را پاک کرده و \includegraphics را از کامنت خارج کنید:
|
||||||
|
%\rule{10cm}{5cm}
|
||||||
|
\includegraphics[width=0.4\textwidth]{image.png}
|
||||||
|
\caption{نمونه ساختار معماری و جریان داده بین کلاینت و سرور}
|
||||||
|
\label{fig:system_architecture}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
همانطور که در شکل \ref{fig:system_architecture} مشاهده میکنید، تمامی درخواستها ابتدا از فیلترهای امنیتی عبور میکنند.
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
\clearpage % این دستور باعث میشود اگر عکسها جا ماندهاند، حتماً قبل از ایجاد صفحه جدید چاپ شوند.
|
||||||
|
\section*{واژهنامه تخصصی}
|
||||||
|
\addcontentsline{toc}{section}{واژهنامه تخصصی}
|
||||||
|
در این بخش کلمات کلیدی فنی و اختصارات به کار رفته در متن گزارش برای درک بهتر ثبت میشوند:
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\renewcommand{\arraystretch}{1.4}
|
||||||
|
\begin{longtable}{|>{\centering\arraybackslash}p{0.2\textwidth}|>{\centering\arraybackslash}p{0.3\textwidth}|p{0.4\textwidth}|}
|
||||||
|
\hline
|
||||||
|
\rowcolor{tablehead}
|
||||||
|
\textbf{اصطلاح / اختصار} & \textbf{معادل انگلیسی} & \multicolumn{1}{c|}{\textbf{توضیح کوتاه}} \\
|
||||||
|
\hline
|
||||||
|
\endfirsthead
|
||||||
|
|
||||||
|
\hline
|
||||||
|
\lr{VPS} & Virtual Private Server & سرور مجازی اختصاصی جهت میزبانی وبسایت و سرویسها \\ \hline
|
||||||
|
\lr{UI} & User Interface & رابط کاربری ظاهری که کاربر مستقیماً با آن تعامل دارد \\ \hline
|
||||||
|
\lr{UX} & User Experience & تجربه کاربری و نحوه تعامل و روان بودن کار با سیستم \\ \hline
|
||||||
|
\lr{API} & Application Programming Interface & رابط برنامهنویسی کاربردی برای اتصال فرانتآند و بکآند \\ \hline
|
||||||
|
\end{longtable}
|
||||||
|
\end{center}
|
||||||
|
|
@ -0,0 +1,215 @@
|
||||||
|
\ProvidesPackage{System/team_template}[2026/04/06 V1.0 Custom Team Template]
|
||||||
|
|
||||||
|
% ==========================================
|
||||||
|
% 1. Core Packages (Changed \usepackage to \RequirePackage)
|
||||||
|
% ==========================================
|
||||||
|
\RequirePackage{amsmath}
|
||||||
|
\RequirePackage{amssymb}
|
||||||
|
\RequirePackage[top=3cm, bottom=3cm, left=3cm, right=3cm]{geometry}
|
||||||
|
\RequirePackage{setspace}
|
||||||
|
\RequirePackage{parskip}
|
||||||
|
\RequirePackage{enumitem}
|
||||||
|
\RequirePackage{array}
|
||||||
|
\RequirePackage{longtable}
|
||||||
|
\RequirePackage[table]{xcolor}
|
||||||
|
\RequirePackage{graphicx}
|
||||||
|
\graphicspath{{Assets/Image/}}
|
||||||
|
\RequirePackage{tikz}
|
||||||
|
\RequirePackage[figure,table]{totalcount}
|
||||||
|
\usetikzlibrary{shadings, shapes.geometric}
|
||||||
|
\RequirePackage{fontawesome5}
|
||||||
|
\RequirePackage[many]{tcolorbox}
|
||||||
|
\RequirePackage[hidelinks]{hyperref}
|
||||||
|
\RequirePackage{csquotes}
|
||||||
|
\RequirePackage[backend=biber, style=numeric, defernumbers=true]{biblatex}
|
||||||
|
\RequirePackage{fancyhdr}
|
||||||
|
\RequirePackage{listings}
|
||||||
|
|
||||||
|
% ==========================================
|
||||||
|
% 2. Engine Variables & Flags (Initializers)
|
||||||
|
% ==========================================
|
||||||
|
\newif\ifModernShapes
|
||||||
|
\newif\ifSeparateCover
|
||||||
|
\newif\ifDefaultAuthor
|
||||||
|
\newif\ifMultiAuthor
|
||||||
|
|
||||||
|
% --- Status and Confidentiality Definitions ---
|
||||||
|
\newcommand{\ConfPublic}{\textcolor{green!70!black}{عمومی}}
|
||||||
|
\newcommand{\ConfInternal}{\textcolor{primary}{داخلی سازمان}}
|
||||||
|
\newcommand{\ConfSecret}{\textcolor{accentYellow}{محرمانه}}
|
||||||
|
\newcommand{\ConfTopSecret}{\textcolor{accentRed}{\textbf{بسیار محرمانه}}}
|
||||||
|
|
||||||
|
\newcommand{\StatusDraft}{\textcolor{gray}{پیشنویس}}
|
||||||
|
\newcommand{\StatusReview}{\textcolor{orange}{در حال بررسی}}
|
||||||
|
\newcommand{\StatusApproved}{\textcolor{green!70!black}{مصوب و اجرایی}}
|
||||||
|
\newcommand{\StatusArchived}{\textcolor{red}{آرشیو شده}}
|
||||||
|
|
||||||
|
% ==========================================
|
||||||
|
% 3. Typography & Language
|
||||||
|
% ==========================================
|
||||||
|
\RequirePackage{xepersian}
|
||||||
|
\settextfont[Path=Assets/Font/, Extension=.ttf, BoldFont=Vazirmatn-Bold]{Vazirmatn-Regular}
|
||||||
|
\setlength{\headheight}{47pt}
|
||||||
|
\setlength{\footskip}{36pt}
|
||||||
|
|
||||||
|
% ==========================================
|
||||||
|
% 4. Brand Colors & Formatting
|
||||||
|
% ==========================================
|
||||||
|
\definecolor{primary}{RGB}{12, 45, 92}
|
||||||
|
\definecolor{accentRed}{RGB}{190, 40, 50}
|
||||||
|
\definecolor{accentYellow}{RGB}{242, 169, 0}
|
||||||
|
\definecolor{accentTeal}{RGB}{0, 155, 165}
|
||||||
|
\definecolor{accentDark}{RGB}{20, 30, 45}
|
||||||
|
|
||||||
|
\colorlet{tablehead}{primary!15}
|
||||||
|
\colorlet{tablephase}{accentDark!8}
|
||||||
|
|
||||||
|
\setstretch{1.4}
|
||||||
|
\setlist[itemize]{itemsep=0.4em, topsep=0.2em}
|
||||||
|
|
||||||
|
% ==========================================
|
||||||
|
% 5. Custom UI Boxes & Code Snippets
|
||||||
|
% ==========================================
|
||||||
|
\lstset{
|
||||||
|
basicstyle=\ttfamily\small,
|
||||||
|
keywordstyle=\color{primary}\bfseries,
|
||||||
|
commentstyle=\color{gray}\itshape,
|
||||||
|
stringstyle=\color{accentRed},
|
||||||
|
numbers=left,
|
||||||
|
numberstyle=\tiny\color{gray},
|
||||||
|
stepnumber=1,
|
||||||
|
numbersep=8pt,
|
||||||
|
backgroundcolor=\color{accentDark!5},
|
||||||
|
showspaces=false,
|
||||||
|
showstringspaces=false,
|
||||||
|
frame=single,
|
||||||
|
rulecolor=\color{primary!40},
|
||||||
|
tabsize=4,
|
||||||
|
captionpos=b,
|
||||||
|
breaklines=true,
|
||||||
|
breakatwhitespace=false
|
||||||
|
}
|
||||||
|
|
||||||
|
\newtcolorbox{ScoreBox}{
|
||||||
|
enhanced, colback=white, colframe=primary, boxrule=1.2pt,
|
||||||
|
arc=3mm, auto outer arc, left=10pt, right=10pt, top=8pt, bottom=8pt,
|
||||||
|
drop fuzzy shadow=black!10
|
||||||
|
}
|
||||||
|
|
||||||
|
\newtcolorbox{QuoteBox}{
|
||||||
|
enhanced, frame hidden, colback=accentYellow!10,
|
||||||
|
borderline east={4pt}{0pt}{accentYellow},
|
||||||
|
sharp corners=east, rounded corners=west, arc=3mm,
|
||||||
|
right=25pt, left=10pt, top=10pt, bottom=10pt,
|
||||||
|
overlay={
|
||||||
|
\node[anchor=north east, text=accentYellow!30, font=\Huge] at ([xshift=-8pt, yshift=-8pt]frame.north east) {\faQuoteRight};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
% ==========================================
|
||||||
|
% 6. Page Geometry, Shapes, and Headers
|
||||||
|
% ==========================================
|
||||||
|
\newcommand{\OddPageShapesA}{%
|
||||||
|
\begin{tikzpicture}[remember picture, overlay]
|
||||||
|
\fill[primary!10] (current page.north east) rectangle ++(-0.2, -\paperheight);
|
||||||
|
\fill[primary] (current page.north east) -- ++(0, -4.5) -- ++(-3.5, 4.5) -- cycle;
|
||||||
|
\fill[accentYellow] (current page.north east) ++(0, -4.5) -- ++(0, -0.4) -- ++(-3.81, 4.9) -- ++(0.4, 0) -- cycle;
|
||||||
|
\path (current page.north east) ++(-1.0, -1.5) node {\textcolor{primary!10}{\lr{\Large \faCogs}}};
|
||||||
|
\end{tikzpicture}%
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand{\EvenPageShapesA}{%
|
||||||
|
\begin{tikzpicture}[remember picture, overlay]
|
||||||
|
\fill[primary!10] (current page.north west) rectangle ++(0.2, -\paperheight);
|
||||||
|
\fill[primary] (current page.north west) -- ++(0, -4.5) -- ++(3.5, 4.5) -- cycle;
|
||||||
|
\fill[accentYellow] (current page.north west) ++(0, -4.5) -- ++(0, -0.4) -- ++(3.81, 4.9) -- ++(-0.4, 0) -- cycle;
|
||||||
|
\path (current page.north west) ++(1.0, -1.5) node {\textcolor{primary!10}{\lr{\Large \faLightbulb}}};
|
||||||
|
\end{tikzpicture}%
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand{\OddPageShapesB}{%
|
||||||
|
\begin{tikzpicture}[remember picture, overlay]
|
||||||
|
\fill[primary!10] (current page.north east) rectangle ++(-0.2, -\paperheight);
|
||||||
|
\fill[primary] (current page.south east) -- ++(0, 4.5) -- ++(-3.5, -4.5) -- cycle;
|
||||||
|
\fill[primary!20, opacity=0.8] (current page.south east) ++(-1, 0) -- ++(-3.5, 0) -- ++(4.5, 4.5) -- cycle;
|
||||||
|
\fill[accentYellow] (current page.south east) ++(-2.5, 0) -- ++(1, 1) -- ++(0, -1) -- cycle;
|
||||||
|
\path (current page.south east) ++(-1.2, 1.6) node {\textcolor{primary!10}{\lr{\Large \faMicrochip}}};
|
||||||
|
\end{tikzpicture}%
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand{\EvenPageShapesB}{%
|
||||||
|
\begin{tikzpicture}[remember picture, overlay]
|
||||||
|
\fill[primary!10] (current page.north west) rectangle ++(0.2, -\paperheight);
|
||||||
|
\fill[primary] (current page.south west) -- ++(0, 4.5) -- ++(3.5, -4.5) -- cycle;
|
||||||
|
\fill[primary!20, opacity=0.8] (current page.south west) ++(1, 0) -- ++(3.5, 0) -- ++(-4.5, 4.5) -- cycle;
|
||||||
|
\fill[accentYellow] (current page.south west) ++(2.5, 0) -- ++(-1, 1) -- ++(0, -1) -- cycle;
|
||||||
|
\path (current page.south west) ++(1.2, 1.6) node {\textcolor{primary!10}{\lr{\Large \faNetworkWired}}};
|
||||||
|
\end{tikzpicture}%
|
||||||
|
}
|
||||||
|
|
||||||
|
\pagestyle{fancy}
|
||||||
|
\fancyhf{}
|
||||||
|
\renewcommand{\headrulewidth}{1.2pt}
|
||||||
|
|
||||||
|
\renewcommand{\headrule}{%
|
||||||
|
\ifodd\value{page}%
|
||||||
|
\hbox to\headwidth{\hspace{1.8cm}\color{primary}\leaders\hrule height \headrulewidth\hfill}%
|
||||||
|
\else%
|
||||||
|
\hbox to\headwidth{\color{primary}\leaders\hrule height \headrulewidth\hfill\hspace{1.8cm}}%
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
|
||||||
|
\renewcommand{\footrulewidth}{1.2pt}
|
||||||
|
\renewcommand{\footrule}{
|
||||||
|
\vspace*{0.6cm}
|
||||||
|
\hbox to\headwidth{\hfil\color{primary}\rule{0.8\headwidth}{\footrulewidth}\hfil}
|
||||||
|
\vspace*{-0.4cm}
|
||||||
|
}
|
||||||
|
|
||||||
|
% Using \AtBeginDocument ensures these headers can read variables (like \DocVersion) defined in main.tex
|
||||||
|
\AtBeginDocument{
|
||||||
|
\fancyhead[LO]{%
|
||||||
|
\hspace{1.8cm}%
|
||||||
|
\llap{\smash{\raisebox{-0.75cm}{\includegraphics[height=1.2cm]{logo.png}}}\hspace{0.3cm}}
|
||||||
|
\textcolor{primary}{\textbf{\DocTitle}}
|
||||||
|
}
|
||||||
|
\fancyhead[RE]{%
|
||||||
|
\textcolor{primary}{\textbf{\DocTitle}}
|
||||||
|
\rlap{\hspace{0.3cm}\smash{\raisebox{-0.75cm}{\includegraphics[height=1.2cm]{logo.png}}}}
|
||||||
|
\hspace{1.8cm}%
|
||||||
|
}
|
||||||
|
\fancyhead[RO]{\textcolor{gray}{نسخه \lr{\DocVersion}}}
|
||||||
|
\fancyhead[LE]{\textcolor{gray}{نسخه \lr{\DocVersion}}}
|
||||||
|
\fancyfoot[C]{\textcolor{gray}{صفحه \thepage}}
|
||||||
|
|
||||||
|
\fancyhead[C]{%
|
||||||
|
\ifModernShapes
|
||||||
|
\pgfmathtruncatemacro{\pagecycle}{mod(int((\value{page}-1)/2), 2)}
|
||||||
|
\ifnum\pagecycle=0
|
||||||
|
\ifodd\value{page} \OddPageShapesA \else \EvenPageShapesA \fi
|
||||||
|
\else
|
||||||
|
\ifodd\value{page} \OddPageShapesB \else \EvenPageShapesB \fi
|
||||||
|
\fi
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
\fancypagestyle{cover}{
|
||||||
|
\fancyhf{}
|
||||||
|
\renewcommand{\headrulewidth}{0pt}
|
||||||
|
\renewcommand{\footrulewidth}{0pt}
|
||||||
|
|
||||||
|
\fancyhead[C]{%
|
||||||
|
\ifModernShapes
|
||||||
|
\begin{tikzpicture}[remember picture, overlay]
|
||||||
|
\fill[primary] (current page.north west) -- ++(7.5,0) -- ++(-5, -5.5) -- cycle;
|
||||||
|
\fill[accentYellow] (current page.north west) ++(7.5,0) -- ++(0.6,0) -- ++(-5.6, -6.1) -- ++(-0.6,0) -- cycle;
|
||||||
|
\fill[primary!10] (current page.north west) ++(0, -5.5) -- ++(2.5,0) -- ++(-2.5, -2.5) -- cycle;
|
||||||
|
|
||||||
|
\fill[primary] (current page.south east) -- ++(-8.5, 0) -- ++(6, 6.5) -- cycle;
|
||||||
|
\fill[primary!20, opacity=0.8] (current page.south east) ++(-9.5, 0) -- ++(-1.5, 0) -- ++(8.5, 9) -- ++(1.5, 0) -- cycle;
|
||||||
|
\fill[accentYellow] (current page.south east) ++(-3.5, 0) -- ++(3.5, 3.8) -- ++(0, -3.8) -- cycle;
|
||||||
|
\end{tikzpicture}%
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
$max_repeat = 2;
|
||||||
|
|
@ -0,0 +1,142 @@
|
||||||
|
\documentclass[12pt,a4paper,twoside,fleqn]{article}
|
||||||
|
\usepackage{System/team_template}
|
||||||
|
\addbibresource{Assets/references.bib}
|
||||||
|
|
||||||
|
% --- فراخوانی تنظیمات کاربر ---
|
||||||
|
\input{00_config.tex}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
% ==========================================
|
||||||
|
% ساختار صفحه اول و دوم
|
||||||
|
% ==========================================
|
||||||
|
\ifSeparateCover
|
||||||
|
% --- حالت کاور مجزا ---
|
||||||
|
\thispagestyle{cover}
|
||||||
|
% تنظیم جایگاه لوگو در بالای صفحه
|
||||||
|
\vspace*{0.5cm}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[width=4.0cm]{logo.png}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
% هل دادن عنوان به مرکز بصری صفحه
|
||||||
|
\vspace*{\stretch{1}}
|
||||||
|
\begin{center}
|
||||||
|
\textcolor{accentYellow}{\rule{2.5cm}{1.5pt}} % Subtle gold bridge line
|
||||||
|
\vspace{0.4cm}
|
||||||
|
|
||||||
|
{\Huge \textcolor{primary}{\textbf{\DocTitle}}}
|
||||||
|
|
||||||
|
\vspace{0.8cm}
|
||||||
|
|
||||||
|
{\large \textcolor{gray}{\DocSubtitle}}
|
||||||
|
|
||||||
|
\vspace{0.5cm}
|
||||||
|
\textcolor{primary!40}{\rule{1.5cm}{1pt}} % Tiny anchor line at the bottom
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\vspace*{\stretch{2.5}}
|
||||||
|
\clearpage % اتمام صفحه کاور و رفتن به صفحه دوم
|
||||||
|
|
||||||
|
\vspace{0.8cm}
|
||||||
|
\else
|
||||||
|
\begin{center}
|
||||||
|
{\Huge \textcolor{primary}{\textbf{\DocTitle}}}
|
||||||
|
|
||||||
|
\vspace{0.2cm}
|
||||||
|
|
||||||
|
{\medium \textcolor{gray}{\DocSubtitle}}
|
||||||
|
\end{center}
|
||||||
|
\vspace{0.6cm}
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% --- جدول شناسنامه سند ---
|
||||||
|
\begin{center}
|
||||||
|
\begin{table}[h!]
|
||||||
|
\centering
|
||||||
|
\renewcommand{\arraystretch}{1.5}
|
||||||
|
\arrayrulecolor{black}
|
||||||
|
\begin{tabular}{|>{\centering\arraybackslash}p{0.3\linewidth}|>{\centering\arraybackslash}p{0.22\linewidth}|>{\centering\arraybackslash}p{0.3\linewidth}|}
|
||||||
|
\hline
|
||||||
|
\rowcolor{tablehead}
|
||||||
|
شماره سند: \vspace{0.15cm} & نسخه: \vspace{0.15cm} & تاریخ تدوین: \vspace{0.15cm} \\
|
||||||
|
\rowcolor{tablehead}
|
||||||
|
{\bfseries \DocID} & {\bfseries \lr{\DocVersion}} & {\bfseries \DocDate} \\[0.25cm]
|
||||||
|
\hline
|
||||||
|
\ifMultiAuthor تهیهکنندگان: \else تهیهکننده: \fi \vspace{0.15cm} & سطح محرمانگی: \vspace{0.15cm} & وضعیت: \vspace{0.15cm} \\
|
||||||
|
{\bfseries \ifDefaultAuthor پارک علم و فناوری دانشگاه صنعتی امیرکبیر \else \DocAuthor \fi} & {\bfseries \DocSecret} & {\bfseries \DocStatus} \\[0.25cm]
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{table}
|
||||||
|
\end{center}
|
||||||
|
\arrayrulecolor{black}
|
||||||
|
|
||||||
|
% تنظیم فاصله بعد از جدول قبل از شروع محتوا
|
||||||
|
\ifSeparateCover
|
||||||
|
\vspace{0.5cm}
|
||||||
|
\else
|
||||||
|
\vspace{0.1cm} % فاصله بسیار کم در حالت بدون کاور
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% --- بخش فهرستهای خودکار سند ---
|
||||||
|
\newpage
|
||||||
|
\pdfbookmark[1]{\contentsname}{toc}
|
||||||
|
\tableofcontents % فهرست مطالب
|
||||||
|
|
||||||
|
\iftotalfigures
|
||||||
|
\newpage
|
||||||
|
\listoffigures % فهرست نمودارها و تصاویر (خودکار)
|
||||||
|
\fi
|
||||||
|
|
||||||
|
\iftotaltables
|
||||||
|
\newpage
|
||||||
|
\listoftables % فهرست جدولها (خودکار)
|
||||||
|
\fi
|
||||||
|
\newpage
|
||||||
|
% ---------------------------------
|
||||||
|
|
||||||
|
% ==========================================
|
||||||
|
% فراخوانی فایلهای محتوای پروژه
|
||||||
|
% ==========================================
|
||||||
|
\input{Content/01_project_content.tex} % متن اصلی
|
||||||
|
\input{Content/02_appendices.tex} % پیوستها
|
||||||
|
\input{Content/03_glossary.tex} % واژهنامه تخصصی
|
||||||
|
|
||||||
|
% --- بخش مراجع خودکار ---
|
||||||
|
\newpage
|
||||||
|
\phantomsection
|
||||||
|
\addcontentsline{toc}{section}{مراجع و منابع}
|
||||||
|
|
||||||
|
\nocite{*}
|
||||||
|
|
||||||
|
% چاپ منابع فارسی (راستچین)
|
||||||
|
\printbibliography[keyword=persian, title={منابع فارسی}]
|
||||||
|
\vspace{1cm}
|
||||||
|
|
||||||
|
% چاپ منابع انگلیسی (چپچین)
|
||||||
|
\begin{latin}
|
||||||
|
\printbibliography[keyword=english, title={English References}, resetnumbers=true]
|
||||||
|
\end{latin}
|
||||||
|
|
||||||
|
\clearpage
|
||||||
|
|
||||||
|
% Check if the current page is odd. If so, insert a blank page
|
||||||
|
% to force the back cover onto an even page (the back of the document).
|
||||||
|
\ifodd\value{page}
|
||||||
|
\thispagestyle{empty}
|
||||||
|
\null % Insert invisible content to ensure the page isn't skipped
|
||||||
|
\newpage
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% Back Cover Layout
|
||||||
|
\thispagestyle{cover} % Reusing your custom cover style for consistency
|
||||||
|
\vspace*{\stretch{1}}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[width=5.0cm]{logo.png}
|
||||||
|
|
||||||
|
\vspace{0.5cm}
|
||||||
|
\textcolor{accentYellow}{\rule{2.5cm}{1.5pt}}
|
||||||
|
\end{center}
|
||||||
|
\vspace*{\stretch{2}}
|
||||||
|
|
||||||
|
\end{document}
|
||||||
Loading…
Reference in New Issue