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

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

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

اشکال در استفاده از محیط شمارشی در محیط minipage

0 رای
1,210 بازدید

هنگام استفاده از محیط شمارشی در tikzpicture خروجی در تکلایو ۲۰۱۴ دچار اشکال است، فایل مثال کوچکی ساخته‌ام و با دو تکلایو که بر روی سیستم دارم یعنی ۲۰۱۱ و ۲۰۱۴ کامپایل کرده‌ام و خروجی را بصورت فایل فشرده ضمیمه کرده‌ام.
این مشکل با محیط معمولی (محیط پارسی) در تکلایو ۲۰۱۱ وجود ندارد.

کد زیر شکل خلاصه‌تری از فایل مثال است:

\documentclass[11pt,oneside]{letter}
\usepackage{tikz}
\usepackage{xepersian}
\settextfont{Yas}

\tikzstyle{textBoxStyle} = [fill=gray!20]

\newcommand{\textBox}[1]{%
\begin{tikzpicture}\node [textBoxStyle] (box) {%
\setRTL%
\begin{minipage}{\textwidth}%
#1%
\end{minipage}};%
\end{tikzpicture}%
}

\begin{document}
\textBox{%
فقط متن بدون استفاده از محیط شمارشی.

و به درستی کار می‌کند.
}
\textBox{%
\begin{enumerate}
\item محیط شمارشی در داخل یک \lr{tikzpicture} استفاده شده است.
\item دارای مشکل است. تفاوت پهنای این کادر و کادر بالایی را ببینید.
\item در \lr{texlive2011} به درستی کار می‌کند.
\item مشکل در \lr{texlive2014} وجود دارد، دیگر نسخه‌ها را بررسی نکرده‌ام.
\end{enumerate}
}
\end{document}
فایل‌های پیوست
سوال شده آذر 5, 1393 توسط سید رضی علوی‌زاده (114 امتیاز)
ویرایش شده مرداد 2, 1394 توسط وحید دامن‌افشان
خوش اومدی رضی جان! جات خالی بود.
راستی برای نوشتن کد فقط کافیه کد رو انتخاب کنی و روی دکمه Code sample ویرایشگر سایت کلیک کنی یا دکمه‌های Ctrl+K رو بزنی.
سلام
ممنون وحید جان
والا قبل از پرسیدن سوال راهنمای سایت رو مطالعه کردم و این مواردی که گفتی خوندم اما اشکالش این بود که وقتی  دکمه code sample رو زدم موقع کپی کردن کدها فقط خط اول رو میگرفت در نتیجه دستور HTML مربوطه رو خودم وارد کردم، که البته نتیجه در پیش‌نمایش درست بود اما در اینجا اونطور نبود که البته بعد از اضافه شدن نظرت گویا نحوه نمایش کدهای من هم درست شده :o (آهان حالا دیدم ویرایشش کردید :D) پس انگار من درست یاد نگرفتم :|
پ.ن.: آهان یه  مشکل دیگه هم داشتم و اون اینکه بین خطوط فاصله میفتاد که مجبور شدم تمام کارکترهای خط جدید رو با معادل HTMLش جایگزین کنم.

1 پاسخ

+2 رای
 
بهترین پاسخ

این مشکل ارتباطی با tikz یا محیط tikzpicture ندارد بلکه به استفاده از محیط minipage مربوط است. در تک‌لایو ۲۰۱۱ بسته bidi بصورت اشتباه محیط minipage را تغییر می‌داد که شما خروجی درست می‌گرفتید اما در واقع مشکلات بسیاری تولید می‌کرد که بعداً درست شد اما یادم نیست که کی این کار را انجام دادم. اما چرا این مشکل روی می‌دهد؟ هنگامی که محیط minipage را شروع می‌کنی، وارد محیط عمودی می‌شوی (vmode) و اگر متنی قبل از محیط enumerate وجود نداشته باشد، تورفتگی محیط enumerate حذف می‌شود در واقع پهنای \vboxی که محتوای محیط minipage در آن واقع است، کم می‌شود. برای گرفتن خروجی مناسب در این حالت (هنگامی که داخل محیط minipage قبل از محیط enumerate هیچ متنی قرار ندارد) باید از حالت عمودی خارج شوی یعنی باید یک \leavevmode در ابتدای محیط minipage قرار دهی. بنابراین نمونه شما باید بصورت تغییر کند:

\documentclass[11pt,oneside]{letter}
\usepackage{tikz}
\usepackage{xepersian}
\settextfont{Yas}

\tikzstyle{textBoxStyle} = [fill=gray!20]

\newcommand{\textBox}[1]{%
\begin{tikzpicture}\node [textBoxStyle] (box) {%
\setRTL%
\begin{minipage}{\textwidth}\leavevmode%
#1%
\end{minipage}};%
\end{tikzpicture}%
}

\begin{document}
\textBox{%
فقط متن بدون استفاده از محیط شمارشی.

و به درستی کار می‌کند.
}
\textBox{%
\begin{enumerate}
\item محیط شمارشی در داخل یک \lr{tikzpicture} استفاده شده است.
\item دارای مشکل است. تفاوت پهنای این کادر و کادر بالایی را ببینید.
\item در \lr{texlive2011} به درستی کار می‌کند.
\item مشکل در \lr{texlive2014} وجود دارد، دیگر نسخه‌ها را بررسی نکرده‌ام.
\end{enumerate}
}
\end{document}

و خروجی بصورت زیر خواهد بود که من مشکلی در آن نمی‌بینم:

enter image description here

در مورد نمونه لاتین شما، شما خودتون اشتباه دارید از دستورات استفاده می‌کنید. شما محیط latin رو بعد از محیط enumerate استفاده کردید. چون قبلاً جهت متن راست به چپ بوده، وقتی محیط enumerate رو ایجاد می‌کنید تک تورفتگی رو از سمت راست به چپ ایجاد کرده و اینکه شما بیایید و بعد از محیط enumerate محیط latin رو قرار بدهید، فقط دارید جهت متن رو چپ به راست می‌کنید اما کارتون تورفتگی رو متأثر نمی‌کنه. برای خروجی مناسب باید قبل از محیط enumerate از محیط latin استفاده کنید چون محیط enumerate یا بهتر بگم محیط list باید بدونه جهت متن چیه که براساس اون تورفتگی مناسب رو ایجاد کنه (تورفتگی از سمت راست یا تورفتگی از سمت چپ). بنابراین اینطوری باید باشه:

\textBox{%
\begin{latin}
\begin{enumerate}
\item The issue is also present on ``latin" environment, but my workaround is not useful here.
\item Indeed this one is also present by using ``texlive2011``.
\item texlive2011: The width of the text box is correct, just numbers are out.
\item texlive2014: The width of the text box is incorrect and numbers are out.
\end{enumerate}
\end{latin}
}

خروجی زیر رو تولید می‌کنه که مشکلی نداره:

enter image description here

پاسخ داده شده آذر 5, 1393 توسط وفا (24,609 امتیاز)
انتخاب شده آذر 5, 1393 توسط سید رضی علوی‌زاده
ممنون وفا بخاطر جواب کاملت، فقط یه کنجکاوی برام پیش اومد و اون اینکه:
چرا نباید همیشه ‎\leavevmode رو به ابتدای minipage اضافه کنیم؟ به عبارت دیگه آیا حالتی هست که با بکار بردن ‎\leavevmode اشکالی در حروف‌چینی پیش بیاد؟
تنها حالتی که می‌تونم بهش فکر کنم اینه که بعضی از دستورات بدوی تک، فقط در حالت عمودی کار می‌کنند و اگر داخل یک \vbox دستور \leavevmode رو قرار بدهی که بعدش یک دستور بدوی عمودی به کار رفته، چون با وجود \leavevmode تک از حالت عمودی وارد حالت افقی میشه و چون اون دستور بدوی فقط در حالت عمودی قابل استفاده هست، خطایی می‌گیری که بهت میگه فلان دستور بدوی فقط در حالت عمودی قابل استفاده شدن هست.
...