我知道 cmr10、cmex10 和 cmsy10 等字体。现在我想知道如何使用 TeX 在字符表中生成符号,例如http://www.math.union.edu/~dpvc/jsmath/symbols/cmex10.html
互联网上是否有一本词典,其中包含如何根据字体对字符表中的每个符号进行 TeX 处理?(例如,给定'\0x41'和字体 cmr10,我想要获得'A',给定'\0x00'和 cmr10,我想要获得'\textGamma')。
PS 这个问题的动机是我尝试从 .tex 文件中提取文本。我最终决定先将 .tex 文件转换为 DVI 文件,然后使用它dviasm
来提取文本,因为这样就无需构建另一个 TeX 引擎。
答案1
“综合 LaTeX 符号列表”的附件是“ rawtables
”pdf 文件,其中包含该列表涵盖的所有字体的字体表,按字母顺序排列。字体表排列显示了呈现给 TeX 的字体中的位置;它不通过 Unicode ID 识别字形。
该系列在 CTAN 上:http://mirrors.ctan.org/info/symbols/comprehensive 并且 pdf 列表有 letter 尺寸或 a4 尺寸。
尽管标题中带有“LaTeX”,但这些字体也可以与纯 TeX 一起使用。
答案2
当用户指定 TeX 时(对于 Plain TeX,请参阅补充),这些表格最容易通过 LaTeX 获得,格式如 OP 所述http://www.math.union.edu/~dpvc/jsmath/symbols/cmex10.html
\documentclass{article}
\usepackage{fonttable}
\begin{document}
\fonttable{cmex10}
\end{document}
可以通过 交替获取相同的字体表\xfonttable{OMX}{cmex}{m}{n}
。
为了回答 OP 关于 cmr10 中字母的具体问题A
,
\documentclass{article}
\usepackage{fonttable}
\begin{document}
\fonttable{cmr10}
\end{document}
但请记住,对于给定的编码方案,即使不打印字体表,人们也知道在哪里可以找到各种字形,特别是对于 ASCII 中可用的标准字形。
补充
对于 Plain TeX 替代方案(fontchart.tex
,位于https://ctan.org/pkg/fontchart?lang=en),以下是 cmr10 的结果:
答案3
LaTeX 字体编码包含每个常用的旧式 LaTeX 编码的字体表。现代工具链fontspec
仅使用 Unicode 编码(别名为 TU)。
如果您希望能够复制粘贴或以其他方式自动转换从 LaTeX 源编译的 PDF 文档中的文本,最好的选择是使用unicode-math
。然后,您的所有字形都已使用 Unicode 编码。
使用非标准编码(如U
)的字体应附带文档。例如,masfonts
手册在附录中附带了所有字体的表格。
答案4
您可以查看 tex4ht 文件。hf-fonts 中有很多插槽位置到 unicode 的映射。例如\texmf-dist\tex4ht\ht-fonts\unicode\cm\cmex.htf
包含如下映射:
'∘' '' 112
'∘' '' 113
'∘' '' 114
'∘' '' 115
'∘' '' 116
'│' '' 117
'┌' '' 118
'║' '' 119
'↑' '' 120
'↓' '' 121
我认为,插槽位置和(la)tex 命令之间的映射更难选择和维护,因为每个包/文档都可以更改或添加命令。