Compare commits

..

10 Commits

12 changed files with 109 additions and 41 deletions

BIN
Assets/Font/times.ttf Normal file

Binary file not shown.

BIN
Assets/Font/timesbd.ttf Normal file

Binary file not shown.

BIN
Assets/Font/timesbi.ttf Normal file

Binary file not shown.

BIN
Assets/Font/timesi.ttf Normal file

Binary file not shown.

View File

@ -8,10 +8,15 @@
\newcommand{\DocTitle}{عنوان اصلی و کامل برای مستندات پروژه}
\newcommand{\DocHeaderTitle}{عنوان کوتاه مستند}
\newcommand{\DocSubtitle}{توضیحات کوتاه یا زیرعنوان مستند}
\newcommand{\DocVersion}{1.0.3}
\newcommand{\DocVersion}{2.0.0}
\newcommand{\DocID}{\lr{[DOC-PRJ-01]}}
\newcommand{\DocDate}{\today} % می‌توانید تاریخ دستی بنویسید مثل: 1403/08/02
\renewcommand{\labelitemi}{$\bullet$}
\renewcommand{\labelitemii}{$\circ$}
\renewcommand{\labelitemiii}{$-$}
\renewcommand{\labelitemiv}{$\cdot$}
% -----------------------------------------------------------------
% ۲. وضعیت و سطح محرمانگی
% -----------------------------------------------------------------
@ -34,4 +39,11 @@
% ۴. تنظیمات ظاهری (کمترین میزان تغییر)
% -----------------------------------------------------------------
\ModernShapestrue % نمایش شکل‌های هندسی در گوشه صفحات (true یا false)
\SeparateCovertrue % کاور در صفحه مجزا (true) یا چسبیده به متن (false)
\SeparateCovertrue % کاور در صفحه مجزا (true) یا چسبیده به متن (false)
% -----------------------------------------------------------------
% ۵. تنظیمات ساختار سند (نمایش یا عدم نمایش بخش‌ها)
% -----------------------------------------------------------------
\newif\ifHasAppendices \HasAppendicestrue % true برای نمایش پیوست‌ها
\newif\ifHasGlossary \HasGlossarytrue % true برای نمایش واژه‌نامه
\newif\ifHasReferences \HasReferencestrue % true برای نمایش مراجع

View File

@ -13,6 +13,10 @@
\newcommand{\MinutesChair}{دکتر سید مسعود قریشی}
\newcommand{\MinutesSecretary}{مهندس علی بدیعی}
% تخصیص رئیس و دبیر به لیست حاضرین بر اساس جنسیت
\newcommand{\MinutesExtraMen}{\MinutesChair ؛ \MinutesSecretary}
\newcommand{\MinutesExtraWomen}{-} % در صورت نیاز متغیرهای بالا را به اینجا منتقل کنید
\newcommand{\MinutesPresentMen}{فراس مراد؛ متین توکلی؛ رضا اسفندیاری؛ امیرمهدی کرمی؛ سید محمد سجادی؛ سام قربانی}
\newcommand{\MinutesPresentWomen}{اعظم باغستانی؛ فاطمه طاهری} % Leave empty or use '-' if no women are present
\newcommand{\MinutesAbsentMen}{-} % Leave empty or use '-' if no men are absent
@ -25,7 +29,22 @@
۴. تأمین زیرساخت و رویدادها
}
% =================================================================
% تنظیمات تیم (برای تغییر تیم، خطوط مربوطه را از کامنت خارج کنید)
% =================================================================
% --- 1. تیم باشگاه نوآوری (Club) ---
% \newcommand{\MinutesGroupTitle}{جلسه هفتگی دستیاران نوآوری \\ \textbf{تیم باشگاه نوآوری \lr{(Club)}}}
% \renewcommand{\FirstPageIcon}{\faProjectDiagram}
% --- 2. تیم فنی (T&T) ---
\newcommand{\MinutesGroupTitle}{جلسه هفتگی دستیاران نوآوری \\ \textbf{تیم فنی \lr{(T\&T)}}}
\renewcommand{\FirstPageIcon}{\faCogs}
% --- 3. تیم تحقیق و توسعه (R&D) ---
% \newcommand{\MinutesGroupTitle}{جلسه هفتگی دستیاران نوآوری \\ \textbf{تیم تحقیق و توسعه \lr{(R\&D)}}}
% \renewcommand{\FirstPageIcon}{\faSearch}
\newcommand{\MinutesTeamLogo}{team_logo.png}
% --- تنظیمات ظاهری ---

View File

@ -1,4 +1,5 @@
\section*{مقدمه و هدف}
\phantomsection
\addcontentsline{toc}{section}{مقدمه و هدف}
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد.
@ -6,13 +7,16 @@
کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد \cite{smith2023, test_persian}.
\subsection*{پیش‌نیازهای سیستم}
\phantomsection
\addcontentsline{toc}{subsection}{پیش‌نیازهای سیستم}
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است. این بخش برای تست طولانی‌تر شدن محتوا و نمایش زیربخش‌ها در فهرست مطالب ایجاد شده است.
\section*{معماری و ساختار فنی}
\phantomsection
\addcontentsline{toc}{section}{معماری و ساختار فنی}
\subsection*{ساختار کلی سیستم}
\phantomsection
\addcontentsline{toc}{subsection}{ساختار کلی سیستم}
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ است. در این بخش، معماری کلی به شکل زیر تقسیم‌بندی می‌شود:
\begin{itemize}

View File

@ -1,5 +1,6 @@
\newpage
\section*{پیوست ۱: جداول نمونه (ساختار داده‌ها و تسک‌ها)}
\phantomsection
\addcontentsline{toc}{section}{پیوست ۱: جداول نمونه (ساختار داده‌ها و تسک‌ها)}
جدول زیر به عنوان یک نمونه استاندارد برای نمایش اطلاعات، تسک‌ها یا ساختار داده در مستندات تیم تدوین شده است. این جدول در فهرست جداول نیز نمایش داده خواهد شد.
@ -45,9 +46,11 @@
\newpage
\section*{پیوست ۲: دستورالعمل‌های فنی و ابزارهای توسعه}
\phantomsection
\addcontentsline{toc}{section}{پیوست ۲: دستورالعمل‌های فنی و ابزارهای توسعه}
\subsection*{نمونه درج بلوک کد \lr{(Code Snippet)}}
\phantomsection
\addcontentsline{toc}{subsection}{نمونه درج بلوک کد \lr{(Code Snippet)}}
برای قرار دادن کدهای برنامه‌نویسی (مانند متدهای بک‌آند یا استایل‌های فرانت‌آند)، اعضای تیم باید از ساختار زیر استفاده کنند. توجه شود که توضیحات داخل کد حتماً به زبان انگلیسی نوشته شود تا ساختار چپ‌به‌راست کد خراب نشود.
@ -68,6 +71,7 @@ def check_user_permission(user_id, role):
\end{LTR}
\subsection*{نمونه درج تصویر و نمودارهای سیستم}
\phantomsection
\addcontentsline{toc}{subsection}{نمونه درج تصویر و نمودارهای سیستم}
شما می‌توانید معماری سیستم، خروجی تسک‌ها یا نمودارهای پایگاه داده را با ساختار استاندارد زیر اضافه کنید. برای اینکه تصویر در جای دقیق خود قرار گیرد، از پارامتر \lr{[h!]} استفاده شده است.

View File

@ -1,5 +1,6 @@
\clearpage % این دستور باعث می‌شود اگر عکس‌ها جا مانده‌اند، حتماً قبل از ایجاد صفحه جدید چاپ شوند.
\section*{واژه‌نامه تخصصی}
\phantomsection
\addcontentsline{toc}{section}{واژه‌نامه تخصصی}
در این بخش کلمات کلیدی فنی و اختصارات به کار رفته در متن گزارش برای درک بهتر ثبت می‌شوند:

View File

@ -67,28 +67,31 @@
}
\ExplSyntaxOff
\newcommand{\PrintGroup}[4]{%
\newcommand{\PrintGroup}[5]{%
\def\emptyval{} \def\dashval{-}
\hasmenfalse \haswomenfalse
\expandafter\def\expandafter\menlist\expandafter{#3}
\expandafter\def\expandafter\menlist\expandafter{#4}
\ifx\menlist\emptyval\else\ifx\menlist\dashval\else\hasmentrue\fi\fi
\expandafter\def\expandafter\womenlist\expandafter{#4}
\expandafter\def\expandafter\extramen\expandafter{#2}
\ifx\extramen\emptyval\else\ifx\extramen\dashval\else\hasmentrue\fi\fi
\expandafter\def\expandafter\womenlist\expandafter{#5}
\ifx\womenlist\emptyval\else\ifx\womenlist\dashval\else\haswomentrue\fi\fi
\expandafter\def\expandafter\extralist\expandafter{#2}
\ifx\extralist\emptyval\else\hasmentrue\fi
\expandafter\def\expandafter\extrawomen\expandafter{#3}
\ifx\extrawomen\emptyval\else\ifx\extrawomen\dashval\else\haswomentrue\fi\fi
\ifhasmen
\ifhaswomen
\textbf{#1}\par\vspace{0.1cm}
\textbf{آقایان / دکتر / مهندس:} \SortAndCleanList{#2}{#3} \par\vspace{0.1cm}
\textbf{خانم‌ها / دکتر / مهندس:} \SortAndCleanList{}{#4}
\textbf{آقایان / دکتر / مهندس:} \SortAndCleanList{#2}{#4} \par\vspace{0.1cm}
\textbf{خانم‌ها / دکتر / مهندس:} \SortAndCleanList{#3}{#5}
\else
\textbf{#1 آقایان / دکتر / مهندس:} \SortAndCleanList{#2}{#3}
\textbf{#1 آقایان / دکتر / مهندس:} \SortAndCleanList{#2}{#4}
\fi
\else
\ifhaswomen
\textbf{#1 خانم‌ها / دکتر / مهندس:} \SortAndCleanList{#2}{#4}
\textbf{#1 خانم‌ها / دکتر / مهندس:} \SortAndCleanList{#3}{#5}
\else
\textbf{#1} -
\fi
@ -134,8 +137,8 @@
\noindent\makebox[\linewidth]{%
\begin{minipage}{\dimexpr \linewidth - 0.8cm \relax}
\vspace{0.2cm}
\PrintGroup{حاضرین:}{\MinutesChair ؛ \MinutesSecretary}{\MinutesPresentMen}{\MinutesPresentWomen} \par\vspace{0.2cm}
\PrintGroup{غائبین:}{}{\MinutesAbsentMen}{\MinutesAbsentWomen}
\PrintGroup{حاضرین:}{\MinutesExtraMen}{\MinutesExtraWomen}{\MinutesPresentMen}{\MinutesPresentWomen} \par\vspace{0.2cm}
\PrintGroup{غائبین:}{-}{-}{\MinutesAbsentMen}{\MinutesAbsentWomen}
\vspace{0.2cm}
\end{minipage}%
}\par

View File

@ -54,8 +54,8 @@
% --- Main Text Font ---
\settextfont[Path=Assets/Font/, Extension=.ttf, BoldFont=BNazanin-Bold]{BNazanin}
% --- Fix English Text ---
\setlatintextfont{Times New Roman} % You can also use Arial or Calibri
% --- Fix English Text (Local Font Bypass) ---
\setlatintextfont[Path=Assets/Font/, Extension=.ttf, BoldFont=timesbd, ItalicFont=timesi, BoldItalicFont=timesbi]{times}
% --- Custom Font Definitions ---
\defpersianfont\vazirfont[Path=Assets/Font/, Extension=.ttf, BoldFont=Vazirmatn-Bold]{Vazirmatn-Regular}
@ -129,12 +129,14 @@
% ==========================================
% 6. Page Geometry, Shapes, and Headers
% ==========================================
\newcommand{\FirstPageIcon}{\faCogs} % Default icon for main documents
\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}}};
\path (current page.north east) ++(-1.0, -1.5) node {\textcolor{primary!10}{\lr{\Large \FirstPageIcon}}};
\end{tikzpicture}%
}
@ -188,21 +190,16 @@
% 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}{\nazaninfont\textbf{\DocHeaderTitle}}
}
\fancyhead[RE]{%
\textcolor{primary}{\nazaninfont\textbf{\DocHeaderTitle}}
\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}}}
% Clear all default headers to prevent ghosting
\fancyhead[LO]{}
\fancyhead[RE]{}
\fancyhead[RO]{}
\fancyhead[LE]{}
\fancyfoot[C]{\textcolor{gray}{صفحه \thepage}}
\fancyhead[C]{%
% 1. Draw the Background Shapes
\ifModernShapes
\pgfmathtruncatemacro{\pagecycle}{mod(int((\value{page}-1)/2), 2)}
\ifnum\pagecycle=0
@ -211,6 +208,25 @@
\ifodd\value{page} \OddPageShapesB \else \EvenPageShapesB \fi
\fi
\fi
% 2. Draw the Text and Logo securely tied to the physical margins
\ifodd\value{page}%
% ODD PAGE: Shapes are on the RIGHT. Gap is on the RIGHT (1.8cm).
\makebox[\headwidth][s]{%
{\makebox[1.8cm][c]{\smash{\raisebox{-0.75cm}{\includegraphics[height=1.2cm]{logo.png}}}}%
\textcolor{primary}{\nazaninfont\textbf{\DocHeaderTitle}}}%
\hfill
{\textcolor{gray}{نسخه \lr{\DocVersion}}}%
}%
\else
% EVEN PAGE: Shapes are on the LEFT. Gap is on the LEFT (1.8cm).
\makebox[\headwidth][s]{%
{\textcolor{gray}{نسخه \lr{\DocVersion}}}%
\hfill
{\textcolor{primary}{\nazaninfont\textbf{\DocHeaderTitle}}%
\makebox[1.8cm][c]{\smash{\raisebox{-0.75cm}{\includegraphics[height=1.2cm]{logo.png}}}}}%
}%
\fi
}
}

View File

@ -101,24 +101,33 @@
% فراخوانی فایل‌های محتوای پروژه
% ==========================================
\input{Content/01_project_content.tex} % متن اصلی
\input{Content/02_appendices.tex} % پیوست‌ها
\input{Content/03_glossary.tex} % واژه‌نامه تخصصی
\ifHasAppendices
\input{Content/02_appendices.tex} % پیوست‌ها
\fi
\ifHasGlossary
\input{Content/03_glossary.tex} % واژه‌نامه تخصصی
\fi
% --- بخش مراجع خودکار ---
\newpage
\phantomsection
\addcontentsline{toc}{section}{مراجع و منابع}
\nocite{*}
\ifHasReferences
\newpage
\phantomsection
\addcontentsline{toc}{section}{مراجع و منابع}
% چاپ منابع فارسی (راست‌چین)
\printbibliography[keyword=persian, title={منابع فارسی}]
\vspace{1cm}
\nocite{*}
% چاپ منابع انگلیسی (چپ‌چین)
\begin{latin}
\printbibliography[keyword=english, title={\lr{English References}}, resetnumbers=true]
\end{latin}
% چاپ منابع فارسی (راست‌چین)
\printbibliography[keyword=persian, title={منابع فارسی}]
\vspace{1cm}
% چاپ منابع انگلیسی (چپ‌چین)
\begin{latin}
\printbibliography[keyword=english, title={\lr{English References}}, resetnumbers=true]
\end{latin}
\fi
\clearpage