मुझे भी यही समस्या थी। मैं हाइफ़नट का उपयोग करता हूं और साथ ही निम्नलिखित मैक्रो:
\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
हाइफ़नट से कमांड बन जाता है , जिससे बाकी के शब्दों में शब्द टूट जाता है। यह एक सामान्य समाधान है जो उन सभी शब्दों को बनाता है जिनमें सामान्य रूप से स्पष्ट हाइफ़न शामिल हैं।
ध्यान दें कि -
एक मैक्रो बन जाता है जो पूरी तरह से विस्तार योग्य नहीं है, इसलिए अन्य पैकेजों को लोड करने के बाद इसे शामिल करने का प्रयास करें -
जो मैक्रो होने की उम्मीद नहीं कर सकते हैं
संपादित करें: यह मेरा दूसरा संस्करण है, जब एक हाइफ़न {
या }
उसके बाद पहला संस्करण कम मजबूत था । यह एक नहीं है, लेकिन -
इस संस्करण में पहले संस्करण के विपरीत पूरी तरह से विस्तार योग्य नहीं है।