我正在通过 pdflatex 和 perl 自动生成 pdf,但在 pdflatex 中打印这些字符时遇到了问题:Љ Б Д И П و △ ★ ✚ ✠ ✤ ✶ ✸ ❀ ❃
下面是我使用的语句模板,例如插入了❃:
\documentclass[10pt]{scrartcl}
\usepackage[german,english,greek]{babel}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage{graphicx}
\usepackage[utf8x]{inputenc}
\usepackage[
pdftex,
bookmarks=true,
bookmarksopen=true,
bookmarksnumbered=true,
pdfstartpage=1
]
{hyperref}
\usepackage{footnote}
\usepackage{rotating}
\usepackage{tablefootnote}
\usepackage{nonfloat}
\usepackage{ctable}
\usepackage{lipsum}
\usepackage{bibentry}
\usepackage{color}
\usepackage{array}
\usepackage[margin=3cm]{geometry}
\title{\bfseries Test}
\date{}
\begin{document}
\section*{1}
❃
\end{document}
我已经通过以下方式在 Ubuntu 上安装了语言包
sudo apt-get install texlive-lang-european texlive-lang-cyrillic texlive-lang-german texlive-lang-greek
我认为 Љ Б Д И П 是西里尔字母,但如果我使用
\usepackage[german,english,greek,russian]{babel}
那么希腊语 Α Γ Δ Ε Η Ι Λ Μ Ν Ο Ρ Σ Τ Υ Χ Ω(也包含在我的字符集中)将失败,而 Љ Б Д И П 将成功。所以看起来“希腊语和俄罗斯语”是不相容的?有没有简单的方法可以解决这个问题?是否有可能通过某种方式对“Љ Б Д И П و △ ★ ✚ ✠ ✤ ✶ ✸ ❀ ❃”进行编码,而无需将“俄罗斯”添加到 babel?其他符号定义在哪里? ❀ 例如是 U+2740。我想我必须使用:
\DeclareUnicodeCharacter{2740}{ ... }
然而我必须知道❀的乳胶版本。
答案1
以下是我必须做的事情:
- 套餐
代码:
\documentclass[a4paper,12pt,landscape,enabledeprecatedfontcommands]{scrartcl}
\usepackage[utf8x]{inputenc}
\usepackage[T1,T2A]{fontenc}
\usepackage[russian,arabic,farsi,greek,german]{babel}
\usepackage{arabtex}
符号 △ ★ ✚ ✠ ✤ ✶ ✸ ❀ ❃:部分来自https://en.wikibooks.org/wiki/LaTeX/Special_Characters
我使用 pifont 和 \ding
代码:
\usepackage{pifont}
\DeclareUnicodeCharacter{10048}{ \ding{95} }
\DeclareUnicodeCharacter{10051}{ \ding{93} }
...
- 对于西里尔字符 Љ Б Д И П 和希腊字符 Α..Ω:
代码:
\textcyrillic{П}
\textgreek{Ω}
- 符号 و :部分来自https://en.wikibooks.org/wiki/LaTeX/Internationalization#Arabic_script和https://en.wikipedia.org/wiki/ArabTeX
代码:
\RL{w}
结论:
- 德语、英语由 babel 处理
- 西里尔符号由 \textcyrillic{} 处理
- 希腊符号由 \textgreek{} 处理
- 阿拉伯符号由 \RL{} 处理
- wingding 条目由 pifont、\ding 和 \DeclareUnicodeCharacter 处理
笔记:
- babel usepackage 语句中的语言似乎互相覆盖。因此使用 \textcyrillic 和 \textgreek。
- 我使用 utf8x 作为输入
- 当使用 arabtex 时,我还必须添加 enabledeprecatedfontcommands
答案2
最简单的方法是使用 xelatex\lualatex 和具有您需要的所有字形的字体:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{FreeSerif}
\begin{document}
Adding special characters
Љ Б Д И П و △ ★ ✚ ✠ ✤ ✶ ✸ ❀ ❃
in \LaTeX
\end{document}
不幸的是,大多数字体都不是这种情况,因此,根据您所需的字体样式和符号,最好只更改主字体,如示例中所示,或者仅在宏中更改字体以使用不同的字体键入选定的符号,或者从包中获取这些符号bbding
(amssymb
至少为示例中的一些星号和十字号提供命令),或者甚至使用宏,符号仅由小图像(约 1em 左右...)提供。如果图像是导出为 pdf 的矢量绘制(svg),则结果是完美的。