به دلیل قطعی اینترنت و نبود دسترسی به ایمیل‌های خارجی، می‌توانید بدون نیاز به تایید ایمیل، ثبت‌نام کنید و پرسش‌های خود را بپرسید.

اولین بار است که به اینجا می‌آیید؟ راهنمای سایت را بخوانید!
0 رای
2.1k بازدید

هنگام استفاده از محیط شمارشی در 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}
فایل(های) پیوست:
خوش اومدی رضی جان! جات خالی بود.
راستی برای نوشتن کد فقط کافیه کد رو انتخاب کنی و روی دکمه Code sample ویرایشگر سایت کلیک کنی یا دکمه‌های Ctrl+K رو بزنی.
توسط (6.9k امتیاز)
سلام
ممنون وحید جان
والا قبل از پرسیدن سوال راهنمای سایت رو مطالعه کردم و این مواردی که گفتی خوندم اما اشکالش این بود که وقتی  دکمه code sample رو زدم موقع کپی کردن کدها فقط خط اول رو میگرفت در نتیجه دستور HTML مربوطه رو خودم وارد کردم، که البته نتیجه در پیش‌نمایش درست بود اما در اینجا اونطور نبود که البته بعد از اضافه شدن نظرت گویا نحوه نمایش کدهای من هم درست شده :o (آهان حالا دیدم ویرایشش کردید :D) پس انگار من درست یاد نگرفتم :|
پ.ن.: آهان یه  مشکل دیگه هم داشتم و اون اینکه بین خطوط فاصله میفتاد که مجبور شدم تمام کارکترهای خط جدید رو با معادل HTMLش جایگزین کنم.
توسط (114 امتیاز)

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

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

7.2k پرسش

6.6k پاسخ

23.7k نظر

11.7k کاربر

basket cart icon

محصولات مرتبط با LaTeX

در فروشگاه پارسی‌لاتک


basket cart icon

حمایت مالی از پارسی‌لاتک

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

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

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