سلام
میخام عبارت ریاضی زیر را در نمایه اضافه کنم.
$\| \cdot \|_1$
ولی خطای زیر را میگیرم. و باعث میشه نمایه اصلا ظاهر نشه.
line 1: multiple |'s
WARNING: unknown attribute ` \cdot \_1$'! (ignored)
فایل نمونه ضمیمه شده.
ممنون میشم راهنمایی بفرمایین.
با تشکر قبلی
من به جای عبارات داخل $ شما نوشتم $\phi$ یعنی نوشتم:
\index{$\phi$}
و اینبار به جای هشدار خطا داد به این صورت:
ERROR: CHAR: index 0 should be less than the length of the string
ممنون دکتر بخاطر توجه به سوال.
سوالم فوری هست و مربوط به پایاننامه یکی از مشتریانم هست و باید زود تحویلش بدهم. اگر دوستان لطف کنن و زودتر جواب بدن ممنون میشم.
یک نکتهای متوجه شدم!
اگه فرمول را به این صورت بنویسم، خطا نمیده و در نمایه هم میاد:
$\left \vert \cdot \right \vert _1$
یعنی به جای | (خط عمودی) از دستور \vert باید استفاده کنم.
ولی موارد دیگری هم هست. میخام بدونم مشکل چیه؟
مثلا مشکل همین فی که شما گفتین چیه؟
با تشکر قبلی
نقل قول از: وفا در مارس 29, 2013, 04:14:57 بعد از ظهر
به نظر میاد مشکل از زیندی باشد:
\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)
خیلی ممنـــون دکتر کارنپهلو.
برای تکه فرمول قبلی یعنی:
$\| \cdot \|$
خط زیر را به فایل mymath.xdy اضافه کردم. ولی باز همون خطا را میده.
(merge-rule "\| \cdot \|" "metr normal" :string)
اما وقتی همون فرمول را به صورت زیر به فایل mymath.xdy اضافه کردم، دیگه خطا نداد و در نمایه هم ظاهر شد.
(merge-rule "\left \vert \cdot \right \vert" "metr normal" :string)
قضیه چیه؟
آیا زیندی برای این مطلب، راهنما و Pdfی داره؟
فایل نمونه هم ضمیمه شده.
با تشکر قبلی
نویسنده زیندی جواب زیر را فرستادن:
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.
فایل نمونهای که با توضیحهای مولف زیندی تونستم درست کنم، ضمیمه شده.
فقط نتونستم پیدا کنم که چه جوری کاراکتر || را چه جوری باید اضافه کنم.
منظورم این دو خط عمودی که به کمک دستور \| ظاهر میشه.
دوستان اگر کمک کنند، ممنون میشم.
آیا راهنمای علاوه بر راهنمای بستههای makeindex و xindy برای این موضوع هست؟
نقل قول از: هادی صفیاقدم در مارس 30, 2013, 06:15:27 بعد از ظهر
فایل نمونهای که با توضیحهای مولف زیندی تونستم درست کنم، ضمیمه شده.
هادی جان تو با دستورهایی مثل
\index{$\beta$}
هم مشکل داری؟
نقل قولفقط نتونستم پیدا کنم که چه جوری کاراکتر || را چه جوری باید اضافه کنم.
منظورم این دو خط عمودی که به کمک دستور \| ظاهر میشه.
راه درست نوشتن علامت قدر مطلق و نرم، به این صورته:
\providecommand{\abs}[1]{\lvert#1\rvert}
\providecommand{\norm}[1]{\lVert#1\rVert}
نقل قولآیا راهنمای علاوه بر راهنمای بستههای makeindex و xindy برای این موضوع هست؟
هر چیزی که توی راهنمای بستهها نباشه، فقط توی فرومها و سایتهای پرسش و پاسخ پیدا میشه.
نقل قول از: وحید دامنافشان در مارس 30, 2013, 07:52:47 بعد از ظهر
هادی جان تو با دستورهایی مثل
\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
حتی اگر یک مورد هم مثلا آلفا و بتا و ... هم باشه، نمایه کلا ظاهر نمیشه.
نقل قول از: وحید دامنافشان در مارس 30, 2013, 07:52:47 بعد از ظهر
راه درست نوشتن علامت قدر مطلق و نرم، به این صورته:
\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"
هادی جان
فعلا برای حل مشکل چرا از دوتا فایل نمایه استفاده نمیکنی که یکیش برای کلمات فارسی باشه و با زیندی پردازش بشه
و دیگری برای عبارات ریاضی باشه و با MakeIndex؟
نقل قول از: Farschad در مارس 31, 2013, 12:23:55 قبل از ظهر
هادی جان
فعلا برای حل مشکل چرا از دوتا فایل نمایه استفاده نمیکنی که یکیش برای کلمات فارسی باشه و با زیندی پردازش بشه
و دیگری برای عبارات ریاضی باشه و با MakeIndex؟
ممنون دکتر بابت جواب
دانشگاهی که این دوست مشتریم درش درس میخونه، باید یک نمایه داشته باشه.
نمیشه دو تا ایجاد کنم.
باز ممنون بابت جواب
هادی جان، اینجوری دوتا نمایه درست نمیشه ها؟!
اصولا چون عبارات ریاضی و فارسی با هم قاطی نیستند، حتی اگر با زیندی و یک روش این کار انجام شود،
بازهم نمایهها به ترتیب مرتب میشوند. یعنی اول ریاضیها میان و بعد فارسی ها. به همین دلیل اگر دوتا فایل نمایه
درست کنی و آنها را جداجدا پردازش کنی و بعد باهم ادغامشون کنی، هنگام printindex یک نمای واحد خواهی داشت.
البته میدونم کارم کشکیه و فقط برای حل مسأله در شرایط بحرانی کنونی به درد میخوره.
نقل قول از: Farschad در مارس 31, 2013, 12:37:05 قبل از ظهر
هادی جان، اینجوری دوتا نمایه درست نمیشه ها؟!
اصولا چون عبارات ریاضی و فارسی با هم قاطی نیستند، حتی اگر با زیندی و یک روش این کار انجام شود،
بازهم نمایهها به ترتیب مرتب میشوند. یعنی اول ریاضیها میان و بعد فارسی ها. به همین دلیل اگر دوتا فایل نمایه
درست کنی و آنها را جداجدا پردازش کنی و بعد باهم ادغامشون کنی، هنگام printindex یک نمای واحد خواهی داشت.
البته میدونم کارم کشکیه و فقط برای حل مسأله در شرایط بحرانی کنونی به درد میخوره.
ممنون دکتر. اختیار دارین. لطف میکنین که راهنمایی میکنین. دکتر کشک میدونین کیلویی چنده؟! خیلی گرونه! ;) (شوخی کردم که بخندین.)
فکر کنم مرتب شدن ریاضیها به صورت اتوماتیک نباشه. چون باید مثل روشی که دکتر کارنپهلو لطف کردن و یادم دادن، به زیندی بفهمونم که کجا قرارش بده. درسته؟ یا روش شما اینم لازم نداره؟ یعنی Make Index برای ریاضیها باشه و Xindy برای فارسی ها؟
میشه بیزحمت یک نمونه برام بفرستین؟ البته اگر وقتشو دارین.
اگر نه که، بیزحمت یک کوچولو راهنمایی کنین که چه جوری دو تا نمایه ایجاد کنم و با هم یکیشون کنم.
با استفاده از بسته multind به صورت فایل پیوست.
با این کار دوتا فایل مختلف تولید میشه که یکیش به نام persianهست و شما همهی نمایههای متداولتون را توش قرار میدین
و یک فایل math که در اون نمایههای ریاضی را. بعد از پردازش دوتا فایل به دست میاد که برای persian.idx از همون روش متداول
زیندی استفاده میکنید و برای math.idx از دستور makeindex که من چک کردم درست کار میکنه. بعد فایلهای ind تولید شده را
دستی با هم ادغام میکنید.
نقل قول از: هادی صفیاقدم در مارس 30, 2013, 11:36:00 بعد از ظهر
وحید جان، با 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$}
مشکل دارم که اونم طبیعیه؛ چون علامت | رو با موقعی که میخوایم زیراندیس بنویسیم، اشتباه میگیره. در واقع، خیال میکنه که این یه زیراندیسه.
نقل قول از: وحید دامنافشان در آپریل 01, 2013, 12:54:05 قبل از ظهر
هادی جان قبلاً هم وقتی از دستور
\index{$\alpha$}
با زیندی استفاده میکردی، مشکل داشتی یا تازگیها این مشکل ایجاد شده؟
۶۰ درصد فکر میکنم جدیدا اینطوری شده. اجازه بده نسخهی قدیمی تکلایو را نصب کنم و تست کنم و خبر بدم.
نقل قول از: وحید دامنافشان در آپریل 01, 2013, 12:54:05 قبل از ظهر
برام خیلی عجیبه. من فقط با دستوری مثل
\index{$\| \cdot \|_1$}
مشکل دارم که اونم طبیعیه؛ چون علامت | رو با موقعی که میخوایم زیراندیس بنویسیم، اشتباه میگیره. در واقع، خیال میکنه که این یه زیراندیسه.
نه وحید جان، با اندیس مشکلی نداره.
توی اون پست هم مولف زیندی گفت که بخاطر خط عمودی | هست.
چون راهنمای Make Index را که دیدم، این خط عمودی برای جدا کردن کلمه از attribute اون کلمه هست. مثلا بولد کردن کلمه و ...
توی اون پست هم مولف زیندی نوشته بود که باید به صورت زیر استفاده بشه:
"|
نقل قول از: هادی صفیاقدم در آپریل 01, 2013, 01:01:53 قبل از ظهر
نه وحید جان، با اندیس مشکلی نداره.
منظورت چیه که با اندیس مشکلی نداره؟
نقل قول از: وحید دامنافشان در آپریل 01, 2013, 01:04:49 قبل از ظهر
منظورت چیه که با اندیس مشکلی نداره؟
یعنی در فرمولی زیر که گفتی، مشکل از وجود خط عمودی هست و نه از وجود آندرلاین برای اندیس.
\index{$\| \cdot \|_1$}
مثلا فرمول زیر را بدون هیچ مشکلی زیندی در نمایه سر جاش میاره:
\index{$a_1$}
اما فرمول زیر را نمیاره:
\index{$|a_1|$}
چون خط عمودی که در زیندی کاربرد دیگری داره درش استفاده شده.
باید به صورت زیر در نمایه بیاد:
\index{$"|a_1"|$}
مشکل اینم اینه که در لیست حروف الفبایی نمیاد و اول همه میاد.
پس باید به این صورت به زیندی بفرمونیم:
\index{metra1@$"|a_1"|$}
امیدوارم تونسته باشم خوب توضیح بدم.
فایل نمونه هم ضمیمه شه وحید جان.
فقط وحید جان جسارت نشه، دقت کن اینجاشو. چون منم اشتباه کردم اولش. برای نمایه با زیندی باید ctrl+alt+I را در بیدیتکمیکر بزنیم. در صورتی که من اشتباهی F12 که برای Make Index هست را میزدم. :)
نقل قول از: هادی صفیاقدم در آپریل 01, 2013, 01:29:53 قبل از ظهر
یعنی در فرمولی زیر که گفتی، مشکل از وجود خط عمودی هست و نه از وجود آندرلاین برای اندیس.
\index{$\| \cdot \|_1$}
مثلا فرمول زیر را بدون هیچ مشکلی زیندی در نمایه سر جاش میاره:
\index{$a_1$}
منم نگفتم که مشکل از اندیسه ;). همونطور که خودت گفتی، مشکل از علامت | هستش.
نقل قولمشکل اینم اینه که در لیست حروف الفبایی نمیاد و اول همه میاد.
پس باید به این صورت به زیندی بفرمونیم:
\index{metra1@$"|a_1"|$}
اینکه اول نمیاد، کاملاً طبیعیه؛ چون حرف نیست؛ بلکه یه علامت هستش. اتفاقاً دیروز خواستم اینو بهت بگم که یادم رفت. استفاده از کلمه metra1 در اینجا، غلطه. باید از
\index{a@$"|a_1"|$}
استفاده کنی تا جزو گروه A قرار بگیره. اگه یادت باشه قبلاً که زیندی پشتیبانی نمیشد و از MakeIndex استفاده میکردیم، با حروف گ، چ، پ و ژ مشکل داشتیم و به خاطر همین به MakeIndex کلک میزدیم و کلمه مثلاً «پدر» رو به صورت
\index{بییییی@پدر}
وارد میکردیم تا بعد از کلمات گروه ب قرار بگیره.
نقل قول از: وحید دامنافشان در آپریل 01, 2013, 01:52:37 قبل از ظهر
منم نگفتم که مشکل از اندیسه ;). همونطور که خودت گفتی، مشکل از علامت | هستش.
:) ببخش وحید جان. منظورتو خوب متوجه نشده بودم.
نقل قول از: وحید دامنافشان در آپریل 01, 2013, 01:52:37 قبل از ظهر
اینکه اول نمیاد، کاملاً طبیعیه؛ چون حرف نیست؛ بلکه یه علامت هستش. اتفاقاً دیروز خواستم اینو بهت بگم که یادم رفت. استفاده از کلمه metra1 در اینجا، غلطه. باید از
\index{a@$"|a_1"|$}
استفاده کنی تا جزو گروه A قرار بگیره. اگه یادت باشه قبلاً که زیندی پشتیبانی نمیشد و از MakeIndex استفاده میکردیم، با حروف گ، چ، پ و ژ مشکل داشتیم و به خاطر همین به MakeIndex کلک میزدیم و کلمه مثلاً «پدر» رو به صورت
\index{بییییی@پدر}
وارد میکردیم تا بعد از کلمات گروه ب قرار بگیره.
یعنی اینجا منظور از این فرمول «متر a1» هست یا منظور بیشتر «a1»؟ (بخاطر این ازت میپرسم که تو بیشتر با ریاضی سر و کار داری. :) )
نقل قول از: هادی صفیاقدم در آپریل 01, 2013, 01:58:31 قبل از ظهر
یعنی اینجا منظور از این فرمول «متر a1» هست یا منظور بیشتر «a1»؟ (بخاطر این ازت میپرسم که تو بیشتر با ریاضی سر و کار داری. :) )
همونطور که گفتم، هر وقت بخوایم سیمبل مثلاً foo رو توی گروه حرفی مثلاً h بذاریم، از
\index{h@foo}
استفاده میشه.
حالا در این مثال تو، نویسنده خواسته که علامت
$"|a_1"|$
رو توی گروه حرفی M و بعد از کلمه Metr بذاره. دقت کن که ممکنه اصلاً کلمه Metr توی نمایهها نباشه. این کلمه فقط واسه اطمینان نوشته شده.