¿Cómo puedo obtener el carácter utf8?

¿Cómo puedo obtener el carácter utf8?

Quiero hacer referencias cruzadas para que las secciones sean símbolos, pero después de usar la descripción proporcionada recibí un informe de error que decía que el carácter del teclado utilizado no está definido en la codificación de entrada 'utf8'. ¿Cuál podría ser la salida?

Respuesta1

Si intenta componer una prueba codificada en utf8 en LaTeX (con un motor TeX estándar debajo) usando el inputencpaquete, sucede lo siguiente:

  • LaTeX analizará un carácter utf8 leyendo la cantidad correcta de caracteres de 8 bits, que pueden ser uno o más, según el carácter que se encuentre en el documento.
  • Esto le dará a LaTeX un carácter Unicode con un cierto número Unicode (después de algunos cálculos), digamos00A1
  • Ahora LaTeX intentará componer este carácter, pero para hacerlo, es necesario que haya una fuente (cargada) que realmente contenga el glifo que representa el carácter Unicode y...
  • LaTeX necesita saber ese hecho.
  • LaTeX aprende sobre esto a través de una cantidad bastante grande de declaraciones de la forma: \DeclareUnicodeCharacter{00A1}{\textexclamdown}.
  • Esto traduce el número Unicode a una representación de caracteres internos de LaTeX (LICR).
  • Pero esto no sería muy útil si no hay ningún glifo que pueda usarse para imprimir este carácter. Por lo tanto, el inputencpaquete sólo configura aquellos caracteres Unicode para los que hay fuentes cargadas que los contienen.
  • Por ejemplo, si carga T1fuentes codificadas a través de \usepackage[T1]{fontenc}LaTeX carga internamente todas las declaraciones definidas en el archivo t1enc.dfu. (Para cada codificación de fuente LaTeX establecida existe un .dfuarchivo correspondiente).
  • Pero Unicode cubre una gran cantidad de caracteres, por lo que si coloca uno en su documento que no tiene ninguna codificación de fuente utilizada por LaTeX, terminará con el mensaje de error que le indica que este carácter Unicode no está configurado.

Entonces, ¿qué se puede hacer para resolver esto en un documento en particular?

  • El primer paso es identificar el número Unicode del carácter que LaTeX no conoce (esto debería aparecer en el mensaje de error).
  • El segundo paso, que es un poco más complicado, es determinar si hay alguna fuente TeX que realmente contenga este carácter y cuál es la codificación que tiene esa fuente. No hay buenos consejos aquí, pero hay algunos documentos que describen las codificaciones de fuentes estándar de LaTeX.
  • Alternativamente, se puede intentar agregar al menos las T1codificaciones y TS1al documento, ya que esto podría resolver el problema (si se trata de un carácter "occidental" bastante común).
  • También podría darse el caso de que puedas "falsificar" el carácter, por ejemplo, si tienes algún tipo de guión (de los cuales hay varios diferentes en Unicode) y tu editor agrega uno que LaTeX no conoce, puedes agregar una \DeclareUnicodeCharacterdeclaración. con el segundo argumento que contiene un carácter de reemplazo que sí existe.

De lo contrario, me temo que la única respuesta es usar un carácter diferente o usar un motor basado en TeX que esté completamente habilitado para Unicode y pueda acceder a fuentes Unicode con conjuntos de caracteres grandes de forma nativa.

Se puede encontrar documentación más elaborada sobre esto en el código fuente documentado: utf8ienc.pdfque se encuentra en la distribución LaTeX o se puede generar a partir del .dtxarchivo.

Respuesta2

Tuve el mismo problema cuando un amigo quería componer un libro sobre poesía latina y quería usar directamente vocales con marcas de longitud como ō y ŏ (largaybreve).

El truco que encontré estaba envuelto en un paquete.newunicodechar.

Dicho

\usepackage{newunicodechar}
\newunicodechar{ō}{\={o}}
\newunicodechar{ŏ}{\u{o}}

es exactamente lo mismo que hacer

\DeclareUnicodeCharacter{014D}{\={o}}
\DeclareUnicodeCharacter{014F}{\u{o}}

pero evita la carga de buscar en la tabla Unicode.

Por supuesto, hay que asegurarse de que lo que hay en el texto de reemplazo pueda ser producido por las fuentes que estamos cargando, lo que podría ser el caso de una "marca de sección".

Ver tambiénMacro para tomar un carácter como argumento, activarlo y luego definirlo.

Usar este paquete tiene otra ventaja; supongamos que desea cambiar a XeLaTeX o LuaLaTeX para procesar el documento; entonces un personaje como

información relacionada