UTF8 的 Seqsplit 问题

UTF8 的 Seqsplit 问题

我使用seqsplit来拆分单元格内的长单词longtable。我也使用utf8x和包。我从这些文件ucs中生成 PDF 。.tex

当单词包含 UTF-8 字符时,序列中的第一个字符会引发错误。

\seqsplit{Música} using utf8x appears as `M[U+FFFD]sica`

这是它引发的错误:

! Package utf8x Error: MalformedUTF-8sequence.

See the utf8x package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.398 .. com} & \seqsplit{Música}

Ifthecharacterisanargument,putitin{}


Package ucs Warning: Unknown character 65533 = 0xFFFD appeared again. on input 
line 398.

如果我删除seqsplit,单词就会正确显示,但我需要使用这个包,也许有人知道我可以使用的替代方案或宏。

最有趣的是,如果单词包含两个或更多 UTF-8 字符,我得到的是:

\seqsplit{Múúsica} `M[U+FFFD]úsica`

仅第一个字符失败,因此我确信 UTF-8 编码已正确完成。

答案1

Unicode 点 > 7 位在 UTF-8 中用几个字节编码。包seqsplit不知道这一点,因为它是为长 DNA/RNA/蛋白质/... 序列编写的。它是错误的自然文本包。语言有规则,允许在单词中使用断点(通常不在每个字母后),并且要求插入连字符。

因此,对于窄列,我建议使用与类似的ragged2e命令进行打包,但允许使用连字符。因此,它可以更好地填充可用空间。\Raggedright\raggedright

然而,如果的序列\seqsplit包含 UTF-8 字符,并且未使用 Unicode TeX 引擎(XeTeX、LuaTeX),则可以对 UTF-8 序列进行分组和保护\seqsplit

\documentclass{article}
\usepackage[utf8x]{inputenc}
\usepackage{seqsplit}
\begin{document}
\seqsplit{M{ú}sica}
\end{document}

结果

相关内容