سؤال

لدي مجموعة من الكود اللاتكس الذي تم إنشاؤه تلقائيا باستخدام HyperTargets من النموذج "اسم المستخدم_2093840289FAD1337"، أي اسم الوظيفة مع إلحاق التجزئة. أود أن أشير إلى تلك الوظائف من بقية المستند من خلال الإشارة فقط إلى اسم الوظيفة الذي أعرفه هو فريد من نوعه. أود البحث عن شيء مثل هذا:

\hyperdyperlink{functionname}

الذي تنبعث منه

\hyperlink{functionname_2093840289fad1337}{functionname}

لاحظ أنه لا يمكنني حساب التجزئة، لكنني على استعداد لكتابة جدول يخريك كل اسم وظيفة إلى اسم + Hash. ما هي أفضل طريقة لكتابة هذا النوع من الوظائف؟

هل كانت مفيدة؟

المحلول

هل هذا فعال؟

 makeatletter  newcommand  hashlink [2] {٪  @ @ # 1} {# 2}٪}  Newcommand  Hyperdyperlink [1] {٪  hyperlink {# 1 _  @ nameuse {hashlink- # 1}} {# 1}٪}  hashlink {sectorname} {2093840289FAD1337}  Hyperdyperlink {دالة}  Makeatultother

(لم تختبر.)


في وقت لاحق: لتفرع الرمز اعتمادا إذا كنت تعرف هدف الارتباط، يمكنك كتابة شيء مثل

 Newcommand  Hyperdyperlink [1] {٪  @ @ # 1} {٪ [أي شيء آخر تريد القيام به]} {٪  Hyperlink {# 1 _  @ nameuse {hashlink- # 1}} {# 1} ٪}٪}

(تحديث: وجه الفتاة؛ كان ذلك مكسورا تماما كما نشر أولا، آسف. ثابت الآن، آمل.)

نصائح أخرى

نظرا لأن أسماء الوظائف فريدة من نوعها، فهل لا يمكنك تحديد أهداف الارتباط التشعبي دون إلحاق التجزئة؟

بدلا من ذلك، يمكنك إنشاء ماكرو مطاط جديد لكل وظيفة. يمكن أن يقوم الكود الذي يولد رمز اللاتكس القيام بذلك عن طريق إخراج رمز مثل هذا:

\newcommand{\linkFoo}{\hyperlink{foo_2093840289fad1337}{foo}}
\newcommand{\linkBar}{\hyperlink{bar_4323812312asf1342}{bar}}

ثم استخدام \linkFoo والأصدقاء في الجزء المكشوف يدك.

يمكنك أيضا تطبيق جدول بحث مناسب مع وحدات ماكرو TEX إذا كنت ترغب حقا - انظر هذا الموضوع للحصول على مثال - ولكن هذا الحل سهل للغاية وأبسط أن يفهم (IMHO).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top