پارسی‌لاتک

لاتک LATEX => حروف‌چینی مستندات => نويسنده: فکورپور در می 13, 2013, 01:38:03 بعد از ظهر

عنوان: چطور بنویسم ۱۰kg/m3 به طوری که ۱۰ فارسی و ۳ لاتین باشد؟
رسال شده توسط: فکورپور در می 13, 2013, 01:38:03 بعد از ظهر
این مشکل برای مقادیری که واحد (دیمانسیون) دارند، یا برای فرمولهای شیمیایی بارز است. راه درست آن چیست؟
عنوان: پاسخ : چطور بنویسم ۱۰kg/m3 به طوری که ۱۰ فارسی و ۳ لاتین باشد؟
رسال شده توسط: وحید دامن‌افشان در می 13, 2013, 04:39:19 بعد از ظهر
یک راه می‌تونه به صورت
\documentclass{article}
\usepackage{amsmath}
\usepackage{xepersian}
\begin{document}
$10\dfrac{kg}{m^\text{\lr{3}}}$
\end{document}

باشه. اگر هم تعداد موارد این‌چنینی، زیاد هستش، برای صرفه‌جویی در وقت، می‌تونین یه دستور براش تعریف کنین:
\documentclass{article}
\usepackage{amsmath}
\usepackage{xepersian}
\newcommand{\lnum}[1]{\text{\lr{#1}}}
\begin{document}
$10\dfrac{kg}{m^\lnum{3}}$
\end{document}
عنوان: پاسخ : چطور بنویسم ۱۰kg/m3 به طوری که ۱۰ فارسی و ۳ لاتین باشد؟
رسال شده توسط: vafa در می 13, 2013, 05:41:08 بعد از ظهر

\documentclass{article}
\usepackage{amsmath}
\usepackage{xepersian}
\newcommand*{\switchdigitsinsidemathmode}{%
\DeclareMathSymbol{0}{\mathalpha}{operators}{`0}%
\DeclareMathSymbol{1}{\mathalpha}{operators}{`1}%
\DeclareMathSymbol{2}{\mathalpha}{operators}{`2}%
\DeclareMathSymbol{3}{\mathalpha}{operators}{`3}%
\DeclareMathSymbol{4}{\mathalpha}{operators}{`4}%
\DeclareMathSymbol{5}{\mathalpha}{operators}{`5}%
\DeclareMathSymbol{6}{\mathalpha}{operators}{`6}%
\DeclareMathSymbol{7}{\mathalpha}{operators}{`7}%
\DeclareMathSymbol{8}{\mathalpha}{operators}{`8}%
\DeclareMathSymbol{9}{\mathalpha}{operators}{`9}%
}
\begin{document}
$10\dfrac{kg}{m^{\switchdigitsinsidemathmode 3}}$
\end{document}
عنوان: پاسخ : چطور بنویسم ۱۰kg/m3 به طوری که ۱۰ فارسی و ۳ لاتین باشد؟
رسال شده توسط: فرشاد ترابی در می 13, 2013, 07:22:32 بعد از ظهر
من فکر می‌کردم به صورتی که در کد زیر آوردم می‌شد مشکل را حل کرد ولی جواب نداد. چرا؟

\documentclass[a4paper,12pt]{article}

\usepackage{xepersian}
\settextfont{XB Niloofar}

\newcommand{\dd}[1]{\DefaultMathsDigits {#1} \AutoMathsDigits}

\begin{document}
$
x=10\dd{m^2}
$
\end{document}
عنوان: پاسخ : چطور بنویسم ۱۰kg/m3 به طوری که ۱۰ فارسی و ۳ لاتین باشد؟
رسال شده توسط: vafa در می 14, 2013, 04:35:35 قبل از ظهر
نقل قول از: فرشاد ترابی در می 13, 2013, 07:22:32 بعد از ظهر
من فکر می‌کردم به صورتی که در کد زیر آوردم می‌شد مشکل را حل کرد ولی جواب نداد. چرا؟

\documentclass[a4paper,12pt]{article}

\usepackage{xepersian}
\settextfont{XB Niloofar}

\newcommand{\dd}[1]{\DefaultMathsDigits {#1} \AutoMathsDigits}

\begin{document}
$
x=10\dd{m^2}
$
\end{document}

دستورات \DefaultMathsDigits و \AutoMathsDigits تنها در صورتی کار خواهند کرد که قبل از محیط ریاضی استفاده شوند. بنابراین با استفاده از این دستورات نمی‌توان اعداد را وسط محیط ریاضی تغییر داد.

در تعریف دستور \dd شما من دلیل بودن {} را دور #1 نمی‌دونم.
عنوان: پاسخ : چطور بنویسم ۱۰kg/m3 به طوری که ۱۰ فارسی و ۳ لاتین باشد؟
رسال شده توسط: فرشاد ترابی در می 14, 2013, 07:29:52 قبل از ظهر
نقل قول از: وفا کارن‌پهلو در می 14, 2013, 04:35:35 قبل از ظهر
در تعریف دستور \dd شما من دلیل بودن {} را دور #1 نمی‌دونم.
دلیلش اینه که اصولاً واحدها باید به صورت غیرایتالیک باشه و در اصل در دستور بالا باید \mathrm{#1} باشه. اما از آنجا
که من هنوز نتونستم تک‌لایو ۲۰۱۳ را دریافت و نصب کنم، دستور mathrm برای من پیغام خطا میده. به همین دلیل فعلا
موقتا mathrm را حذف کردم تا بعد از نصب تک‌لایو ۲۰۱۳ دوباره دستور mathrm را در جای خود قرار بدم.
عنوان: پاسخ : چطور بنویسم ۱۰kg/m3 به طوری که ۱۰ فارسی و ۳ لاتین باشد؟
رسال شده توسط: vafa در می 14, 2013, 07:53:47 قبل از ظهر
نقل قول از: فرشاد ترابی در می 14, 2013, 07:29:52 قبل از ظهر
دلیلش اینه که اصولاً واحدها باید به صورت غیرایتالیک باشه و در اصل در دستور بالا باید \mathrm{#1} باشه. اما از آنجا
که من هنوز نتونستم تک‌لایو ۲۰۱۳ را دریافت و نصب کنم، دستور mathrm برای من پیغام خطا میده. به همین دلیل فعلا
موقتا mathrm را حذف کردم تا بعد از نصب تک‌لایو ۲۰۱۳ دوباره دستور mathrm را در جای خود قرار بدم.
متوجه شدم. برای درست شدن این مشکل حتماً الزامی به داشتن تک‌لایو 2013 ندارید. اگر تک‌لایو 2012 خود را هم بروز کنید، مشکلی نخواهید داشت.
عنوان: پاسخ : چطور بنویسم ۱۰kg/m3 به طوری که ۱۰ فارسی و ۳ لاتین باشد؟
رسال شده توسط: vafa در می 14, 2013, 08:27:15 قبل از ظهر
یک راه‌حل دیگر:

\documentclass{article}
\usepackage{amsmath}
\usepackage{xepersian}
\newcommand\swtichtolatin{%
\edef\tmp{0\the\symoperators}%
\mathcode`\0=\expandafter"\tmp30\relax%
\mathcode`\1=\expandafter"\tmp31\relax%
\mathcode`\2=\expandafter"\tmp32\relax%
\mathcode`\3=\expandafter"\tmp33\relax%
\mathcode`\4=\expandafter"\tmp34\relax%
\mathcode`\5=\expandafter"\tmp35\relax%
\mathcode`\6=\expandafter"\tmp36\relax%
\mathcode`\7=\expandafter"\tmp37\relax%
\mathcode`\8=\expandafter"\tmp38\relax%
\mathcode`\9=\expandafter"\tmp39\relax}
\newcommand\mathlatin[1]{{\swtichtolatin\relax#1}}
\begin{document}
$10\dfrac{kg}{m^\mathlatin{3}}$
\end{document}
عنوان: پاسخ : چطور بنویسم ۱۰kg/m3 به طوری که ۱۰ فارسی و ۳ لاتین باشد؟
رسال شده توسط: محسن شریفی تبار در می 14, 2013, 09:50:08 قبل از ظهر
اگر وفا موافق باشد، به نظر بد نیست چنین امکانی شبیه دستور resetlatinfont که برای متن کار می‌کند، برای محیط ریاضی هم به زیپرشین اضافه شود. به کمک یکی از همین کدها که مطمئن تر از بقیه باشد.
عنوان: پاسخ : چطور بنویسم ۱۰kg/m3 به طوری که ۱۰ فارسی و ۳ لاتین باشد؟
رسال شده توسط: حسن قربانزاد در می 14, 2013, 07:08:28 بعد از ظهر
با اجازه از اساتید
با کد
  \def\1{\textrm{\lr{1}}}‎
هم می توان در محیط ریاضی اعداد لاتین نوشت.
$a = \1$