En un documento de LaTeX que estoy escribiendo, recibo una advertencia de hbox demasiado completa debido a la palabra "multidisciplinario", que se muestra al final de una línea.
Puedo deshacerme de esta advertencia en particular cambiándola a multi-discipli\-nary
, pero el mismo problema ocurrirá en otros lugares, ya que esta palabra se usa mucho en el documento.
Me gustaría usar el \hyphenation{}
comando en su lugar, pero obviamente mi prueba tentativa \hyphenation{multi-disci-pli-na-ry}
no funciona, porque no comprende el primer guión correctamente.
¿Qué encantamiento necesito para obtener la sangría correcta en una palabra que ya contiene un guión?
Pregunta adicional: ¿Dónde podría haber encontrado la respuesta a esa pregunta yo mismo?
latex
hyphenation
Gyom
fuente
fuente
Respuestas:
De https://texfaq.org/FAQ-nohyph :
O puede usar
\newcommand
un comando que se expanda amulti-discipli\-nary
(use Buscar + Reemplazar todo para reemplazar palabras existentes).fuente
\newcommand
todas partes (por eso estaba buscando algo basado en\hyphenation
). Supongo que lo mantendré '' como está '' de forma predeterminada y agregaré guiones explícitos manualmente cuando Latex se queje de hboxes demasiado llenos.El problema (como señaló KennyTM) es que LaTeX no separa las palabras con guiones. Afortunadamente, hay un paquete estándar (parte de ncctools) que aborda ese mismo problema, llamado
extdash
. Esto define nuevos comandos de guiones y guiones que no interrumpen la separación de sílabas y que pueden permitir o evitar saltos de línea en el guión / guión. Prefiero usarlo con lashortcuts
opción, por lo que puedo usar, por ejemplo, en\-/
lugar de\Hyphdash
. Esto es lo que quieres:\usepackage[shortcuts]{extdash}
...multi\-/disciplinary
Para evitar romperse en ese guion, use
multi\=/disciplinary
(Aparte: el Manual de estilo de Chicago aconseja eliminar los guiones que adjuntan afijos como 'multi', a menos que la palabra sea ambigua o ininteligible sin él).
fuente
Package hyperref Warning: Token not allowed in a PDF string
. Allí, funciona la otra solución propuesta (\def\hyph{-\penalty0\hskip0pt\relax}
).\texorpdfstring
(que proporciona una compilación condicional para las cadenas que van en los títulos de los capítulos). Oculto usos dentro de macros semánticas (aquí, probablemente\multidisciplinary
). Sí, no es perfecto.Utilizo paquete
hyphenat
y luego escribo palabras compuestas como la palabra finlandesa Internet-yhteys (en inglés, conexión a Internet ) comoInternet\hyp yhteys
. Parece ridículo, pero parece ser la forma más elegante que he encontrado.fuente
multi-disciplinary
no se dividirá con guiones, como explica kennytm. Peromulti-\-disciplinary
tiene las mismas oportunidades de separación quemultidisciplinary
tiene.Admito que no sé por qué funciona esto. Es diferente del comportamiento descrito aquí (énfasis mío):
fuente
-
con-\-
no cambia la salida, al menos con la configuración predeterminada en overleaf.com (probablemente pdflatex, pero al dorso en realidad no lo dice).Yo tuve el mismo problema. Yo uso hyphenat más la siguiente macro:
Tenga en cuenta que esto usa el paquete expl3 de latex3.
Hace que sea
-
un personaje activo que escanea hacia adelante para ver si va seguido de más guiones. Si es así, sigue siendo un-
, para asegurarse--
y---
seguir funcionando. De lo contrario, se convierte en el\hyp
comando de hyphenat, lo que permite los saltos de palabras en el resto de la palabra. Esta es una solución genérica que hace que todas las palabras que contienen guiones explícitos se dividan normalmente.Tenga en cuenta que se
-
convierte en una macro que no se puede expandir por completo, así que intente incluirla después de cargar otros paquetes que no esperen-
ser una macro.Editar: Esta es mi segunda versión, la primera versión era menos robusta cuando un guion seguía
{
o}
. Este no lo es, pero a diferencia de la primera versión, el-
de esta versión no es completamente expandible.fuente
Por ejemplo, puede definir como
y luego escribe
Tenga en cuenta que el paquete de idioma ruso de babel tiene su propio conjunto de guiones que no prohíben la separación de sílabas
"~
(comillas dobles + tilde), por ejemplo.fuente
multi-\hskip0pt disciplinary
. Como en tu MWE, se exagerará demasiado. Solo configúrelo\setlength{\textwidth}{0.1cm}
para probar eso.Respondí algo similar aquí: LaTeX divide demasiadas palabras
Dije:
debe establecer una penalización por separación de sílabas en algún lugar de su preámbulo:
El valor de 750 se adapta a mis necesidades de un diseño de dos columnas en papel de carta (8,5 x 11 pulgadas) con una fuente de 12 pt. Ajuste el valor según sus necesidades. Cuanto mayor sea el número, se producirán menos guiones. Es posible que también desee echar un vistazo al paquete de guiones, ya que proporciona algo más que una simple penalización por guiones.
fuente
Para evitar la separación de sílabas en una palabra ya dividida, utilicé un espacio que no se separa
~
en combinación con un espacio al revés\!
. Por ejemplo, comandoutilizado en el texto, suprima la separación con guiones en la palabra 3-D. Probablemente no sea la mejor solución, ¡pero funcionó para mí!
fuente
\mbox{3-D}
.