fonts – ¿Cómo habilitar las funciones de opentype en `font-spec`?

Pregunta:

Estoy usando Emacs 28 (HEAD) en Debian Stable, compilado con HARFBUZZ y cairo (si eso es importante).

Estoy tratando de habilitar las funciones de opentype en la fuente Pragmata Pro (como se muestra aquí ).

(font-spec :family "Iosevka Term SS10" :size 16 :otf '(latn nil nil (dlig))

(font-spec :family "Iosevka Term" :size 16 :otf '(latn nil nil (dlig))

Probé ambos, sin diferencia. Emacs no me muestra ningún error, pero las ligaduras adicionales no funcionan.

Documentación:

font-spec is a function defined in font.c.

Signature
(font-spec ARGS...)

Documentation
Return a newly created font-spec with arguments as properties.

ARGS must come in pairs KEY VALUE of font properties.  KEY must be a
valid font property name listed below:

:family, :weight, :slant, :width

They are the same as face attributes of the same name.  See
set-face-attribute.

:foundry

VALUE must be a string or a symbol specifying the font foundry, e.g. misc.

:adstyle

VALUE must be a string or a symbol specifying the additional
typographic style information of a font, e.g. sans.

:registry

VALUE must be a string or a symbol specifying the charset registry and
encoding of a font, e.g. iso8859-1.

:size

VALUE must be a non-negative integer or a floating point number
specifying the font size.  It specifies the font size in pixels (if
VALUE is an integer), or in points (if VALUE is a float).

:name

VALUE must be a string of XLFD-style or fontconfig-style font name.

:script

VALUE must be a symbol representing a script that the font must
support.  It may be a symbol representing a subgroup of a script
listed in the variable script-representative-chars.

:lang

VALUE must be a symbol whose name is a two-letter ISO-639 language
name, e.g. ja.  The value is matched against the "Additional Style"
field of the XLFD spec of a font, if it's non-empty, on X, and
against the codepages supported by the font on w32.

:otf

VALUE must be a list (SCRIPT-TAG LANGSYS-TAG GSUB [ GPOS ]) to specify
required OpenType features.

  SCRIPT-TAG: OpenType script tag symbol (e.g. deva).
  LANGSYS-TAG: OpenType language system tag symbol,
     or nil for the default language system.
  GSUB: List of OpenType GSUB feature tag symbols, or nil if none required.
  GPOS: List of OpenType GPOS feature tag symbols, or nil if none required.

GSUB and GPOS may contain nil elements.  In such a case, the font
must not have any of the remaining elements.

For instance, if the VALUE is (thai nil nil (mark)), the font must
be an OpenType font whose GPOS table of thai script's default
language system must contain mark feature.

He intentado utilizar GPOS / GSUB de forma independiente. El uso de GPOS me da este error al iniciar:

Error in private config: config.el, (error invalid font property :otf latn nil dlig (nil))

¡Se agradece cualquier ayuda!

Respuesta:

Tampoco he logrado que esto funcione, pero noté una cosa: estás haciendo (font-spec :family "Iosevka Term" :size 16 :otf '(latn nil nil (dlig)) , pero los documentos La cita dice que la lista de GSUB debería ir antes que GPOS, y dlig es algo parecido a GSUB. Así que esperaría

(font-spec :family "Iosevka Term" :size 16 :otf '(latn nil (dlig) nil))

para ser más como lo que necesitas. ¿Tiene que habilitar calt también? ¿Iosevka Term incluso tiene las ligaduras, o es Iosevka Fixed que no tiene caracteres de ancho impar (y por lo tanto no tendría las ligaduras)?

Como dije, esto, por sí solo, no me ha arreglado las cosas, pero tal vez estoy haciendo algo más mal que tú no. Al menos esto es algo que puedes mejorar.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım