• Welcome to پارسی‌لاتک.
 
از تاریخ ۱۳۹۳/۸/۱۴ به دلیل ارائه خدمات بهتر به سایت جدید پرسش و پاسخ مهاجرت کرده‌ایم؛ از این رو امکان عضویت و ارسال پست در تالار غیرفعال شده است. لطفاً برای پرسیدن سوال‌های خود به سایت جدید مراجعه کنید.

ورود به سایت جدید

چطور بنویسم ۱۰kg/m3 به طوری که ۱۰ فارسی و ۳ لاتین باشد؟

نویسنده فکورپور, می 13, 2013, 01:38:03 بعد از ظهر

« قبلی - بعدی »

فکورپور

این مشکل برای مقادیری که واحد (دیمانسیون) دارند، یا برای فرمولهای شیمیایی بارز است. راه درست آن چیست؟

وحید دامن‌افشان

یک راه می‌تونه به صورت
\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}

vafa


\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}

فرشاد ترابی

من فکر می‌کردم به صورتی که در کد زیر آوردم می‌شد مشکل را حل کرد ولی جواب نداد. چرا؟

\documentclass[a4paper,12pt]{article}

\usepackage{xepersian}
\settextfont{XB Niloofar}

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

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

vafa

نقل قول از: فرشاد ترابی در می 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 نمی‌دونم.

فرشاد ترابی

نقل قول از: وفا کارن‌پهلو در می 14, 2013, 04:35:35 قبل از ظهر
در تعریف دستور \dd شما من دلیل بودن {} را دور #1 نمی‌دونم.
دلیلش اینه که اصولاً واحدها باید به صورت غیرایتالیک باشه و در اصل در دستور بالا باید \mathrm{#1} باشه. اما از آنجا
که من هنوز نتونستم تک‌لایو ۲۰۱۳ را دریافت و نصب کنم، دستور mathrm برای من پیغام خطا میده. به همین دلیل فعلا
موقتا mathrm را حذف کردم تا بعد از نصب تک‌لایو ۲۰۱۳ دوباره دستور mathrm را در جای خود قرار بدم.

vafa

نقل قول از: فرشاد ترابی در می 14, 2013, 07:29:52 قبل از ظهر
دلیلش اینه که اصولاً واحدها باید به صورت غیرایتالیک باشه و در اصل در دستور بالا باید \mathrm{#1} باشه. اما از آنجا
که من هنوز نتونستم تک‌لایو ۲۰۱۳ را دریافت و نصب کنم، دستور mathrm برای من پیغام خطا میده. به همین دلیل فعلا
موقتا mathrm را حذف کردم تا بعد از نصب تک‌لایو ۲۰۱۳ دوباره دستور mathrm را در جای خود قرار بدم.
متوجه شدم. برای درست شدن این مشکل حتماً الزامی به داشتن تک‌لایو 2013 ندارید. اگر تک‌لایو 2012 خود را هم بروز کنید، مشکلی نخواهید داشت.

vafa

یک راه‌حل دیگر:

\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}

محسن شریفی تبار

اگر وفا موافق باشد، به نظر بد نیست چنین امکانی شبیه دستور resetlatinfont که برای متن کار می‌کند، برای محیط ریاضی هم به زیپرشین اضافه شود. به کمک یکی از همین کدها که مطمئن تر از بقیه باشد.

حسن قربانزاد

با اجازه از اساتید
با کد
  \def\1{\textrm{\lr{1}}}‎
هم می توان در محیط ریاضی اعداد لاتین نوشت.
$a = \1$