سلام، لطفا وارد شوید یا عضو شوید.

نویسنده موضوع: کشیدن فلوچارت با استفاده از محیط PSMATRIX  (دفعات بازدید: 4083 بار)

آفلاین negin1990

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 42
  • -دریافت شده: 7
  • ارسال: 47
    • ديدن مشخصات
من برای کشیدن فلوچارت از بسته‌ی PSTRICKS و محیط PSMATRIX استفاده می‌کنم .
اما استاد ما از ما خواسته که ورودی و خروجی‌هامون توی متوازیالاضلاع باشه .
وقتی این سوال رو مطرح کردم دو تا جواب برای کشیدن متوازی‌الاضلاع گرفتم که اولیش این بود:‌
\documentclass{article}
\usepackage{pstricks}
\usepackage{pst-node,pst-3d}
\usepackage{pst-blur}
\definecolor{Pink}{rgb}{1.,0.75,0.8}

\makeatletter
\newsavebox\TBox
\newcommand\psParaBox[2][]{{
  \psset{framesep=5pt,gangle=60,#1}%
  \sbox\TBox{\psTilt{\psk@gangle}{\psframebox{\phantom{ #2}}}}%
  \usebox\TBox% 
  \rput(-0.5\wd\TBox,\dimexpr 0.5\ht\TBox-0.5ex\relax){ #2}}}
\makeatother

\pagestyle{empty}
\begin{document}

  \psset{shadowcolor=black!70,blur}
  \begin{psmatrix}[rowsep=0.4,colsep=0.5]
    \psovalbox{Begin} \\
    \psParaBox[fillstyle=solid,fillcolor=red!40]{Initialisations} \\
    \psdiabox{Special} &
       \psframebox[shadow=true]{Call to SP1} & \psframebox[shadow=true]{Call to SP2} \\
    \psframebox{Action 1} \\
    ~\\
    \psframebox{Action 2} \\
    \psovalbox{End}
    % Links
    \ncline{->}{1,1}{2,1}
    \ncline{->}{2,1}{3,1}
    \ncline{->}{3,1}{4,1}<{\textcolor{red}{No}}
    \ncline{->}{4,1}{6,1}
    \ncline{->}{6,1}{7,1}
    \ncline{->}{3,1}{3,2}^{\textcolor{red}{Yes}}
    \ncline{->}{3,2}{3,3}
    \ncbar[angleA=-90,armB=0,nodesepB=0.25]{->}{3,3}{4,1}
  \end{psmatrix}
\end{document}
که وقتی از این کد استفاده می‌کنم دوتا مشکل دارم :
۱- اگر بسته‌ی زیپرشین را فراخوانی کنم ارور می‌گیرم و خروجی پی‌دی اف رو هم به من نشون نمیده
۲- حتی اگر این بسته رو هم فراخوانی نکنم شکل متوازی‌الاضلاع رو نخواهم گرفت .

کد دومی که برای کشیدن متوازی‌الاضلاع هست کد زیره:
% ================================
% Source: http://tug.org/pipermail/pstricks/2009/006766.html

\makeatletter
\newdimen\psparallelogramsep
\def\psset@parallelogramsep#1{\pssetlength\psparallelogramsep{#1}}
\psset@parallelogramsep{3mm}
\def\psparallelogrambox{\pst@object{psparallelogrambox}}
\def\psparallelogrambox@i{\pst@makebox\psparallelogrambox@ii}
\def\psparallelogrambox@ii{%
    \begingroup
    \pst@useboxpar
    \pst@dima=\pslinewidth
    \advance\pst@dima by \psframesep
    \pst@dimc=\wd\pst@hbox\advance\pst@dimc by \pst@dima
    \pst@dimb=\dp\pst@hbox\advance\pst@dimb by \pst@dima
    \pst@dimd=\ht\pst@hbox\advance\pst@dimd by \pst@dima
    \setbox\pst@hbox=\hbox{%
        \ifpsboxsep\kern\pst@dima\fi
        \begin@ClosedObj
        \addto@pscode{%
            \psk@cornersize
            \pst@number\pst@dima neg
            \pst@number\pst@dimb neg
            \pst@number\pst@dimc
            \pst@number\pst@dimd .5
            \pst@number\psparallelogramsep
            \tx@Parallelogram}%
            \def\pst@linetype{2}%
            \showpointsfalse
        \end@ClosedObj
        \box\pst@hbox
        \ifpsboxsep\kern\pst@dima\fi%
    }%
    \ifpsboxsep\dp\pst@hbox=\pst@dimb\ht\pst@hbox=\pst@dimd\fi
    \leavevmode\box\pst@hbox
    \endgroup%
}

% From the Frame and Rect PostScript macros
\pst@def{Parallelogram}<{%
/ParallelogramA {
x1 pgs sub y1 moveto
x1 y2 lineto
x2 pgs add y2 lineto
x2 y1 lineto
x1 pgs sub y1 lineto
closepath} def
%
/pgs ED
CLW mul
/a ED
3 -1 roll
2 copy gt { exch } if
a sub
/y2 ED
a add
/y1 ED
2 copy gt { exch } if
a sub
/x2 ED
a add
/x1 ED
1 index 0 eq {pop pop ParallelogramA } { OvalFrame } ifelse}>
\makeatother

\def\pspbox[#1]#2{\makebox[#1]{\psparallelogrambox{#2}}}

% ================================


\pagestyle{empty}
با استفاده از این کد فقط تا زمانی که زیپرشین را فراخوانی نکردم می‌توانم فلوچارت بکشم و بعدش ارور می‌ده .

سوال من این هست که :
۱- چرا فقط با دومی می‌توانم متوازی‌الاضلاع بکشم
۲- آیا می‌شه از این محیط برای کشیدن فلوچارت استفاده کرد یا باید چیز دیگه‌ای مثل TIKZرو یاد بگیرم ؟‌
من از تکلایو ۲۰۱۱ استفاده می‌کنم .
نمونه فایل‌های هردو با شکل فلوچارتی که سعی کردم بکشم رو هم تو پیوست‌ها به صورت جداگانه قرار دادم . البته به خاطر اینکه با بسته زیپرشین ارور می‌داد همه چیز رو انگلیسی نوشتم .
البته سوالات دیگری رو هم که در این زمینه پرسیده شده بود رو بررسی کردم اما چون تکلایوم رو آپدیت کردم نمی‌دونم مشکل از کجاست دقیقا !
ممنونم
« آخرين ويرايش: دسامبر 06, 2011, 10:07:53 am توسط negin1990 »

آفلاین هادی صفی‌اقدم

  • ویرایشگر
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 789
  • -دریافت شده: 1353
  • ارسال: 5,644
    • ديدن مشخصات
پاسخ : کشیدن فلوچارت با استفاده از محیط PSMATRIX
« پاسخ #1 : دسامبر 06, 2011, 01:39:18 pm »
من در این زمینه اطلاعاتم صفر هست ولی فایل‌های ضمیمه شده الان با زی‌پرشین مشکلی نداره.
سایت زیر نمونه‌های خوبی داره: www.texample.net/tikz/

« آخرين ويرايش: دسامبر 06, 2011, 01:41:28 pm توسط هادی صفی‌اقدم »

آفلاین negin1990

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 42
  • -دریافت شده: 7
  • ارسال: 47
    • ديدن مشخصات
پاسخ : کشیدن فلوچارت با استفاده از محیط PSMATRIX
« پاسخ #2 : دسامبر 06, 2011, 05:43:33 pm »
خیلی عجیبه ! نمی‌دونم شاید سیستم من ایرادی داشته چون دیشب هرکاری می‌کردم تا وقتی زیپرشین رو فراخوانی می‌کنم فلوچارت رو هم بکشم می‌گفت که در لود کردن .xdvipdfmx مشکل داره و نوشته‌های فارسی رو نمی‌شناخت اما چند ساعت پیش که دوباره این کارو کردم همون طور که گفتیم بی هیچ اروری این کار رو انجام داد

آفلاین negin1990

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 42
  • -دریافت شده: 7
  • ارسال: 47
    • ديدن مشخصات
پاسخ : کشیدن فلوچارت با استفاده از محیط PSMATRIX
« پاسخ #3 : دسامبر 06, 2011, 05:46:30 pm »
اما هنوز این مشکل که در فایل HW42 هست برطرف نشده و اون هم این هستش که با اینکه متوازی‌الاضلاع تعریف شده و هیچ اروری هم نمی‌ده هنوز متوازیالاضلاع رو به صورت مستطیل نشون می‌ده و وقتی شما هم پی دی افش رو گرفتین همین مشکل بوده !

آفلاین هادی صفی‌اقدم

  • ویرایشگر
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 789
  • -دریافت شده: 1353
  • ارسال: 5,644
    • ديدن مشخصات
پاسخ : کشیدن فلوچارت با استفاده از محیط PSMATRIX
« پاسخ #4 : دسامبر 06, 2011, 09:58:36 pm »
در فایل دوم متوازی‌الاضلاع تعریف نشده است.
با یک نگاه ساده می‌تونستید ببینید که چه جوری تعریف شده و در دومی هم بیاریدش.

آفلاین negin1990

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 42
  • -دریافت شده: 7
  • ارسال: 47
    • ديدن مشخصات
پاسخ : کشیدن فلوچارت با استفاده از محیط PSMATRIX
« پاسخ #5 : دسامبر 07, 2011, 12:03:48 am »
در فایل دوم متوازی‌الاضلاع تعریف نشده است.
با یک نگاه ساده می‌تونستید ببینید که چه جوری تعریف شده و در دومی هم بیاریدش.
در فایل دوم تعریف شده است . این‌ها دو تعریف هستند جداگانه که اولی کار می‌کند و دومی نه .
توی اینجا به من این دو جواب رو دادن
http://tex.stackexchange.com/questions/37152/drawing-parallelogram-in-a-flowchart-with-the-psmatrix-enviroment/37165#37165
, و فکر نمی‌کنم جوابش غلط باشه اما دوس دارم بدونم که واقعا این طبق گفته‌ی هربرت ووس یه باگ هست یا نه .

آفلاین حسن ذاکری

  • Administrator
  • Hero Member
  • *****
  • تشکر
  • -اهدا شده: 30
  • -دریافت شده: 379
  • ارسال: 667
    • ديدن مشخصات
پاسخ : کشیدن فلوچارت با استفاده از محیط PSMATRIX
« پاسخ #6 : دسامبر 07, 2011, 01:41:26 am »
در فایل دوم تعریف شده است . این‌ها دو تعریف هستند جداگانه که اولی کار می‌کند و دومی نه .
توی اینجا به من این دو جواب رو دادن
http://tex.stackexchange.com/questions/37152/drawing-parallelogram-in-a-flowchart-with-the-psmatrix-enviroment/37165#37165
, و فکر نمی‌کنم جوابش غلط باشه اما دوس دارم بدونم که واقعا این طبق گفته‌ی هربرت ووس یه باگ هست یا نه .

سلام.
بله باگ هست، ولی نه باگ pstricks. با اجرای چندتا مثال ساده pstricks می‌تونید متوجه شید که دستوراتی که شما لازم دارید درست کار می‌کنند. مثلاً این کد
\psTilt{-60}{%
2 \begin{pspicture}(2,2)
3 \psaxes{<->}(2,2)
4 \end{pspicture}}
دقیقاً مشابه مثال شماست و کاملاً صحیح کار می‌کند. در این مورد Pstricks‌ هیچ باگی ندارد.
اما اون چیزی که برای شما مشکل ایجاد کرده، driver dependant بودن بعضی دستورات pstricks است. در حقیقت باگی که مشاهده کردید یک باگ xelatex‌ است (یا بهتره بگم عدم سازگاری بین این دو).
برای اینکه مطمئن شید همه چیز سرجاشه و درست کار می‌کنه، سه دستور زیر رو روی فایا HW42‌ که تو پست اول گذاشتین اجرا کنید
latex hw42
dvips hw42
ps2pdf hw42.ps
خروجی pdf رو ملاحظه کنید (ضمیمه کردم). البته حرفهای آقای ووث رو هم بایست مدنظر داشته باشید. ایشون در pstricks صاحبنظر هستند و جزو توسعه دهندگان بسته.
« آخرين ويرايش: دسامبر 07, 2011, 01:43:25 am توسط حسن ذاکری »
لطفاً صفحه قوانین تالار را مطالعه فرمایید، بخصوص اگر اولین ارسال‌هایتان را انجام می‌دهید.
به سوالی که مطابق با قوانین پرسیده نشود، جوابی داده نخواهد شد.

در صورتی که به تازگی عضو تالار شده‌اید، در صفحه معرفی اعضای جدید برای شما ایجاد شده است.

آفلاین negin1990

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 42
  • -دریافت شده: 7
  • ارسال: 47
    • ديدن مشخصات
پاسخ : کشیدن فلوچارت با استفاده از محیط PSMATRIX
« پاسخ #7 : دسامبر 09, 2011, 01:20:24 pm »
مشکل دقیقا اینجا پیدال میشه که وقتی من از پکیج زیپرشین استفاده می‌کنم و می‌خوام بیرون فلوچارت شکل بکشم با ارور مواجه می‌شم و الان هم دوباره همین ارور هست ! مشکل از کجاست که ای ارور رو می‌ده یعنی داخل فلوچارت میشه فارسی نوشت اما خارجش نه !

آفلاین هادی صفی‌اقدم

  • ویرایشگر
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 789
  • -دریافت شده: 1353
  • ارسال: 5,644
    • ديدن مشخصات
پاسخ : کشیدن فلوچارت با استفاده از محیط PSMATRIX
« پاسخ #8 : دسامبر 09, 2011, 01:26:31 pm »
مشکل دقیقا اینجا پیدال میشه که وقتی من از پکیج زیپرشین استفاده می‌کنم و می‌خوام بیرون فلوچارت شکل بکشم با ارور مواجه می‌شم و الان هم دوباره همین ارور هست ! مشکل از کجاست که ای ارور رو می‌ده یعنی داخل فلوچارت میشه فارسی نوشت اما خارجش نه !
فایل نمونه حاوی مشکل!

آفلاین negin1990

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 42
  • -دریافت شده: 7
  • ارسال: 47
    • ديدن مشخصات
پاسخ : کشیدن فلوچارت با استفاده از محیط PSMATRIX
« پاسخ #9 : دسامبر 09, 2011, 01:49:07 pm »
 . این ارور‌ها رو توی فایل‌هایی که من گذاشتم می‌ده اما تو فایل‌هایی که شما دوباره گذاشتین نمی‌ده . وقتی بررسیشون کردم دیدم تفاوت فایل‌های من با فایل‌های شما این هست که شما از
\begin{latin}
\end{latin}
استفاده کردید . این باعث چه تغییری میشه که تمام این ارور ها رو از بین می‌بره ؟‌
اروری که میگیرم این هست :
xdvipdfmx.exe has stopped working

آفلاین هادی صفی‌اقدم

  • ویرایشگر
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 789
  • -دریافت شده: 1353
  • ارسال: 5,644
    • ديدن مشخصات
پاسخ : کشیدن فلوچارت با استفاده از محیط PSMATRIX
« پاسخ #10 : دسامبر 09, 2011, 01:58:44 pm »
وقتی فایل‌های من خطا نمیده خب از همون‌ها استفاده کنید.

 

راهنمای استفاده از کتابنامه ‎(مراجع)‎ در زی‌پرشین با محیط thebibliography

نویسنده هادی صفی‌اقدمانجمن مراجع و بیب‌تک BibTeX

پاسخ ها: 2
مشاهده: 8725
آخرين ارسال نوامبر 17, 2013, 05:53:10 pm
توسط محمود امین‌طوسی
تغییر کردن حاشیه‌ها هنگام استفاده از محیط thebibliography

نویسنده وحید دامن‌افشانانجمن باگ‌های نسخه ۱.۰.۴

پاسخ ها: 36
مشاهده: 17635
آخرين ارسال آوریل 09, 2010, 07:25:58 am
توسط vafa
مشکل در استفاده از بسته backref در محیط thebibliography

نویسنده hasannooriانجمن مراجع و بیب‌تک BibTeX

پاسخ ها: 9
مشاهده: 7332
آخرين ارسال فوریه 25, 2011, 12:22:57 pm
توسط h_nuri77
مشکل با استفاده از ‎array‎ در محیط ‎tabular‎ هنگام فراخوانی زی‌پرشین

نویسنده وحید دامن‌افشانانجمن زی‌تک

پاسخ ها: 1
مشاهده: 3991
آخرين ارسال آوریل 10, 2011, 06:04:26 pm
توسط vafa
بروز مشکل هنگامی که از محیط keywords استفاده می شود.

نویسنده فرشاد ترابیانجمن حروف‌چینی مستندات

پاسخ ها: 0
مشاهده: 2213
آخرين ارسال دسامبر 22, 2011, 12:07:03 pm
توسط فرشاد ترابی
مشکل در کشیدن arrows وقتی از xepersian استفاده می شود

نویسنده negin1990انجمن ریاضیات و علوم

پاسخ ها: 1
مشاهده: 2571
آخرين ارسال ژوئیه 04, 2011, 03:23:45 pm
توسط vafa
کشیدن جدول و فلوچارت

نویسنده زینبانجمن انجمن تازه‌کاران

پاسخ ها: 1
مشاهده: 6630
آخرين ارسال ژوئیه 28, 2011, 10:19:33 am
توسط ابوالفضل دیانت
استفاده caption در محیط tabularx

نویسنده masihانجمن حروف‌چینی مستندات

پاسخ ها: 3
مشاهده: 2388
آخرين ارسال سپتامبر 02, 2011, 01:08:10 pm
توسط vafa