Un archivo .tex es, en última instancia, una secuencia de bytes, y el motor debe leerlos con la codificación de caracteres correcta para interpretarlos bien. Los códigos de salto de línea también importan para editar y hacer diffs. El japonés ha usado históricamente varias codificaciones, y ahí es donde mucha gente tropieza. Resumen: hoy conviene estandarizar en UTF-8 + LF. Esta página cubre codificaciones, saltos de línea y la herramienta de conversión nkf.
Codificaciones — UTF-8 hoy
Una codificación de caracteres es la regla que asigna bytes a caracteres. El japonés ha usado históricamente Shift_JIS (Windows antiguo), EUC-JP (Unix antiguo) e ISO-2022-JP (el “JIS code” del correo); hoy UTF-8 de Unicode es el estándar universal. TeX Live y LaTeX recientes usan UTF-8 por defecto, así que guardar tu .tex como UTF-8 evita la mayoría de textos corruptos. Una discrepancia de codificación produce el clásico texto ilegible (*mojibake*).
| Codificación | Dónde se usaba |
|---|---|
UTF-8 | Estándar actual (Unicode); única opción para trabajos nuevos |
Shift_JIS | Entornos Windows antiguos |
EUC-JP | Entornos Unix antiguos |
ISO-2022-JP | Correo, “JIS code” |
Con (u)pLaTeX puedes indicar explícitamente la codificación de entrada con -kanji=utf8 (ver “Comandos de compilación”).
Saltos de línea — LF / CRLF / CR
Las líneas terminan con bytes de control invisibles: LF (\n, Unix/macOS), CRLF (\r\n, Windows) y CR (\r, Mac clásico). LaTeX tolera todos en general, pero los saltos mezclados dentro de un archivo o equipo ensucian los diffs y pueden romper algunas herramientas. Estandariza en LF y normaliza con .gitattributes en Git.
# .gitattributes — 改行を正規化 / normalize newlines
*.tex text eol=lfConvertir con nkf
nkf (Network Kanji Filter) es la herramienta estándar para detectar y convertir codificaciones japonesas y saltos de línea. Primero inspecciona con nkf -g file; luego convierte a UTF-8 con -w, a Shift_JIS con -s, a EUC-JP con -e o a ISO-2022-JP con -j. Los saltos usan -Lu/-Lw/-Lm, y --overwrite reescribe el archivo en sitio.
| Opción | Qué hace |
|---|---|
-g | Detecta codificación y salto de línea actuales (sin convertir) |
-w | Convertir a UTF-8 (sin BOM) |
-s / -e / -j | Convertir a Shift_JIS / EUC-JP / ISO-2022-JP |
-Lu / -Lw / -Lm | Convertir saltos de línea a LF / CRLF / CR |
--overwrite | Sobrescribir el archivo de entrada |
nkf -g old.tex # 文字コードを判定 / detect the encoding
nkf -w -Lu --overwrite old.tex # UTF-8 + LF に変換して上書き / to UTF-8 + LF, in placeRecomendación práctica
- Estandariza todo en UTF-8 + LF, nuevo o antiguo.
- Convierte en lote fuentes antiguas Shift_JIS/EUC con
nkf -w -Lu --overwrite *.tex. - Fuerza entrada UTF-8 para (u)pLaTeX con
-kanji=utf8cuando haga falta. - Normaliza saltos de línea con
.gitattributesen Git; comprueba connkf -gsi dudas.