ড্যাশযুক্ত শব্দের হাইফেনেট করার জন্য আমি কীভাবে ল্যাটেক্স পাব?


107

আমি যে লেটেক্স ডকুমেন্টটি লিখছি তাতে আমি "বহু-শৃঙ্খলা" শব্দের কারণে একটি ওভারফুল এইচবক্স সতর্কতা পেয়েছি , যা একটি লাইনের শেষে রেন্ডার করা হয়।

আমি এই বিশেষ সতর্কতাটিকে এর মধ্যে পরিবর্তন করে মুক্তি থেকে মুক্তি পেতে পারি multi-discipli\-naryতবে একই সমস্যা অন্য কোথাও ঘটবে, যেহেতু এই শব্দটি কাগজে প্রচুর ব্যবহৃত হয়েছে।

আমি \hyphenation{}পরিবর্তে কমান্ডটি ব্যবহার করতে চাই , তবে স্পষ্টতই আমার কাজটি কার্যকর \hyphenation{multi-disci-pli-na-ry}হয় না, কারণ এটি প্রথম ড্যাশটি সঠিকভাবে বুঝতে পারে না।

ইতিমধ্যে একটি ড্যাশ রয়েছে এমন একটি শব্দে আমার সঠিক ইন্ডেন্টেশনটি পেতে কী প্রয়োজন?

বোনাস প্রশ্ন: আমি নিজেই কোথায় এই প্রশ্নের উত্তর খুঁজে পেতে পারি?


হার্ড হাইপেনটিতে শব্দটি ভাঙা কেন এটি সমস্যা? "মাল্টি-নিউলাইন ডাইমেনশনাল" ঠিক আছে না?
জিওফ রেডি 16

1
বোনাস উত্তর: "লেটেক্স হাইফেনেশন" এর একটি গুগল অনুসন্ধানে সমস্ত প্রকারের কার্যকর ফলাফল পাওয়া গেছে, যার মধ্যে রয়েছে ল্যাটেক্স উইকি বইয়ের উত্তর রয়েছে: এন.ইউইকিবুকস.আরউইকি
মাইকা

3
@ মিকা: না তা হয় না। আমি এই সমস্ত পৃষ্ঠা বহু বছর আগে পড়েছি। @ জিওফ: ল্যাটেক্স যদি হাইফেন করে থাকে তবে এটি ঠিক আছে। তবে এই উদাহরণে এটি "আন্ডারফুল এইচবক্স" এর কারণ হতে পারে এবং ল্যাটেক্স একেবারে হাইফেনেট না করা চয়ন করে।
Gyom

আপনি কি প্রথম ব্যাকস্ল্যাশ করতে পারেন - \ হাইফেনেশন কমান্ডে?
ব্রায়ান পোস্টো

1
আপনার মন্তব্য @ ড্রিউস্টিনের জন্য ধন্যবাদ। অবশ্যই আমি একমত। তবে আমার প্রতিরক্ষায় টেক্সটএসএসএস-এর মতো কিছুই ছিল না যখন আমি এই প্রশ্নগুলি জিজ্ঞাসা করেছি :-)
জিওম

উত্তর:


52

Https://texfaq.org/ FAQ- nohyph থেকে :

টেক্স ইতিমধ্যে হাইফেনেটেড এমন একটি শব্দ হাইফেনেট করবে না। উদাহরণস্বরূপ, (ক্যারিকেচার) ইংরাজি উপাধি স্মিথ-পোস্টলেথওয়েট হাইফেনেট করবে না, যা ঝামেলা হতে পারে। এটি সঠিক ইংরেজি টাইপসেটিং শৈলী (এটি অন্যান্য ভাষার ক্ষেত্রে সঠিক নাও হতে পারে) তবে প্রয়োজনের প্রয়োজনে আপনি নামটি হাইফেনকে একটি \hyph কমান্ড দিয়ে প্রতিস্থাপন করতে পারেন , সংজ্ঞায়িত

 \def\hyph{-\penalty0\hskip0pt\relax}

এই না জিনিস এই FAQ সচরাচর সুপারিশ করবে সাজানোর ... hyphenatপ্যাকেজ (বিভিন্ন যতিচিহ্ন টি অক্ষর হাইফেন পয়েন্ট প্রবর্তনের জন্য) যেমন কমান্ড একটা বান্ডিল সংজ্ঞায়িত করে।


অথবা আপনি \newcommandযে কমান্ডটি প্রসারিত করতে multi-discipli\-naryপারেন (বিদ্যমান শব্দগুলির প্রতিস্থাপনের জন্য অনুসন্ধান + প্রতিস্থাপন সবগুলি ব্যবহার করুন)।


অনেক ধন্যবাদ. আমার সন্দেহ হিসাবে, কোনও "নিখুঁত" উত্তর নেই। যেহেতু আমি এই দস্তাবেজের একমাত্র লেখক নই, আমি সত্যই অন্যকে \newcommandযে কোনও জায়গায় ব্যবহার করতে বাধ্য করতে চাই না (এজন্য আমি এর ভিত্তিতে কিছু চাইছিলাম \hyphenation)। আমার ধারণা আমি ডিফল্টরূপে এটি '' ঠিক তেমনই রাখব '' এবং যখন লেটেক্স ওভারফুল হেক্সবক্স সম্পর্কে অভিযোগ করবে তখন ম্যানুয়ালি স্পষ্ট হাইফেন যুক্ত করব।
Gyom

63

সমস্যা (কেনেনিটিএম হিসাবে উল্লেখ করা হয়েছে) হ'ল লটেক্স তাদের মধ্যে ড্যাশ যুক্ত শব্দকে হাইফেনেট করবে না। সৌভাগ্য যে, সেখানে একটি প্রমিত প্যাকেজ (ncctools অংশ) যে ঠিকানাগুলি যে খুব সমস্যা, নামক extdash। এটি হাইফেন এবং ড্যাশ কমান্ডগুলি সংজ্ঞায়িত করে যা হাইফেনেশন ব্যাহত করে না এবং হাইফন / ড্যাশ-এ লাইন বিরতিগুলিকে অনুমোদন বা প্রতিরোধ করতে পারে। আমি shortcutsবিকল্পের সাথে এটি ব্যবহার করতে পছন্দ করি , তাই আমি ব্যবহার না করে, \-/বরং এটির চেয়ে বেশি করতে পারি \Hyphdash। আপনি যা চান তা এখানে:

\usepackage[shortcuts]{extdash} ... multi\-/disciplinary

এই হাইফেনটি ভাঙ্গা রোধ করতে, ব্যবহার করুন multi\=/disciplinary

(পাশাপাশি: শিকাগো ম্যানুয়াল অফ স্টাইল হাইফেনগুলি 'মাল্টি' এর মতো সংযুক্তিযুক্ত অ্যাফিক্সগুলি বাদ দেওয়ার পরামর্শ দেয়, যদি না শব্দটি অস্পষ্ট থাকে বা এটি ছাড়াই বোঝে না))


এই মহান, কিন্তু উৎপাদ একটি hyperref সতর্কবার্তা যখন আমি একটি অধ্যায় স্ট্রিং এটি ব্যবহার হয়: Package hyperref Warning: Token not allowed in a PDF string। সেখানে, অন্যান্য প্রস্তাবিত সমাধান ( \def\hyph{-\penalty0\hskip0pt\relax}) কাজ করে।
ডাঃ জানু-ফিলিপ গেহর্কেকে

1
@ জান-ফিলিপ জিহরস্কে: এই সতর্কতাগুলি ব্যবহার করেও স্থির করা যেতে পারে \texorpdfstring(যা অধ্যায় শিরোনামে প্রবেশ করা স্ট্রিংগুলির জন্য শর্তসাপেক্ষ সংকলন সরবরাহ করে )। আমি সিমেটিক ম্যাক্রোগুলির অভ্যন্তরে ব্যবহারগুলি লুকিয়ে রাখি (সম্ভবত, সম্ভবত \multidisciplinary)। হ্যাঁ, এটি নিখুঁত নয়।
ব্লেজারব্লেড

22

আমি প্যাকেজ ব্যবহার করি hyphenatএবং তারপরে ফিনিশ শব্দ ইন্টারনেট- yhteys ( ইঞ্জিনিইন্টারনেট সংযোগ ) এর মতো যৌগিক শব্দ লিখি Internet\hyp yhteys। বোকা দেখায় তবে আমি খুঁজে পেয়েছি এটি সবচেয়ে মার্জিত উপায়।


6

multi-disciplinaryহাইফেনেটেড হবে না, যেমন কেনেটিএম দ্বারা ব্যাখ্যা করা হয়েছে। তবে multi-\-disciplinaryএকই হাইফেনেশনের সুযোগ multidisciplinaryরয়েছে।

আমি স্বীকার করি যে আমি জানি না কেন এটি কাজ করে। এখানে বর্ণিত আচরণ (জোর দেওয়া খনি) থেকে এটি পৃথক :

কমান্ডটি \-একটি শব্দের মধ্যে একটি বিচক্ষণ হাইফেন tsোকায়। এটি এইমাত্র শব্দ যেখানে হাইফেনেশন অনুমোদিত হয়


প্রতিস্থাপন করা হচ্ছে -সঙ্গে -\-overleaf.com এ ডিফল্ট সেটিংসে অন্তত আউটপুট পরিবর্তন না (সম্ভবত pdflatex কিন্তু ওপিঠে আসলে কি বলতে না)।
ক্যামিল গৌডেসুন

4

আমারও একই সমস্যা ছিল। আমি হাইফেন্যাট প্লাস নিম্নলিখিত ম্যাক্রো ব্যবহার করি :

\RequirePackage{hyphenat}
\RequirePackage{expl3}


% The following defs make sure words that contain an explicit `-` (hyphen) are still hyphenated the normal way, and double- and triple hyphens keep working the way they should. Just don't use a `-` as the last token of your document. Also note that `-` is now a macro that is not fully expandable

\ExplSyntaxOn

% latex2e doesn't like commands starting with 'end', apparently expl3 doesn't have any problems with it
\cs_new:Npn \hyphenfix_emdash:c {---}
\cs_new:Npn \hyphenfix_endash:c {--}

\cs_new:Npn \hyphenfix_discardnext:NN #1#2{#1}


\catcode`\-=\active

\cs_new_protected:Npn -{
    \futurelet\hyphenfix_nexttok\hyphenfix_i:w
}

\cs_new:Npn \hyphenfix_i:w {
    \cs_if_eq:NNTF{\hyphenfix_nexttok}{-}{
        %discard the next `-` token
        \hyphenfix_discardnext:NN{\futurelet\hyphenfix_nexttok\hyphenfix_ii:w}
    }{
        % from package hyphenat
        \hyp
    }
}

\cs_new:Npn \hyphenfix_ii:w {
    \cs_if_eq:NNTF{\hyphenfix_nexttok}{-}{
        \hyphenfix_discardnext:NN{\hyphenfix_emdash:c}
    }{
        \hyphenfix_endash:c
    }
}


\ExplSyntaxOff

মনে রাখবেন যে এটি লেটেক্স 3 থেকে এক্সপ্লেল 3 প্যাকেজটি ব্যবহার করে।

এটি এমন -একটি সক্রিয় চরিত্র তৈরি করে যা আরও ড্যাশ অনুসরণ করে তা অনুসরণ করার জন্য স্ক্যান করে স্ক্যান করে। যদি তাই হয়, এটি একটি থাকে -, তা নিশ্চিত করার জন্য --এবং ---কাজ করা চালিয়ে। যদি তা না হয় তবে এটি \hypহাইফেন্যাট থেকে কমান্ড হয়ে যায় , শব্দটির বাকী অংশে শব্দ ভেঙে সক্ষম করে। এটি একটি জেনেরিক সমাধান যা স্পষ্টভাবে হাইফেন হাইফেনেট সহ সমস্ত শব্দকে সাধারণত করে তোলে।

নোট করুন যে -একটি ম্যাক্রো হয়ে গেছে যা পুরোপুরি প্রসারণযোগ্য নয়, সুতরাং অন্য প্যাকেজগুলি লোড করার পরে এটি অন্তর্ভুক্ত করার চেষ্টা করুন যা -ম্যাক্রো হওয়ার আশা করে না

সম্পাদনা: এটি আমার দ্বিতীয় সংস্করণ, যখন হাইফেনটি অনুসরণ {বা }অনুসরণ করা হয়েছিল তখন প্রথম সংস্করণটি কম শক্ত ছিল । এটি এক নয়, তবে প্রথম সংস্করণটির বিপরীতে -এই সংস্করণটির পুরোপুরি প্রসারণযোগ্য নয়।


3
multi\hskip0pt-\hskip0pt disciplinary

আপনি যেমন পছন্দ করতে পারেন

\def\:{\hskip0pt}

এবং তারপর লিখুন

multi\:-\:disciplinary

নোট করুন যে বাবেল রাশিয়ান ভাষার প্যাকেজের নিজস্ব ড্যাশগুলির একটি সেট রয়েছে যা হাইফেনেশন নিষিদ্ধ করে না, "~(ডাবল কোটেশন + টিলডে) উদাহরণস্বরূপ।


1
হওয়া উচিত multi-\hskip0pt disciplinary। আপনার মতো এমডব্লিউই, এটিও অত্যধিক হাইপেনেট করবে। \setlength{\textwidth}{0.1cm}এটি চেষ্টা করার জন্য কেবল সেট করুন।
LaRiFaRi

-3

আমি এখানে অনুরূপ কিছু উত্তর দিয়েছি: ল্যাটেক্স খুব বেশি শব্দ ভাঙছে

অামি বলেছিলাম:

আপনার উপস্থাপিত কোথাও আপনার হাইফেনেশন পেনাল্টি সেট করা উচিত:

\hyphenpenalty=750

7 টির মান 12 পিটি ফন্টের সাথে লেটার পেপারের (8.5x11 ইন) দুটি কলাম লেআউটের জন্য আমার প্রয়োজনগুলির সাথে উপযুক্ত। আপনার প্রয়োজন অনুসারে মানটি সামঞ্জস্য করুন। সংখ্যাটি যত বেশি হবে, হাইফেনেশন কম হবে। আপনি হাইফেন্যাটপ্যাকেজটি একবার দেখতে চান, এটি হাইফেনেশন পেনাল্টি থেকে কিছুটা বেশি সরবরাহ করে


1
তিনি জিজ্ঞাসা করছেন কীভাবে হাইফেনটিং এড়ানো যায়, কীভাবে সীমা নির্ধারণ করা যায় সে সম্পর্কে নয়।
Andras Gyomrey

-4

ইতিমধ্যে হাইফেনেটেড শব্দের হাইফেনেশন এড়াতে আমি ~পিছনের জায়গার সাথে একযোগে অ-ব্রেকিং স্পেস ব্যবহার করেছি \!। উদাহরণস্বরূপ, কমান্ড

3~\!\!\!\!-~\!\!\!D

পাঠ্যটিতে ব্যবহৃত, 3-D শব্দে হাইফেনেশন দমন করে। সম্ভবত সেরা সমাধান নয়, তবে এটি আমার পক্ষে কাজ করেছে!


4
এটি কী জিজ্ঞাসা করা হয়েছিল তার বিপরীত প্রশ্নের উত্তর দিচ্ছে । এছাড়াও, যে ব্যক্তি খুঁজে বলেন যে বিন্দু থেকে আপনার পোস্টের সম্পাদনা করার চেষ্টা যেমন, সেখানে আপনি কি করতে অনেক ভালো উপায়: \mbox{3-D}
zwol
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.