W dokumencie LaTeX, który piszę, otrzymuję przepełniony hbox ostrzeżenie w powodu słowa „multidyscyplinarny”, które jest renderowane na końcu wiersza.
Mogę pozbyć się tego konkretnego ostrzeżenia, zmieniając je na multi-discipli\-nary
, ale ten sam problem wystąpi w innym miejscu, ponieważ to słowo jest często używane w artykule.
Chciałbym \hyphenation{}
zamiast tego użyć polecenia, ale oczywiście mój wstępny \hyphenation{multi-disci-pli-na-ry}
myślnik nie działa, ponieważ nie rozumie poprawnie pierwszej kreski.
Jakiej inkantacji potrzebuję, aby uzyskać prawidłowe wcięcie w słowie, które już zawiera myślnik?
Pytanie dodatkowe: Gdzie sam mogłem znaleźć odpowiedź na to pytanie?
latex
hyphenation
Gyom
źródło
źródło
Odpowiedzi:
Z https://texfaq.org/FAQ-nohyph :
Lub możesz
\newcommand
użyć polecenia, które rozwija się domulti-discipli\-nary
(użyj Wyszukaj + Zamień wszystko, aby zamienić istniejące słowa).źródło
\newcommand
wszędzie (dlatego szukałem czegoś na podstawie\hyphenation
). Domyślam się, że domyślnie zachowam to „tak jak jest” i dodam ręcznie wyraźne łączniki, gdy Latex narzeka na przepełnione hboxy.Problem (jak zauważył KennyTM) polega na tym, że LaTeX nie dzieli wyrazów z myślnikami. Na szczęście istnieje standardowy pakiet (część ncctools), który rozwiązuje ten właśnie problem, o nazwie
extdash
. Definiuje nowe polecenia dotyczące łączników i myślników, które nie zakłócają dzielenia wyrazów i które mogą zezwalać lub zapobiegać łamaniu linii w myślniku / myślniku. Wolę używać go zshortcuts
opcją, więc mogę użyć np.\-/
Zamiast\Hyphdash
. Oto, czego chcesz:\usepackage[shortcuts]{extdash}
...multi\-/disciplinary
Aby zapobiec łamaniu tego łącznika, użyj
multi\=/disciplinary
(Na marginesie: The Chicago Manual of Style radzi porzucić łączniki z afiksami typu `` multi '', chyba że bez niego słowo jest niejednoznaczne lub niezrozumiałe).
źródło
Package hyperref Warning: Token not allowed in a PDF string
. Tam inne proponowane rozwiązanie (\def\hyph{-\penalty0\hskip0pt\relax}
) działa.\texorpdfstring
(co zapewnia kompilację warunkową dla ciągów znaków, które trafiają do tytułów rozdziałów). Ukrywam zastosowania wewnątrz semantycznych makr (prawdopodobnie tutaj\multidisciplinary
). Tak, to nie jest idealne.Używam pakietu,
hyphenat
a następnie piszę słowa złożone, takie jak fińskie słowo Internet-yhteys (ang. Internet connection ) jakoInternet\hyp yhteys
. Wygląda głupkowato, ale wydaje się być najbardziej eleganckim sposobem, jaki znalazłem.źródło
multi-disciplinary
nie będą dzielone, jak wyjaśnia kennytm. Alemulti-\-disciplinary
ma takie same możliwości dzielenia wyrazów comultidisciplinary
.Przyznaję, że nie wiem, dlaczego to działa. Różni się od opisanego tutaj zachowania (wyróżnienie moje):
źródło
-
przez-\-
nie zmienia wyjścia, przynajmniej przy domyślnych ustawieniach w overleaf.com (prawdopodobnie pdflatex, ale na odwrocie nie ma tego właściwie).Miałem ten sam problem. Używam łącznika oraz następującego makra:
Zauważ, że używa to pakietu expl3 z latex3.
Sprawia, że
-
aktywna postać przeskanuje się do przodu, aby zobaczyć, czy następuje po niej więcej myślników. Jeśli tak, pozostaje-
, aby upewnić się--
i---
nadal działać. Jeśli nie, staje się\hyp
poleceniem z łącznika, umożliwiając dzielenie wyrazów w pozostałej części słowa. Jest to ogólne rozwiązanie, które powoduje, że wszystkie wyrazy zawierające wyraźne łączniki są normalnie łączone.Zwróć uwagę, że
-
staje się makrem, które nie jest w pełni rozwijalne, więc spróbuj dołączyć to po załadowaniu innych pakietów, które mogą nie oczekiwać-
makraEdycja: To jest moja druga wersja, pierwsza wersja była mniej rozbudowana, gdy znak
{
lub}
następował po łączniku. Ten nie jest, ale w przeciwieństwie do pierwszej wersji-
w tej wersji nie jest w pełni rozszerzalny.źródło
Możesz np. Zdefiniować polubienie
a potem napisz
Zwróć uwagę, że pakiet języka rosyjskiego babel ma własny zestaw myślników, które nie zabraniają dzielenia wyrazów,
"~
na przykład (podwójny cudzysłów + tylda).źródło
multi-\hskip0pt disciplinary
. Podobnie jak w tobie MWE, będzie zbytnio hipenować. Po prostu ustaw\setlength{\textwidth}{0.1cm}
, aby spróbować.Odpowiedziałem tutaj na coś podobnego: LaTeX rozbija zbyt wiele słów
Powiedziałem:
powinieneś umieścić gdzieś w preambule karę za dzielenie wyrazów:
Wartość 750 odpowiadała moim potrzebom w przypadku układu dwóch kolumn na papierze listowym (8,5 x 11 cali) z czcionką o rozmiarze 12 punktów. Dostosuj wartość do swoich potrzeb. Im wyższa liczba, tym mniej dzielenia wyrazów. Możesz również rzucić okiem na pakiet dzielenia, który zapewnia nieco więcej niż tylko karę za dzielenie wyrazów
źródło
Aby uniknąć dzielenia wyrazów w już podzielonym wyrazie, użyłem nierozdzielającej spacji
~
w połączeniu ze spacją wsteczną\!
. Na przykład polecenieużyte w tekście, pomiń dzielenie wyrazów w wyrazach 3-D. Prawdopodobnie nie jest to najlepsze rozwiązanie, ale zadziałało!
źródło
\mbox{3-D}
.