asciidoc-pdf 不转换代码块中的表情符号
asciidoc-pdf doesnt convert emojis in code blocks
我用 asciidoc 写了一个文本,当我用 asciidoc-pdf 转换时,它没有从这个代码块转换表情符号:
[source,java]
----
public static void lines() {
System.out.print("♥♥♥♥♥♥♥♥♥♥");
}
----
pdf 中的结果如下所示:
public static void lines() {
System.out.print("¬¬¬¬¬¬¬¬¬¬");
}
是的,我使用了自定义主题并设置了后备字体。
这是 yaml 主题文件:
font:
catalog:
PTSerif:
normal: PTSerif-Regular.ttf
italic: PTSerif-Italic.ttf
bold: PTSerif-Bold.ttf
bold_italic: PTSerif-BoldItalic.ttf
EmojiFallback:
normal: EmojiFallback.ttf
italic: EmojiFallback.ttf
bold: EmojiFallback.ttf
bold_italic: EmojiFallback.ttf
fallbacks:
- EmojiFallback
base:
font-family: PTSerif
希望你能帮助我。我很感激任何帮助
很长一段时间后,我找到了帮助我的人。并给我这些修复方法。
最简单的方法是扩展默认主题并将添加的内容合并到字体目录中:
extends: default
font:
catalog:
merge: true
PTSerif:
normal: PTSerif-Regular.ttf
italic: PTSerif-Italic.ttf
bold: PTSerif-Bold.ttf
bold_italic: PTSerif-BoldItalic.ttf
EmojiFallback: EmojiFallback.ttf
fallbacks:
- EmojiFallback
base:
font-family: PTSerif
您可以将代码块配置为使用 TTF 等宽字体,而不是扩展默认主题:
font:
catalog:
PTSerif:
normal: PTSerif-Regular.ttf
italic: PTSerif-Italic.ttf
bold: PTSerif-Bold.ttf
bold_italic: PTSerif-BoldItalic.ttf
PTMono:
normal: PTMono-Regular.ttf
italic: PTMono-Italic.ttf
bold: PTMono-Bold.ttf
bold_italic: PTMono-BoldItalic.ttf
EmojiFallback: EmojiFallback.ttf
fallbacks:
- EmojiFallback
base:
font-family: PTSerif
code:
font-family: PTMono
最后,Asciidoctor PDF 现在提供了一种表情符号字体,它是在 default-with-fallback-font 主题中配置的。所以你可以扩展那个主题:
extends: default-with-fallback-font
font:
catalog:
merge: true
PTSerif:
normal: PTSerif-Regular.ttf
italic: PTSerif-Italic.ttf
bold: PTSerif-Bold.ttf
bold_italic: PTSerif-BoldItalic.ttf
fallbacks: [M+ 1p Fallback, Noto Emoji]
base:
font-family: PTSerif
我用 asciidoc 写了一个文本,当我用 asciidoc-pdf 转换时,它没有从这个代码块转换表情符号:
[source,java]
----
public static void lines() {
System.out.print("♥♥♥♥♥♥♥♥♥♥");
}
----
pdf 中的结果如下所示:
public static void lines() {
System.out.print("¬¬¬¬¬¬¬¬¬¬");
}
是的,我使用了自定义主题并设置了后备字体。 这是 yaml 主题文件:
font:
catalog:
PTSerif:
normal: PTSerif-Regular.ttf
italic: PTSerif-Italic.ttf
bold: PTSerif-Bold.ttf
bold_italic: PTSerif-BoldItalic.ttf
EmojiFallback:
normal: EmojiFallback.ttf
italic: EmojiFallback.ttf
bold: EmojiFallback.ttf
bold_italic: EmojiFallback.ttf
fallbacks:
- EmojiFallback
base:
font-family: PTSerif
希望你能帮助我。我很感激任何帮助
很长一段时间后,我找到了帮助我的人。并给我这些修复方法。
最简单的方法是扩展默认主题并将添加的内容合并到字体目录中:
extends: default
font:
catalog:
merge: true
PTSerif:
normal: PTSerif-Regular.ttf
italic: PTSerif-Italic.ttf
bold: PTSerif-Bold.ttf
bold_italic: PTSerif-BoldItalic.ttf
EmojiFallback: EmojiFallback.ttf
fallbacks:
- EmojiFallback
base:
font-family: PTSerif
您可以将代码块配置为使用 TTF 等宽字体,而不是扩展默认主题:
font:
catalog:
PTSerif:
normal: PTSerif-Regular.ttf
italic: PTSerif-Italic.ttf
bold: PTSerif-Bold.ttf
bold_italic: PTSerif-BoldItalic.ttf
PTMono:
normal: PTMono-Regular.ttf
italic: PTMono-Italic.ttf
bold: PTMono-Bold.ttf
bold_italic: PTMono-BoldItalic.ttf
EmojiFallback: EmojiFallback.ttf
fallbacks:
- EmojiFallback
base:
font-family: PTSerif
code:
font-family: PTMono
最后,Asciidoctor PDF 现在提供了一种表情符号字体,它是在 default-with-fallback-font 主题中配置的。所以你可以扩展那个主题:
extends: default-with-fallback-font
font:
catalog:
merge: true
PTSerif:
normal: PTSerif-Regular.ttf
italic: PTSerif-Italic.ttf
bold: PTSerif-Bold.ttf
bold_italic: PTSerif-BoldItalic.ttf
fallbacks: [M+ 1p Fallback, Noto Emoji]
base:
font-family: PTSerif