اولین بار است که به اینجا می‌آیید؟ راهنمای سایت را بخوانید!
Close Sidebar
وب‌سایت پرسش و پاسخ پارسی‌لاتک جایی برای پرسش و پاسخ درباره سیستم حروف‌چینی لاتک و بسته زی‌پرشین است. در اینجا می‌توانید سوال‌های خود را بپرسید و به سوال‌های دیگران پاسخ دهید.

محبوب‌ترین برچسب‌ها

رفع خطا جدول مراجع xepersian ریاضی‌نویسی شکل فونت فهرست مطالب شماره‌گذاری منابع bidi پانویس بیب‌تک tikz تک‌لایو parsilatex بیمر اسلاید زی‌پرشین پاورقی سربرگ bibtex نماد فرمول‌نویسی رسم شکل قالب ارجاع‌دهی biditexmaker هدر ویرایشگر beamer واژه‌نامه اندازه فونت texstudio عنوان فصل ماتریس اعمال نشدن تغییرات در پی‌دی‌اف رسم جدول bidipresentation شماره صفحه حاشیه رنگ عنوان شکل اسلاید فارسی محیط قضیه گراف مکان شکل tikzpicture حروف‌چینی کد شماره فصل enumerate tabriz_thesis نمایه align زیرنویس شکل کادر itemize listings الگوریتم عدم اجرا نیم‌فاصله متن لاتین و فارسی فهرست اشکال بسته فاصله بین خطوط قالب پایان‌نامه فرمول نصب تک‌لایو فارسی‌تک hyperref شماره فرمول glossaries کپشن نمودار حروف‌چینی چندستونی فونت فارسی و انگلیسی ماکرونویسی خروجی biditools شماره پاورقی پیوست‌ فاصله‌گذاری فرمول چندضابطه‌ای لاتک سوال امتحانی subfigure extrafootnotefeatures header texmaker pdf tex biditufte-book تصویر شمارنده texlive2015 longtable زیرنویس خطا رسم نمودار شماره‌گذاری صفحات پایان نامه دیاگرام فهرست جداول میک‌تک texlive2016 تنظیم جدول kashida texworks caption اندیس lollipop iust-thesis multicol فصل‌نویسی شعر سوال چهارگزینه‌ای بولد تورفتگی آکولاد اعداد فارسی فاصله عمودی xindy چپ‌چینی اوبونتو میکروسافت ورد قاب geometry texlive fancyhdr تک لایو 2015 عنوان بخش به‌روزرسانی بسته aimc46 صفر توخالی فرمول طولانی بیرون‌زدگی کاما وسط‌چینی tcolorbox پوستر شماره گذاری فاصله سطرها نوشتافت شکست خط tex-programming فونت اعداد pgfplots قرآن tabriz-thesis ایتالیک winedt جستجوی معکوس xelatex فلش جایابی تصویر قالب کتاب پاراگراف‌بندی بازیابی اطلاعات هایپرلینک فهرست نمادها شمارنده فصل font محیط ریاضی رسم کادر جداکننده جدول طولانی فهرست تصاویر شماره‌گذاری فرمول algorithm2e فونت بولد proof equation bidipoem eps جدول افقی عکس به‌روزرسانی پانویس چندستونی کمک مالی فاصله خطوط حروف‌چینی شعر زیرشکل minipage قلم پانویس پاراگرافی ltrfootnote پیوست computeautoilg متن فارسی و انگلیسی فرمول چندخطی neveshtuft غلط‌گیری املایی تک‌پارسی پیکان لاتکس tabular baselineskip شماره قسمت قسمت عنوان جدول
14 نفر آنلاین
0 عضو و 14 مهمان در سایت حاضرند
بازدید امروز: 11709
بازدید دیروز: 21577
بازدید کل: 21283447

نوشتن تعداد زیادی نامه ادارای برای اشخاص مختلف با یک متن مشخص

0 رای
4,103 بازدید

سلام دوستان.
امروز که مطالب سایت رو نگاه می‌کردم یکی از دوستان سؤالی در مورد نوشتن نامه اداری داشتند.
یکی از دوستان لطف کرده و کد زیر رو در جواب سؤال قرار داده بودند

\documentclass{letter}
\usepackage{fancyhdr}
\usepackage[headheight = 3cm,headsep=1cm]{geometry}

\usepackage{xepersian}
\settextfont{Yas}

\fancypagestyle{plain}{
\fancyhf{}
\fancyhead[L]{\includegraphics[height=5mm]{example-image-a}}
}
\fancypagestyle{empty}{
\fancyhf{}
\fancyhead[R]{\includegraphics[height=0.5in, keepaspectratio=true]{example-image-a}}
\fancyhead[L]{
\begin{minipage}{.2\textwidth}
تاریخ: 26/6/1394 
\\
شماره: 
123456
\end{minipage}
}
}
\renewcommand{\headrulewidth}{0pt}
\pagestyle{plain}



%%%%%%%%%%%%
\name{سید احمد}
\signature{موسوی}
\address{
دانشگاه .... \\دانشکده ریاضی و علوم کامپیوتر\\
}
%\date{} %اگر کامنت را حذف کنید تاریخ را نخواهید داشت.

\begin{document}

\begin{letter}{}
\opening{جناب آقای....}

سلام علیکم؛\\
متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن 


\closing{با احترام :}
\encl{جزییات به پیوست می‌باشد.}

\end{letter}
\end{document}

که خروجیش هم به صورت زیر هست:
enter image description here

الان شما فرض کنید ما می‌خواهیم این نامه رو به صد نفر ارسال کنیم و تنها چیزی که در نامه‌ها تغییر خواهد کرد شماره نامه و اسم شخصی است که مخاطب نامه می‌باشد. مثلاً قرار است شماره از یک عدد خاص شروع شود و در نامه بعدی یک واحد به آن افزوده شود و به همین ترتیب تا آخر ادامه یابد.

من الان این نامه‌هارو با ورد می‌نویسم و اسامی مخاطبین رو در یک فایل اکسل نوشتم و اون فایل اکسل‌رو در فایل وردم فراخوانی کردم و به این ترتیب با یک بار تنظیم متنم می‌تونم صد تا نامه‌رو به راحتی پرینت بگیرم. تا امروز هم شماره‌هارو بنا به دلایلی به صورت دستی بعداً با خودکار می‌نویسیم!!

الان سؤالم اینه. در کدی که برای نوشتن نامه ارائه شده است این امکان وجود داره که کاری مشابه کاری که با اکسل و ورد انجام دادیم انجام بدیم و با یک بار پردازش از یک متن بتونیم صد تا نامه مورد نظر رو تولید کنیم و پرینت بگیریم؟

اگر چنین امکانی وجود داره در آن صورت اسم اشخاص رو باید چطوری نوشت و شماره نامه‌رو چطوری و با چه دستوری باید وارد کرد؟

(درسته با ورد الان این کار رو انجام میدم ولی یه حسی بهم میگه بهتره با لاتک اینکارو انجام بدم :) )

اگر دوستان اطلاعاتی دارند ممنون میشم راهنمایی کنند.

سوال شده شهریور 23, 1394 توسط پروین نقی‌زاده (759 امتیاز)
سلام ، سوال من اینه که این کدو باید کجا اجرا کنیم راستش اصلا مراحلشو نمی دونم اگر امکانش هست از دوستان برام گام به گام توضیحاتشو بزارین

2 پاسخ

0 رای
 
بهترین پاسخ

با سلام
با کمی ماکرونویسی می‌شه این کار رو کرد.

\documentclass{letter}
\usepackage{fancyhdr}
\usepackage[headheight = 3cm,headsep=1cm]{geometry}

\usepackage{xepersian}
\settextfont{HM XNiloofar}

\fancypagestyle{plain}{
\fancyhf{}
\fancyhead[L]{\includegraphics[height=5mm]{example-image-a}}
}
\fancypagestyle{empty}{
\fancyhf{}
\fancyhead[R]{\includegraphics[height=0.5in, keepaspectratio=true]{example-image-a}}
\fancyhead[L]{
\begin{minipage}{.2\textwidth}
تاریخ: 26/6/1394 
\\
شماره: 
\NO
\end{minipage}
}
}
\renewcommand{\headrulewidth}{0pt}
\pagestyle{plain}



%%%%%%%%%%%%
\name{سید احمد}
\signature{موسوی}
\address{
دانشگاه .... \\دانشکده ریاضی و علوم کامپیوتر\\
}
%\date{} %اگر کامنت را حذف کنید تاریخ را نخواهید داشت.


\def\newletter#1#2{\xdef\NAME{#1}  \xdef\NO{#2}\Letter\clearpage}

\def\Letter{
\begin{letter}{}
\opening{ \NAME}

سلام علیکم؛\\
متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن متن 


\closing{با احترام :}
\encl{جزییات به پیوست می‌باشد.}
\end{letter}
}

\begin{document}
\newletter{ سرکار خانم پروین}{A223322}
\newletter{جناب آقای فرشاد}{B/1235}
\end{document}

من یک روش رو اینجا آوردم. حتما روش‌های بهتری هم هست.

پاسخ داده شده شهریور 23, 1394 توسط فرشاد ترابی (2,843 امتیاز)
انتخاب شده شهریور 23, 1394 توسط پروین نقی‌زاده
این برام خیلی جالب بود. ممنون :)
+2 رای

بسته csvsimple می‌تواند به کمک شما آید.
شما باید یک فایل csv درست کنید --این کار را با اکسل یا حتی به صورت دستی نیز می‌توانید انجام دهید؛‌ بدین صورت که فایل متنی ساده ایجاد کنید و در سطر اول نام ستون‌ها را در حالیکه با کاما از هم جداشده‌اند بنگارید و در سطور بعدی نیز داده‌ها را که آن‌ها نیز با کاما باید از هم جدا شده باشند--.

سپس کل استایل نامه را به صورت یک دستور تعریف کنید که دو پارامتر دارد یکی را برای نام و دیگری را برای شماره نامه در نظر بگیرید. البته اگر شماره نامه‌هایتان به ترتیب خاصی حرکت می‌کند حتی نیاز به درج آن‌ها در فایل csv نمی‌باشد و می‌توانید به سادگی با یک شمارنده این کار را انجام دهید.

سپس با بکار بردن دستورات ذیل به هدفتان نائل شوید:

دستور ذیل برای لود بسته

\usepackage{csvsimple}

حال فرض می‌کنیم که نام فایل csv شما برای مثال test.csv باشد.
با کمک دستور \csvreader می‌توانید به هدفتان نائل آیید.

\csvreader{test.csv}
{1=\name,2=\letternumber}
{\myletter{\name}{\letternumber}}

بجای اعداد 1 و 2 می‌توانید نام ستون‌های داده فایل csv را قرار دهید و متغیرهایی که جلوی این اعداد قرار می‌گیرند حاوی مقادیر سطرها می‌شوند. در اینجا \myletter مثلا دستوری است که شامل تمپلیت نامه شما می‌باشد. این دستور خودش یک حلقه زده و روی کل فایل حرکت می‌کند.

برای توضیحات و مثال‌های به مستندات بسته مراجعه کنید.

اگر توضیحات گویا نبود بفرمایید تا برایتان مثالی قرار دهم.

پاسخ داده شده شهریور 23, 1394 توسط سید جواد (4,427 امتیاز)
خیلی قشنگ بود. ممنون از این راهنمایی.
...