Saltar al contenido

Kerning con selnolig

Este dilema se puede solucionar de variadas maneras, pero nosotros te enseñamos la solución más completa para nosotros.

Solución:

Un problema práctico importante, y francamente irritante, cuando se divide en términos tipográficamente inapropiados fl y ffl ligaduras es la cantidad de espacio en blanco (si corresponde) debe insertarse entre f (o ff) y l. Este problema no surge al romper ff ligaduras (cf “shelfful” y la captura de pantalla a continuación), y generalmente es un problema menos molesto al dividir fi (p. ej., “aufisst” en alemán) y ffi (por ejemplo, “Stoffisolierung”) ligaduras.

La cantidad “correcta” de espacios en blanco que se debe insertar entre f (o ff) y l pasa a depender crucialmente de las formas exactas de la f y ff glifos. Para algunas fuentes, como Palatino, Aldus y Dante, no se necesitan espacios en blanco adicionales, ya que estas fuentes ‘ f y ff Los glifos tienen “brazos” bastante cortos que no chocan con el l glifo incluso si no se insertan espacios en blanco. (Aparte: esta es probablemente una característica de diseño deliberada de estas fuentes). babel paquete "| El método está programado para insertar 0.03em de espacios en blanco. Si bien esta cantidad está bien para Computer Modern y Latin Modern, en realidad es demasiado para Palatino por un lado y no suficiente para fuentes como EB Garamond, Caslon, Sabon y Linux Liberine O por el otro. Para EB Garamond, por ejemplo, parece 0.1em – o más de tres veces la cantidad insertada con babel‘s "| método – es la cantidad de espacio en blanco que se debe insertar si el f y l los glifos absolutamente, positivamente, no deben tocarse entre sí. En mi opinión, la palabra escrita “Verzweiflung” se ve horrible si se insertan 0,1 em de espacios en blanco: un problema: lo inapropiado fl ligadura – ha sido reemplazada por un problema – el espacio desagradable dentro de la palabra – ¡eso es casi tan malo! (Otro aparte: tal vez la “regla tipográfica” que mencionas, que los glifos adyacentes no ligados no deben tocarse, deba reconsiderarse).

La verdadera solución al romper fl y ffl ligaduras, entonces, es usar variantes de los glifos f y ff que tienen brazos “cortos”, es decir, brazos que no sobresalen (mucho) hacia la derecha y, por lo tanto, no chocan con un glifo “alto” como l. Desafortunadamente, muy pocas fuentes ofrecen actualmente glifos de brazos tan cortos. Solo conozco EB Garamond y Linux Libertine como familias de fuentes que las proporcionan. (Tediosamente, las “ranuras” donde EB Garamond y Linux Libertine almacenan sus variantes f de brazos cortos no son las mismas. Esto hace que programar un uso automatizado de los glifos de brazos cortos sea bastante tedioso y propenso a errores. Esto también es por qué no me he movido para implementar el enfoque short-f en el selnolig paquete…)

Otra solución, que puede o no estar disponible para usted, es utilizar una fuente como Palatino cuyo f y ff Los glifos tienen brazos cortos y, por lo tanto, no chocan con el rastro. l glifos.


La siguiente tabla compara los resultados de varios métodos para dividir fl ligaduras. Tenga en cuenta que el método “nuevo” que se usa a continuación es similar al que usó David Carlisle en su respuesta, excepto que usa un llamado “discrecional” para continuar permitiendo que los saltos de línea (con guiones) ocurran en la palabra “Verzweiflung” . Tenga en cuenta también que no es necesario insertar espacios en blanco entre los 2 f glifos en shelfful, para cualquiera de las fuentes consideradas aquí.

ingrese la descripción de la imagen aquí

documentclass[english,ngerman]article
usepackagefontspec,babel,selnolig,booktabs,array,geometry
providecommandxx
newcolumntypeL>xxl
newcolumntypeR>xxr
setlengthtabcolsep4pt

usepackageluacode
beginluacode
function breaklig (s)
    s = s:gsub ( 'Verzweiflung' ,
        'Ver\-zweif\discretionary-\kern0.10emlung' )
    return s
end
luatexbase.add_to_callback( 'process_input_buffer' ,
    breaklig , 'break ligatures in specified words' )
endluacode

begindocument

begintabular@[email protected]
&& multicolumn2cttfamily selnolig & multicolumn1c & multicolumn1cttfamily "new" meth. & multicolumn1[email protected]ttfamily f.short\ && multicolumn2cttfamily ("whatsit") & multicolumn1cttfamily (0.03em) & multicolumn1cttfamily (0.10em) & multicolumn1[email protected](if available) \ cmidrule(lr)3-4 cmidrule(lr)5-5 cmidrule(lr)6-6 cmidrule(l)7-7 % start with default font (Latin Modern) setmainfontLatin Modern Roman Latin Modern &ff fl & shelfful & Verzweiflung & Verzweif"|lung & Verzweiflung \ gdefxxsetmainfontEB Garamond[Scale=MatchLowercase] xx EB Garamond &ff fl & shelfful & Verzweiflung & Verzweif"|lung & Verzweiflung & Verzweisymbol983911lung\ gdefxxsetmainfontAdobe Caslon Pro[Scale=MatchLowercase] xx Caslon &ff fl & shelfful & Verzweiflung & Verzweif"|lung & Verzweiflung \ gdefxxsetmainfontSabon Next LT Pro[Scale=MatchLowercase] xx Sabon &ff fl & shelfful & Verzweiflung & Verzweif"|lung & Verzweiflung \ gdefxxsetmainfontPalatino Linotype[Scale=MatchLowercase] xx Palatino &ff fl & shelfful & Verzweiflung & Verzweif"|lung & Verzweiflung \ gdefxxsetmainfontLinux Libertine O[Scale=MatchLowercase] xx Linux Lib. O &ff fl & shelfful & Verzweiflung & Verzweif"|lung & Verzweiflung & Verzweisymbol57568-lung\ endtabular bigskip setmainfontEB Garamond Another comparison of the methods' outputs (EB Garmond only): begintabular@[email protected] uselighöflich & useligtrefflich & useligaufisst & bad!\ höflich & trefflich & aufisst & selnolig \ höf"|lich & treff"|lich & auf"|isst & babel verb+"|+ \ höfdiscretionary-kern0.10emlich & treffdiscretionary-kern0.10emlich & aufdiscretionary-kern0.10emisst & ``new'' method --- not good either \ hösymbol983911-lich & tresymbol983904-lich & ausymbol983911-isst & f.short & f_f.short --- best! endtabular enddocument

No creo que jamás harías esto en inglés, pero en otros idiomas con afición por las palabras compuestas es más un problema.

ingrese la descripción de la imagen aquí

documentclassarticle

directlua
function breaklig (s)
return 
string.gsub(
string.gsub(
s,
'leaflet','leafstring\kern.5em let'),
'shelfful','shelfstring\kern.5em ful')
end
luatexbase.add_to_callback('process_input_buffer',breaklig,'break ligatures in specified words')

begindocument


I once wrote a leaflet that (or was it a pamphlet) that had a flipped flyleaf.
Actually I have a shelfful of them.

enddocument

Si tienes algún reparo o disposición de beneficiar nuestro noticia te recomendamos añadir una explicación y con deseo lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *