Dalam dokumen LaTeX yang saya tulis, saya mendapatkan peringatan hbox yang berlebihan karena kata "multi-disiplin", yang kebetulan ditampilkan di akhir baris.
Saya dapat menghilangkan peringatan khusus ini dengan mengubahnya menjadi multi-discipli\-nary
, tetapi masalah yang sama akan terjadi di tempat lain, karena kata ini banyak digunakan di koran.
Saya ingin menggunakan \hyphenation{}
perintah sebagai gantinya, tetapi jelas tentatif saya \hyphenation{multi-disci-pli-na-ry}
tidak berfungsi, karena tidak memahami tanda hubung pertama dengan benar.
Mantra apa yang saya perlukan untuk mendapatkan lekukan yang benar pada kata yang sudah mengandung tanda hubung?
Pertanyaan bonus: Di manakah saya dapat menemukan jawaban untuk pertanyaan itu sendiri?
latex
hyphenation
Gyom
sumber
sumber
Jawaban:
Dari https://texfaq.org/FAQ-nohyph :
Atau Anda dapat
\newcommand
menggunakan perintah yang diperluas kemulti-discipli\-nary
(gunakan Search + Replace All untuk mengganti kata yang ada).sumber
\newcommand
mana - mana (itulah mengapa saya mencari sesuatu berdasarkan\hyphenation
). Saya kira saya akan menyimpannya '' sebagaimana adanya '' secara default, dan menambahkan tanda hubung eksplisit secara manual ketika Latex mengeluh tentang hbox yang terlalu penuh.Masalahnya (seperti yang dicatat KennyTM) adalah bahwa LaTeX tidak akan memenggal kata-kata dengan tanda hubung di dalamnya. Untungnya, ada paket standar (bagian dari ncctools) yang mengatasi masalah itu, bernama
extdash
. Ini mendefinisikan perintah tanda hubung dan tanda hubung baru yang tidak mengganggu tanda hubung, dan yang dapat mengizinkan atau mencegah jeda baris pada tanda hubung / tanda hubung. Saya lebih suka menggunakannya denganshortcuts
opsi, jadi saya bisa menggunakan, misalnya,\-/
daripada\Hyphdash
. Inilah yang Anda inginkan:\usepackage[shortcuts]{extdash}
...multi\-/disciplinary
Untuk mencegah putusnya tanda hubung itu, gunakan
multi\=/disciplinary
(Selain: The Chicago Manual of Style menyarankan untuk menghilangkan tanda hubung yang melampirkan imbuhan seperti 'multi', kecuali kata tersebut ambigu atau tidak dapat dipahami tanpanya.)
sumber
Package hyperref Warning: Token not allowed in a PDF string
. Di sana, solusi lain yang diusulkan (\def\hyph{-\penalty0\hskip0pt\relax}
) berfungsi.\texorpdfstring
(yang menyediakan kompilasi bersyarat untuk string yang masuk ke judul bab). Saya menyembunyikan penggunaan di dalam makro semantik (di sini, mungkin\multidisciplinary
). Ya, itu tidak sempurna.Saya menggunakan paket
hyphenat
dan kemudian menulis kata majemuk seperti kata Finlandia Internet-yhteys (Inggris. Koneksi Internet ) sebagaiInternet\hyp yhteys
. Tampak konyol, tetapi tampaknya cara paling elegan yang pernah saya temukan.sumber
multi-disciplinary
tidak akan diberi tanda hubung, seperti yang dijelaskan oleh kennytm. Tetapimulti-\-disciplinary
memiliki peluang pemenggalan yang sama yangmultidisciplinary
dimilikinya.Saya akui bahwa saya tidak tahu mengapa ini berhasil. Ini berbeda dari perilaku yang dijelaskan di sini (penekanan saya):
sumber
-
dengan-\-
tidak mengubah output, setidaknya dengan pengaturan default di overleaf.com (mungkin pdflatex, tetapi halaman lebih tidak benar-benar mengatakannya).Saya memiliki masalah yang sama. Saya menggunakan tanda hubung plus makro berikut:
Perhatikan bahwa ini menggunakan paket expl3 dari latex3.
Itu membuat
-
karakter aktif yang memindai ke depan untuk melihat apakah diikuti oleh lebih banyak tanda hubung. Jika demikian, itu tetap a-
, untuk memastikan--
dan---
tetap bekerja. Jika tidak, ini menjadi\hyp
perintah dari tanda hubung, memungkinkan pemisah kata di seluruh kata. Ini adalah solusi umum yang membuat semua kata yang berisi tanda hubung eksplisit diberi tanda hubung secara normal.Perhatikan itu
-
menjadi makro yang tidak dapat diperluas sepenuhnya, jadi coba sertakan ini setelah memuat paket lain yang mungkin tidak diharapkan-
menjadi makroSunting: Ini adalah versi kedua saya, versi pertama kurang kuat ketika
{
atau}
diikuti tanda hubung. Yang ini bukan, tetapi tidak seperti versi pertama,-
versi ini tidak dapat diperluas sepenuhnya.sumber
Misalnya Anda dapat mendefinisikan suka
dan kemudian menulis
Perhatikan bahwa paket bahasa Rusia babel memiliki set tanda hubung sendiri yang tidak melarang tanda hubung,
"~
(tanda kutip ganda + tanda gelombang) misalnya.sumber
multi-\hskip0pt disciplinary
. Seperti di MWE Anda, itu akan terlalu banyak menghipen. Atur saja\setlength{\textwidth}{0.1cm}
untuk mencobanya.Saya menjawab sesuatu yang serupa di sini: LaTeX memecah terlalu banyak kata
Saya bilang:
Anda harus menetapkan hukuman tanda hubung di suatu tempat di pembukaan Anda:
Nilai 750 sesuai dengan kebutuhan saya akan tata letak dua kolom di atas kertas surat (8,5x11 in) dengan font 12 pt. Sesuaikan nilainya dengan kebutuhan Anda. Semakin tinggi angkanya, semakin sedikit tanda hubung yang terjadi. Anda mungkin juga ingin melihat paket tanda hubung, ini memberikan sedikit lebih dari sekadar hukuman tanda hubung
sumber
Untuk menghindari tanda hubung pada kata yang sudah diberi tanda hubung, saya menggunakan spasi non-breaking
~
dalam kombinasi dengan spasi mundur\!
. Misalnya, perintahdigunakan dalam teks, tekan tanda hubung di kata 3-D. Mungkin bukan solusi terbaik, tetapi berhasil untuk saya!
sumber
\mbox{3-D}
.