语境
我正在使用 Sphinx 和 latexpdf 为我的项目构建 reStructured 文档。该文档提取了它无法控制的远程数据(仅转义/解析等)。
我当前的构建命令是:
make latexpdf; make html;
我最近遇到了错误,当 latexpdf 在尝试解析的第一个文件中遇到某些 UTF-8 字符时,这些错误导致我的 Bitbucket Pipelines 停止。
我发现解决UTF-8问题的方法是:
通过以下DeclareUnicodeCharacter
“命令”解决了该问题:
#conf.py
...
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
#'preamble': r'\DeclareUnicodeCharacter{FF08}{$\bullet$}',
'preamble': r'''
\DeclareUnicodeCharacter{FF08}{$\bullet$}
\DeclareUnicodeCharacter{FF09}{$\bullet$}
\DeclareUnicodeCharacter{FF0C}{$\bullet$}
\DeclareUnicodeCharacter{2161}{$\bullet$}
''',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
...
}
...
上述设置将以下 UTF-8 字符转换为项目符号:
- U+FF08
- U+FF09
- 暂无相关信息
- U+2161
因此,我通过抑制该问题解决了该问题。
我用项目符号替换它的唯一原因是我从网上找到的一个解决方案中借用了该代码。
除此之外{$\bullet$}
,还可以在“命令”的第二个“参数”中插入哪些其他值DeclareUnicodeCharacter
?
在哪里可以找到这里可用的值列表?
答案1
该参数采用任意乳胶代码,您可以输入{my name is John Walker}
任何您想要的内容。
但是您显示的设置相当奇怪。U+FF08 是全宽左括号,因此是一种(
用于全宽 CJK 排版的形式,但您将其设置为$\bullet$
?
U+FF09 是匹配)
U+FF0C 是全宽逗号,同样通常不会排版为项目符号。
并且 U+2161 是罗马数字二,应该排版为 ii 而不是项目符号。