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

ابزارهای جانبی => Xindy => نويسنده: هادی صفی‌اقدم در مارس 28, 2013, 09:53:44 pm

عنوان: multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: هادی صفی‌اقدم در مارس 28, 2013, 09:53:44 pm
سلام
میخام عبارت ریاضی زیر را در نمایه اضافه کنم.
$\| \cdot \|_1$
ولی خطای زیر را میگیرم. و باعث میشه نمایه اصلا ظاهر نشه.
line 1: multiple |'s
WARNING: unknown attribute ` \cdot \_1$'! (ignored)
فایل نمونه ضمیمه شده.
ممنون میشم راهنمایی بفرمایین.
با تشکر قبلی
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: فرشاد ترابی در مارس 28, 2013, 11:05:47 pm
من به جای عبارات داخل $ شما نوشتم $\phi$ یعنی نوشتم:
\index{$\phi$}و اینبار به جای هشدار خطا داد به این صورت:
ERROR: CHAR: index 0 should be less than the length of the string
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: هادی صفی‌اقدم در مارس 29, 2013, 02:56:20 pm
ممنون دکتر بخاطر توجه به سوال.
سوالم فوری هست و مربوط به پایان‌نامه یکی از مشتریانم هست و باید زود تحویلش بدهم. اگر دوستان لطف کنن و زودتر جواب بدن ممنون میشم.

یک نکته‌ای متوجه شدم!
اگه فرمول را به این صورت بنویسم، خطا نمیده و در نمایه هم میاد:
‎$\left \vert  \cdot \right \vert _1$یعنی به جای | (خط عمودی) از دستور ‪\vert‬ باید استفاده کنم.
ولی موارد دیگری هم هست. میخام بدونم مشکل چیه؟
مثلا مشکل همین فی که شما گفتین چیه؟
با تشکر قبلی
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: هادی صفی‌اقدم در مارس 29, 2013, 06:24:51 pm
به نظر میاد مشکل از زیندی باشد:
\documentclass{article}
\usepackage{makeidx}
\makeindex
\begin{document}
$\alpha$
\index{$\alpha$}
\printindex
\end{document}
و اگر زیندی را بصورت زیر اجرا کنی:
xindy -L english -C utf8 -M texindy -M page-ranges test.idx
پیغام زیر را دریافت می‌کنی:
ERROR: CHAR: index 0 should be less than the length of the string
پیشهادم این است که مشکل را با مولف زیندی در میان بگذاری چون مشکل ربطی به زی‌پرشین یا فایلهای پشتیبانی زیندی از زبان فارسی ندارد.
ممنون دکتر بخاطر جواب. همیشه نمیدونم چرا با جواب‌های شما به اطمینان زیادی میرسم. ازتون خیلی ممنونم  :)
بله مشکل از زی‌پرشین نیست. چون با فایل بدون زی‌پرشین هم مشکل داره.
با زدن texdoc xindy  و آوردن راهنمایش نتونستم ایمیلی پیدا کنم. فقط اسم Joachim Schrod هست.
توی گوگل source forge را پیدا کردم و در اون گزارش کردم. (هم مشکل خودم و هم مشکلی که دکتر ترابی  و بعدش دکتر کارن‌پهلو گفتن را گفتم.)
https://sourceforge.net/tracker/?func=detail&aid=3609466&group_id=10646&atid=110646 (https://sourceforge.net/tracker/?func=detail&aid=3609466&group_id=10646&atid=110646)
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: هادی صفی‌اقدم در مارس 30, 2013, 03:12:14 pm
خیلی ممنـــون دکتر کارن‌پهلو.
برای تکه فرمول قبلی یعنی:
$\|  \cdot \|$
خط زیر را به فایل mymath.xdy اضافه کردم. ولی باز همون خطا را میده.
(merge-rule "\|  \cdot \|" "metr normal" :string)
اما وقتی همون فرمول را به صورت زیر به فایل mymath.xdy اضافه کردم، دیگه خطا نداد و در نمایه هم ظاهر شد.
(merge-rule "\left \vert  \cdot \right \vert" "metr normal" :string)
قضیه چیه؟
آیا زیندی برای این مطلب، راهنما و Pdfی داره؟
فایل نمونه هم ضمیمه شده.
با تشکر قبلی
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: هادی صفی‌اقدم در مارس 30, 2013, 05:44:46 pm
نویسنده زیندی جواب زیر را فرستادن:
https://sourceforge.net/tracker/?func=detail&atid=110646&aid=3609466&group_id=10646 (https://sourceforge.net/tracker/?func=detail&atid=110646&aid=3609466&group_id=10646)
Date: 2013-03-30 06:06:14 PDT
Sender: jschrodProject Admin

Placing formulas will never work out of the box - there is no defined order
where formulas should be placed in an index. Should they be placed in the
Symbols group, or should they be placed in an own group? If the latter, one
has to define that group and merge rules or use explicit sort keys that
place the formulas in that group and spell out how they are to be sorted.

In particular, your issues:

1. xindy ignores $, knowing that this is a special character for TeX. It
also ignores unknown macros or macros where it's unclear where to place
them in an index. Among these are all math characters. That means that
\index{$\alpha$} is equivalent to \index{}, i.e., it is an empty index
entry. Empty index entries cause the error message that you've received. If
you want to put formulas in an index, you need to tell xindy where to put
them, i.e., where to sort them - usually that's done by an explicit sort
key: you add @ to the entry and after the @ you put the characters that
shall be used for sorting.

2.1 The vertical bar | in an index entry separates the index key from the
index attribute. If you want to put it in an index, you need to use "|
(that's a double quote in front of the vertical bar). That is described in
all LaTeX manuals, it's the almost the same as with Makeindex; you should
find users in your forum that can help you here.

2.2 outputs the same error message as case 1, for the same reasons.

This is no bug, but a misunderstanding how xindy works. Therefore I close
this ticket. Please note that this bug ticket system is not a help forum.
Often such xindy questions are answered on tex.stackexchange.com, or on the
newsgroup comp.text.tex. Or they may be sent to the xindy mailing list,
although that list doesn't have much subscribers.
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: هادی صفی‌اقدم در مارس 30, 2013, 06:15:27 pm
فایل نمونه‌ای که با توضیح‌های مولف زیندی تونستم درست کنم، ضمیمه شده.
فقط نتونستم پیدا کنم که چه جوری کاراکتر ||  را چه جوری باید اضافه کنم.
منظورم این دو خط عمودی که به کمک دستور ‪\|‬ ظاهر میشه.
دوستان اگر کمک کنند، ممنون میشم.
آیا راهنمای علاوه بر راهنمای بسته‌های makeindex و xindy برای این موضوع هست؟
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: وحید دامن‌افشان در مارس 30, 2013, 07:52:47 pm
فایل نمونه‌ای که با توضیح‌های مولف زیندی تونستم درست کنم، ضمیمه شده.
هادی جان تو با دستورهایی مثل
‎\index{$\beta$}‎هم مشکل داری؟
نقل قول
فقط نتونستم پیدا کنم که چه جوری کاراکتر ||  را چه جوری باید اضافه کنم.
منظورم این دو خط عمودی که به کمک دستور ‪\|‬ ظاهر میشه.
راه درست نوشتن علامت قدر مطلق و نرم، به این صورته:
\providecommand{\abs}[1]{\lvert#1\rvert}
‎\providecommand{\norm}[1]{\lVert#1\rVert}‎
نقل قول
آیا راهنمای علاوه بر راهنمای بسته‌های makeindex و xindy برای این موضوع هست؟
هر چیزی که توی راهنمای بسته‌ها نباشه، فقط توی فروم‌ها و سایت‌های پرسش و پاسخ پیدا می‌شه.
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: هادی صفی‌اقدم در مارس 30, 2013, 11:36:00 pm
هادی جان تو با دستورهایی مثل
‎\index{$\beta$}‎هم مشکل داری؟
وحید جان، با MakeIndex مشکل ندارم.
یعنی با دستور زیر:
makeindex %.idxبا Make Index Xindy مشکل دارم.
یعنی با دستورهای زیر:
C:\texlive\2012\bin\win32\xindy -L english -M texindy %.idx
C:\texlive\2012\bin\win32\xindy -L persian -C utf8 -M texindy %.idx
حتی اگر یک مورد هم مثلا آلفا و بتا و ... هم باشه، نمایه کلا ظاهر نمیشه.
راه درست نوشتن علامت قدر مطلق و نرم، به این صورته:
\providecommand{\abs}[1]{\lvert#1\rvert}
‎\providecommand{\norm}[1]{\lVert#1\rVert}‎
هر چیزی که توی راهنمای بسته‌ها نباشه، فقط توی فروم‌ها و سایت‌های پرسش و پاسخ پیدا می‌شه.
ممنون وحید جان

فایل نمونه در اجرا با زیندی، خطای زیر را میده:
Processing index...
ERROR: CHAR: index 0 should be less than the length of the string
C:\texlive\2012\bin\win32\runscript.tlu:591: command failed with exit code 1:
perl.exe c:/texlive/2012/texmf/scripts/xindy/xindy.pl -L english -M texindy "xin
dy MakeIndex equation error hsa.idx"
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: فرشاد ترابی در مارس 31, 2013, 12:23:55 am
هادی جان
فعلا برای حل مشکل چرا از دوتا فایل نمایه استفاده نمیکنی که یکیش برای کلمات فارسی باشه و با زیندی پردازش بشه
و دیگری برای عبارات ریاضی باشه و با MakeIndex؟
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: هادی صفی‌اقدم در مارس 31, 2013, 12:29:04 am
هادی جان
فعلا برای حل مشکل چرا از دوتا فایل نمایه استفاده نمیکنی که یکیش برای کلمات فارسی باشه و با زیندی پردازش بشه
و دیگری برای عبارات ریاضی باشه و با MakeIndex؟
ممنون دکتر بابت جواب
دانشگاهی که این دوست مشتریم درش درس میخونه، باید یک نمایه داشته باشه.
نمیشه دو تا ایجاد کنم.
باز ممنون بابت جواب
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: فرشاد ترابی در مارس 31, 2013, 12:37:05 am
هادی جان، اینجوری دوتا نمایه درست نمیشه ها؟!
اصولا چون عبارات ریاضی و فارسی با هم قاطی نیستند، حتی اگر با زیندی و یک روش این کار انجام شود،
بازهم نمایه‌ها به ترتیب مرتب میشوند. یعنی اول ریاضیها میان  و بعد فارسی ها. به همین دلیل اگر دوتا فایل نمایه
درست کنی و آنها را جداجدا پردازش کنی و بعد باهم ادغامشون کنی، هنگام  printindex یک نمای واحد خواهی داشت.
البته میدونم کارم کشکیه و فقط برای حل مسأله در شرایط بحرانی کنونی به درد میخوره.
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: هادی صفی‌اقدم در مارس 31, 2013, 12:56:48 am
هادی جان، اینجوری دوتا نمایه درست نمیشه ها؟!
اصولا چون عبارات ریاضی و فارسی با هم قاطی نیستند، حتی اگر با زیندی و یک روش این کار انجام شود،
بازهم نمایه‌ها به ترتیب مرتب میشوند. یعنی اول ریاضیها میان  و بعد فارسی ها. به همین دلیل اگر دوتا فایل نمایه
درست کنی و آنها را جداجدا پردازش کنی و بعد باهم ادغامشون کنی، هنگام  printindex یک نمای واحد خواهی داشت.
البته میدونم کارم کشکیه و فقط برای حل مسأله در شرایط بحرانی کنونی به درد میخوره.
ممنون دکتر. اختیار دارین. لطف میکنین که راهنمایی میکنین. دکتر کشک میدونین کیلویی چنده؟! خیلی گرونه!  ;) (شوخی کردم که بخندین.)
فکر کنم مرتب شدن ریاضی‌ها به صورت اتوماتیک نباشه. چون باید مثل روشی که دکتر کارن‌پهلو لطف کردن و یادم دادن، به زیندی بفهمونم که کجا قرارش بده. درسته؟ یا روش شما اینم لازم نداره؟ یعنی Make Index برای ریاضی‌ها باشه و Xindy برای فارسی ها؟
میشه بیزحمت یک نمونه برام بفرستین؟ البته اگر وقتشو دارین.
اگر نه که، بیزحمت یک کوچولو راهنمایی کنین که چه جوری دو تا نمایه ایجاد کنم و با هم یکیشون کنم.
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: فرشاد ترابی در مارس 31, 2013, 02:14:32 pm
با استفاده از بسته multind به صورت فایل پیوست.
با این کار دوتا فایل مختلف تولید میشه که یکیش به نام persian‌هست و شما همه‌ی نمایه‌های متداولتون را توش قرار میدین
و یک فایل math‌ که در اون نمایه‌های ریاضی را. بعد از پردازش دوتا فایل به دست میاد که برای persian.idx از همون روش متداول
زیندی استفاده میکنید و برای math.idx از دستور makeindex که من چک کردم درست کار میکنه. بعد فایلهای ind‌ تولید شده را
دستی با هم ادغام میکنید.
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: وحید دامن‌افشان در آوریل 01, 2013, 12:54:05 am
وحید جان، با MakeIndex مشکل ندارم.
یعنی با دستور زیر:
makeindex %.idxبا Make Index Xindy مشکل دارم.
یعنی با دستورهای زیر:
C:\texlive\2012\bin\win32\xindy -L english -M texindy %.idx
C:\texlive\2012\bin\win32\xindy -L persian -C utf8 -M texindy %.idx
حتی اگر یک مورد هم مثلا آلفا و بتا و ... هم باشه، نمایه کلا ظاهر نمیشه.ممنون وحید جان
فایل نمونه در اجرا با زیندی، خطای زیر را میده:
هادی جان قبلاً هم وقتی از دستور
\index{$\alpha$} با زیندی استفاده می‌کردی، مشکل داشتی یا تازگی‌ها این مشکل ایجاد شده؟
برام خیلی عجیبه. من فقط با دستوری مثل
‎\index{$\| \cdot ‎\|_1$‎}مشکل دارم که اونم طبیعیه؛ چون علامت | رو با موقعی که می‌خوایم زیراندیس بنویسیم، اشتباه می‌گیره. در واقع، خیال می‌کنه که این یه زیراندیسه.
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: هادی صفی‌اقدم در آوریل 01, 2013, 01:01:53 am
هادی جان قبلاً هم وقتی از دستور
\index{$\alpha$} با زیندی استفاده می‌کردی، مشکل داشتی یا تازگی‌ها این مشکل ایجاد شده؟
۶۰ درصد فکر میکنم جدیدا اینطوری شده. اجازه بده نسخه‌ی قدیمی تک‌لایو را نصب کنم و تست کنم و خبر بدم.
برام خیلی عجیبه. من فقط با دستوری مثل
‎\index{$\| \cdot ‎\|_1$‎}مشکل دارم که اونم طبیعیه؛ چون علامت | رو با موقعی که می‌خوایم زیراندیس بنویسیم، اشتباه می‌گیره. در واقع، خیال می‌کنه که این یه زیراندیسه.
نه وحید جان، با اندیس مشکلی نداره.
توی اون پست هم مولف زیندی گفت که بخاطر خط عمودی | هست.
چون راهنمای Make Index را که دیدم، این خط عمودی برای جدا کردن کلمه از attribute اون کلمه هست. مثلا بولد کردن کلمه و ...
توی اون پست هم مولف زیندی نوشته بود که باید به صورت زیر استفاده بشه:
"|
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: وحید دامن‌افشان در آوریل 01, 2013, 01:04:49 am
نه وحید جان، با اندیس مشکلی نداره.
منظورت چیه که با اندیس مشکلی نداره؟
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: هادی صفی‌اقدم در آوریل 01, 2013, 01:29:53 am
منظورت چیه که با اندیس مشکلی نداره؟
یعنی در فرمولی زیر که گفتی، مشکل از وجود خط عمودی هست و نه از وجود آندرلاین برای اندیس.
‎\index{$\| \cdot ‎\|_1$‎}مثلا فرمول زیر را بدون هیچ مشکلی زیندی در نمایه سر جاش میاره:
\index{$a_1$}
اما فرمول زیر را نمیاره:
\index{$|a_1|$}
چون خط عمودی که در زیندی کاربرد دیگری داره درش استفاده شده.
باید به صورت زیر در نمایه بیاد:
\index{$"|a_1"|$}
مشکل اینم اینه که در لیست حروف الفبایی نمیاد و اول همه میاد.
پس باید به این صورت به زیندی بفرمونیم:
\index{metra1@$"|a_1"|$}
امیدوارم تونسته باشم خوب توضیح بدم.
فایل نمونه هم ضمیمه شه وحید جان.
فقط وحید جان جسارت نشه، دقت کن اینجاشو. چون منم اشتباه کردم اولش. برای نمایه با زیندی باید ctrl+alt+I را در بی‌دی‌تکمیکر بزنیم. در صورتی که من اشتباهی F12 که برای Make Index هست را میزدم. :)
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: وحید دامن‌افشان در آوریل 01, 2013, 01:52:37 am
یعنی در فرمولی زیر که گفتی، مشکل از وجود خط عمودی هست و نه از وجود آندرلاین برای اندیس.
‎\index{$\| \cdot ‎\|_1$‎}مثلا فرمول زیر را بدون هیچ مشکلی زیندی در نمایه سر جاش میاره:
\index{$a_1$}
منم نگفتم که مشکل از اندیسه ;). همون‌طور که خودت گفتی، مشکل از علامت | هستش.
نقل قول
مشکل اینم اینه که در لیست حروف الفبایی نمیاد و اول همه میاد.
پس باید به این صورت به زیندی بفرمونیم:
\index{metra1@$"|a_1"|$}
اینکه اول نمیاد، کاملاً طبیعیه؛ چون حرف نیست؛ بلکه یه علامت هستش. اتفاقاً دیروز خواستم اینو بهت بگم که یادم رفت. استفاده از کلمه metra1 در اینجا، غلطه. باید از
\index{a@$"|a_1"‎|$}‎‎‎استفاده کنی تا جزو گروه A قرار بگیره. اگه یادت باشه قبلاً که زیندی پشتیبانی نمی‌شد و از MakeIndex استفاده می‌کردیم، با حروف گ، چ، پ و ژ مشکل داشتیم و به خاطر همین به MakeIndex کلک می‌زدیم و کلمه مثلاً «پدر» رو به صورت
\index{‎بییییی@پدر}‎‎‎وارد می‌کردیم تا بعد از کلمات گروه ب قرار بگیره.
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: هادی صفی‌اقدم در آوریل 01, 2013, 01:58:31 am
منم نگفتم که مشکل از اندیسه ;). همون‌طور که خودت گفتی، مشکل از علامت | هستش.
:) ببخش وحید جان. منظورتو خوب متوجه نشده بودم.
اینکه اول نمیاد، کاملاً طبیعیه؛ چون حرف نیست؛ بلکه یه علامت هستش. اتفاقاً دیروز خواستم اینو بهت بگم که یادم رفت. استفاده از کلمه metra1 در اینجا، غلطه. باید از
\index{a@$"|a_1"‎|$}‎‎‎استفاده کنی تا جزو گروه A قرار بگیره. اگه یادت باشه قبلاً که زیندی پشتیبانی نمی‌شد و از MakeIndex استفاده می‌کردیم، با حروف گ، چ، پ و ژ مشکل داشتیم و به خاطر همین به MakeIndex کلک می‌زدیم و کلمه مثلاً «پدر» رو به صورت
\index{‎بییییی@پدر}‎‎‎وارد می‌کردیم تا بعد از کلمات گروه ب قرار بگیره.
یعنی اینجا منظور از این فرمول «متر ‪a1‬» هست یا منظور بیشتر «‪a1‬»؟ (بخاطر این ازت میپرسم که تو بیشتر با ریاضی سر و کار داری. :) )
عنوان: پاسخ : multiple |'s WARNING: unknown attribute در اضافه کردن ‪$\| \cdot \|_1$‬ به نمایه
رسال شده توسط: وحید دامن‌افشان در آوریل 01, 2013, 11:19:42 am
یعنی اینجا منظور از این فرمول «متر ‪a1‬» هست یا منظور بیشتر «‪a1‬»؟ (بخاطر این ازت میپرسم که تو بیشتر با ریاضی سر و کار داری. :) )
همون‌طور که گفتم، هر وقت بخوایم سیمبل مثلاً  foo رو توی گروه حرفی مثلاً h بذاریم، از
\index{h@foo} استفاده می‌شه.
حالا در این مثال تو، نویسنده خواسته که علامت
$"|a_1"‎|$ رو توی گروه حرفی M و بعد از کلمه Metr بذاره. دقت کن که ممکنه اصلاً کلمه Metr توی نمایه‌ها نباشه. این کلمه فقط واسه اطمینان نوشته شده.