나는 같은 문제가 있었다. 내가 사용 hyphenat 또는 플러스 다음 매크로를 :
\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
이것은 latex3의 expl3 패키지를 사용합니다.
-
앞으로 더 많은 대시가 오는지 확인하기 위해 앞으로 스캔하는 활성 문자를 만듭니다 . 그렇다면, 그것은을 유지 -
, 확인합니다 --
및 ---
작업을 계속. 그렇지 않은 경우 \hyp
하이픈 에서 명령이되어 나머지 단어에서 단어 분리를 활성화합니다. 이것은 명시적인 하이픈이 포함 된 모든 단어를 정상적으로 하이픈으로 연결하는 일반적인 솔루션입니다.
참고 -
완전히 확장되지 않은 매크로가된다, 그래서 기대하지 않을 수 있습니다 다른 패키지를로드 한 후이 포함하려고 -
매크로로를
편집 : 이것은 내 두 번째 버전이며 첫 번째 버전은 {
또는 }
하이픈 뒤에 올 때 덜 견고했습니다 . 이 -
버전은 아니지만 첫 번째 버전과 달리이 버전은 완전히 확장 할 수 없습니다.