'\" t .\" Title: rink-defs .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-08-30 .\" Manual: Rink Manual .\" Source: Rink Manual .\" Language: English .\" .TH "RINK\-DEFS" "5" "2026-08-30" "Rink Manual" "Rink Manual" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" rink-defs \- قالب `definition.units` در ابزار Rink .SH "توضیحات (DESCRIPTION)" .sp پایگاه‌داده واحدها یک سند متنی حاوی تعاریف واحدها، پیشوندها، واحدهای پایه، کمیت‌ها و مواد است. .sp توضیحات (کامنت‌ها) با \f(CR#\fP شروع شده و تا پایان خط ادامه می‌یابند. خطوط خالی نادیده گرفته می‌شوند. کامنت‌ها را می‌توان در همان خط واحدها و در انتهای آن قرار داد. .sp .if n .RS 4 .nf .fam C # This line is a comment # And so is this .fam .fi .if n .RE .SS "واحدها (Units)" .sp واحدها با نام و تعریفشان که با فاصله (whitespace) از هم جدا شده‌اند، تعریف می‌شوند. در صورت نیاز می‌توان یک تعریف را با استفاده از \f(CR\(rs\fP در چندین خط شکست. .sp .if n .RS 4 .nf .fam C foot\& 12 inch .fam .fi .if n .RE .sp کامنت‌های مستندسازی خطوطی هستند که با \f(CR??\fP شروع می‌شوند. آن‌ها روی تعریف بعدی که پس از آن‌ها می‌آید اعمال می‌شوند و زمانی که در Rink یک تعریف را استعلام می‌کنید، به کاربران نهایی نمایش داده می‌شوند. .sp .if n .RS 4 .nf .fam C ?? International yard and pound, since July 1, 1959. ?? Documentation comments can be broken over ?? multiple lines. foot\& 12 inch .fam .fi .if n .RE .SS "مواد (Substances)" .sp مواد می‌توانند نمایانگر یک جرم یا جسم مشخص (مانند زمین یا خورشید)، ماده‌ای مانند آب یا بتن، یک مولکول شیمیایی، عنصری از جدول تناوبی، یا یک ذره بنیادی باشند. .sp یک ماده دارای نام، یک نماد اختیاری (مورد استفاده در فرمول‌های شیمیایی)، و حاوی فهرستی از ویژگی‌ها درون یک بلوک {} است. .sp ویژگی‌ها می‌توانند ثابت (\(lqconst\(rq) باشند که عمدتاً برای اشیاء شمارش‌پذیر مانند ذرات استفاده می‌شود، یا می‌توانند یک نسبت باشند، مانند چگالی یک ماده. .sp .if n .RS 4 .nf .fam C neutron { mass\& const neutron_mass\& 1.00866491588 u wavelength\& const neutron_wavelength\& planck_constant / mass c magnetic_moment\& const neutron_moment\& \-0.96623650e\-26 J/T } .fam .fi .if n .RE .sp دو حالت ساختاری برای ویژگی‌ها عبارتند از: .sp .if n .RS 4 .nf .fam C [name] const [output name] [expression] [name] [input name] [input expression] / [output name] [output expression] .fam .fi .if n .RE .sp نام ورودی و نام خروجی ممکن است گیج‌کننده به نظر برسد. ایده این است که ویژگی‌های وابسته به زمینه بتوانند از نسبت‌هایی مانند چگالی محاسبه شوند؛ برای نمونه، \f(CRmass of 1ml water\fP (جرم ۱ میلی‌لیتر آب). برای کارکرد این قابلیت، \f(CRdensity\fP (جرم تقسیم بر حجم) با ۳ نام تعریف می‌شود: \f(CRdensity\fP (خود نسبت)، \f(CRmass\fP (جرم)، و \f(CRvolume\fP (حجم). .sp .if n .RS 4 .nf .fam C density mass 1g / volume cm^3 .fam .fi .if n .RE .sp این تبدیل‌ها در جهت عکس نیز کار می‌کنند: \f(CRvolume of 1g water\fP (حجم ۱ گرم آب). .SS "دسته‌ها (Categories)" .sp واحدهای درون یک دسته، در رابط کاربری هنگام جستجو و سایر عملیات با یکدیگر گروه‌بندی می‌شوند. یک دسته با استفاده از عملگر \f(CR!category\fP آغاز می‌شود که یک شناسه (\f(CRlower_snake_case\fP) و یک نام نمایشی به صورت رشته متنی دریافت می‌کند. .sp .if n .RS 4 .nf .fam C !category us_survey "US survey measures" .fam .fi .if n .RE .SS "واحدهای پایه (Base units)" .sp واحدهای پایه را نمی‌توان بر حسب واحدی دیگر بدون ایجاد یک چرخه تعریف کرد. آن‌ها نمایانگر کمیت‌های فیزیکی بنیادین مانند زمان، طول، دما و غیره هستند. .sp نام یک فرم کوتاه است که هنگام نمایش ابعاد استفاده می‌شود (برای نمونه، بعد \f(CRacceleration\fP برابر است با \f(CRm / s^2\fP)، در حالی که شکل بلند برای اهداف نمایشی به کار می‌رود. .sp واحدهای پایه جدید فقط زمانی باید اضافه شوند که ارزش روشنی برای این کار وجود داشته باشد؛ مانند رادیان و بیت. .sp .if n .RS 4 .nf .fam C ?? Equal to the mass of the international prototype of the ?? kilogram. 3rd CGPM (1901, CR, 70). kg\& !kilogram .fam .fi .if n .RE .SS "کمیت‌ها (Quantities)" .sp کمیت‌ها هر زمان که rink یک واحد را نمایش می‌دهد درون پرانتز نشان داده می‌شوند. آن‌ها برای تحلیل ابعادی بسیار مفید هستند، زیرا به خاطر سپردن اینکه \f(CRkg m^2 / s^2\fP به معنای کمیت فیزیکی انرژی است می‌تواند دشوار باشد. .sp کمیت‌ها مشابه واحدها تعریف می‌شوند، اما تعریف آن‌ها با نویسه ? شروع می‌شود. کمیت‌ها در فضانامی جداگانه از واحدها قرار دارند، بنابراین تنها نام‌های معتبری که می‌توان استفاده کرد واحدهای پایه و سایر کمیت‌ها هستند. .sp برخلاف واحدها، کمیت‌ها فاقد مقدار عددی هستند (حتی مقداری مانند ۱ مانند واحدهای مشتق SI ندارند). .sp .if n .RS 4 .nf .fam C length\& ? meter area\& ? length^2 .fam .fi .if n .RE .SS "پیشوندها (Prefixes)" .sp پیشوندها امکان ورود واحدهایی مانند \f(CRgigabytes\fP، \f(CRmegameters\fP، \f(CRkiloseconds\fP را بدون نیاز به تعریف صریح تک‌تک آن‌ها در پایگاه‌داده واحدها فراهم می‌کنند. پیشوندها همیشه بدون بعد هستند. .sp این موارد نباید به صورت مکرر اضافه شوند، بلکه فقط زمانی که مربوط به یک سامانه شمارش خاص باشند؛ مانند پیشوندهای بایت در مبنای دو (MiB، GiB و غیره) و پیشوندهای دوازده‌تایی (Dozenal). .sp پیشوندها به دو دسته پیشوندهای \(lqبلند\(rq و پیشوندهای \(lqکوتاه\(rq تقسیم می‌شوند. پیشوندهای کوتاه معمولاً باید تنها ۱ حرف باشند و به طور معمول نام مستعار پیشوند بلند متناظر خود هستند. .sp پیشوندها مشابه سایر واحدها تعریف می‌شوند، اما نام آن‌ها با پسوند \f(CR\-\fP (پیشوندهای بلند) یا \f(CR\-\-\fP (پیشوندهای کوتاه) خاتمه می‌یابد. .sp پیشوندها از فضانام اختصاصی خود استفاده می‌کنند. تعاریف آن‌ها فقط می‌تواند به پیشوندهای دیگر ارجاع دهد و نه به واحدها. .sp .if n .RS 4 .nf .fam C kilo\-\& 1e3 k\-\-\& kilo .fam .fi .if n .RE .SS "متفرقه (Miscellaneous)" .sp یک عملگر خاص به نام \f(CR!dependency\fP وجود دارد که در \f(CRcurrency.units\fP برای اعلام وابستگی به داده‌های زنده نرخ ارز استفاده می‌شود. این عملگر را می‌توان هنگام افزودن ارز جدید یا منبع داده با به‌روزرسانی زنده به کار برد. .SH "دستورالعمل‌ها (GUIDELINES)" .sp این رهنمودها عمدتاً هنگام مشارکت در فایل بالادستی \f(CRdefinitions.units\fP اعمال می‌شوند. .sp پایگاه‌داده واحدها برای خوانایی بهتر باید طوری تنظیم شود که درون ۸۰ ستون جا بگیرد. به‌طور مشابه، تعاریف واحدها معمولاً باید به صورت عمودی با استفاده از فاصله‌ها تراز شوند. .sp تعاریف معمولاً به میزان ۲۰ ستون، و گاهی ۲۵ ستون تورفتگی دارند. نکته مهم تراز بودن واحدهای مجاور است. فایل تعاریف برای تورفتگی از فاصله استفاده می‌کند، بنابراین به جای ترکیب آنها، یکدستی را حفظ کنید. .sp واحدهایی که معنا و مبدا آنها از تعریفشان آشکار نیست باید کامنت مستندسازی داشته باشند. این کامنت می‌تواند معنای واحد، حاشیه خطا (در صورت وجود)، و همچنین منبعی برای مقدار آن را توضیح دهد. .sp اگر روش‌های متعددی برای تفسیر نحوه تعریف یک واحد وجود دارد، ذکر کنید که کدام تفسیر استفاده شده است، مگر اینکه از نام آن استنباط شود (مانند \f(CRsiderealyear\fP). نمونه‌هایی که واحدها تعابیر متعددی دارند عبارتند از: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} واحدهای سنتی و عرفی ممکن است بر پایه کشور متفاوت باشند و حتی بسته به سال در آن کشور تغییر کنند؛ مانند تعاریف آمریکایی، بریتانیایی، استرالیایی و بین‌المللی برای فوت (foot). .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} واحدهایی که ذاتاً مبهم هستند یا منابع متعددی را نشان می‌دهند؛ شامل روزها (تقویمی، نجومی)، سال‌ها (تقویمی، نجومی، مداری) و موارد دیگر. .RE .sp کامنت‌های مستندسازی باید به انگلیسی آمریکایی نوشته شوند. آن‌ها باید دارای حروف بزرگ در ابتدای جمله و نقطه پایانی باشند. از جملات بیش از حد طولانی خودداری کنید. .sp پیوندهای خارجی باید بخش پروتکل (\f(CRhttps://\fP، \f(CRhttp://\fP) را شامل شوند و درون علامت‌های قلاب احاطه گردند، مانند \f(CR\c .URL "https://example.com" "" "\fP." .sp تاریخ‌ها باید به قالب کامل مانند \f(CRJuly 5th, 1982\fP نوشته شوند. از قالب‌های مبهم مانند 2/3/99 استفاده نکنید؛ ذکر سال به‌تنهایی اغلب کافی است. .sp کامنت‌های درون فایل تعاریف به منظور بهره‌مندی سایر نگه‌دارندگان نوشته می‌شوند. آن‌ها می‌توانند شامل توضیحاتی درباره چرایی تعریف یک واحد به شیوه‌ای خاص باشند یا مشخص کنند که واحدهایی معین بخشی از یک گروه یا مجموعه هستند. .sp تمامی واحدها باید درون یک بلوک \f(CR!category\fP / \f(CR!endcategory\fP قرار گیرند. بلوک‌های دسته‌بندی باید کامنت‌های مربوط به آن دسته را نیز در بر گیرند، و عملگر \f(CR!category\fP باید بلافاصله پس از \f(CR!endcategory\fP دسته پیشین بیاید. این امر برای مرور آسان فایل با استفاده از تاخوردگی‌های Vim (Vim folds) است. نام نمایشی دسته باید در قالب حروف بزرگ جمله (sentence case) بوده و با ستون ۷۰‌ام تراز شود. .SS "نام‌گذاری (Naming)" .sp نام‌های انگلیسی باید با حروف کوچک و بدون جداکننده باشند. در صورتی که به وضوح کمک کند، کلمات را می‌توان با زیرخط (underscore) جدا کرد؛ نمونه‌ها شامل \f(CRfoot\fP، \f(CRolympiccubit\fP، \f(CRusgallon\fP. .sp در صورت موجود بودن فرم کوتاه، باید به عنوان نام مستعار برای نام طولانی‌تر اضافه شود؛ مانند \f(CRft\fP برای \f(CRfoot\fP، \f(CRB\fP برای \f(CRbyte\fP، و \f(CRΩ\fP برای \f(CRohm\fP. .sp .if n .RS 4 .nf .fam C ft\& foot .fam .fi .if n .RE .sp برخی واحدها معمولاً با خط غیرلاتین نوشته می‌شوند. از نام غیرلاتین به عنوان نام استاندارد (canonical) استفاده کنید و نام مبتنی بر ASCII را به عنوان مستعار اضافه نمایید؛ نمونه‌ها شامل \f(CRзолотник\fP، \f(CR分地\fP. .sp برخی واحدها به طور معمول با یک نماد نوشته می‌شوند. با این موارد مشابه نام‌های با خط غیرلاتین رفتار کنید؛ مانند \f(CRπ\fP (پی)، \f(CRτ\fP (تاو). .sp نمادهای قدیمی یونیکد تنها باید به عنوان مستعار برای نام‌های استانداردتر استفاده شوند؛ از جمله نمادهای کم‌کاربرد مانند \f(CR㎒\fP (نماد یونیکد مگاهرتز). .sp اگر چندین نام برای یک واحد وجود دارد، نامی که متداول‌تر است باید \(lqنام استاندارد\(rq باشد. نسخه استاندارد باید تعریف کامل را داشته باشد و سایر نام‌ها به عنوان مستعارهایی به نسخه استاندارد ارجاع دهند؛ از تکرار تعریف بپرهیزید. .SS "تعاریف (Definitions)" .sp واحدها در صورت امکان باید بر حسب سایر واحدهای مرتبط تعریف شوند. عبارتی که برای تعریف واحد استفاده می‌کنید به کاربر نهایی نمایش داده خواهد شد. برای نمونه، فوت به عنوان \f(CR12 inch\fP تعریف می‌شود نه \f(CR304.8 mm\fP، زیرا پیشاپیش مدخل جداگانه‌ای برای \f(CRinch\fP وجود دارد که به عنوان \f(CR2.54 mm\fP تعریف شده است. هنگام نمایش تعریف یک واحد، Rink هم تعریف اصلی و هم مقدار مطلق را نشان می‌دهد؛ بنابراین برای \f(CRfoot\fP نشان می‌دهد که به صورت \f(CR12 inch\fP تعریف شده که برابر با \f(CR304.8 millimeter\fP است. .sp ابزار Rink می‌تواند اعداد گویای با دقت دلخواه را نشان دهد و تنها محدودیت، حافظه در دسترس است. در نتیجه، اعداد گنگ مانند عدد پی یا ثابت اویلر باید حداقل تا ۲۰ رقم اعشار تعریف شوند. .sp ثابت‌های جهان‌شمول که به طور تجربی اندازه‌گیری می‌شوند باید تا جای ممکن ارقام بااهمیت شناخته‌شده داشته باشند. برای نمونه، اگر عددی تا ۰٫۰۰۰۰۰۳± شناخته شده باشد، باید تا ۶ رقم بعد از اعشار درج گردد. .SS "منابع (Sources)" .sp بهترین منابع، اسناد استاندارد مانند اسناد منتشرشده توسط CGPM، ISO و NIST هستند. .sp برگه‌های اطلاعاتی (fact sheets) منتشرشده توسط سازمان‌های معتبر مانند NASA و ESA نیز مناسب هستند. .sp منابع و پایگاه‌های داده باکیفیت مانند Engineering Toolbox برای مقادیری که به صورت تجربی مشخص شده‌اند خوب هستند. .sp کتاب‌ها برای واحدهای تاریخی مناسبند، اما بهتر است به مواردی بسنده شود که به صورت آنلاین از طریق سایت‌هایی چون Google Books قابل مشاهده و راستی‌آزمایی باشند. .sp از ارجاع مستقیم به ویکی‌پدیا در صورت امکان باید خودداری شود؛ در عوض بررسی کنید ویکی‌پدیا به چه منبعی ارجاع داده و از همان منبع استفاده کنید. .SH "فایل‌ها (FILES)" .sp ابزار Rink فایل‌های تعاریف را در این مسیرها جستجو می‌کند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} \f(CR./definitions.units\fP .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} \f(CR$XDG_CONFIG_DIR/rink/definitions.units\fP .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} \f(CR/usr/share/rink/definitions.units\fP .RE .sp تمامی فایل‌های یافت‌شده بارگذاری خواهند شد. فایل‌ها می‌توانند به تعاریف یکدیگر ارجاع دهند. از این ویژگی می‌توان برای تعاریف سفارشی ساخته‌شده بر روی پایگاه‌داده پیش‌فرض واحدها استفاده کرد. .sp هنگامی که دریافت زنده نرخ ارز فعال باشد، Rink همچنین در این مسیرها به دنبال فایل ارزها می‌گردد: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} \f(CR./currency.units\fP .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} \f(CR$XDG_CONFIG_DIR/rink/currency.units\fP .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} \f(CR/usr/share/rink/currency.units\fP .RE .SH "تاریخچه (HISTORY)" .sp پایگاه‌داده واحدهای Rink در اصل بر پایه GNU Units بود و بخش عمده‌ای از نحو خود را از آن به ارث برده است. .sp تفاوت‌های عمده عبارتند از: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} حذف عملگرهای \f(CR!locale\fP، \f(CR!set\fP، \f(CR!utf8\fP و سایر دستوراتی که توسط Rink استفاده نمی‌شوند. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} افزودن \f(CR!category\fP و \f(CR!endcategory\fP. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} افزودن کامنت‌های مستندسازی که با \f(CR??\fP شروع می‌شوند. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} افزودن مواد (substances). .RE .SH "همچنین ببینید (SEE ALSO)" .sp rink(1), rink(5), rink(7), rink\-dates(5)