有没有办法在 LuaTex 中自动生成版权信息?
理想情况下,我想自动生成一个文件(纯文本),列出不同的字体和字体系列确实出现在 tex(LuaTex)文档中,以防乳胶替换丢失的字体或未声明特定的字体系列。
谢谢你!
答案1
您可以pdffonts
输入一个脚本,以便在编译文档后自动生成您想要的文本文件texfonts.sh
:
#!/bin/sh
set -e
INFILE="$1"
latexmk -pdf -lualatex "$INFILE"
pdffonts "${INFILE%.tex}.pdf" > "${INFILE%.tex}-fonts.txt"
这是一个用于演示的示例文件test.tex
:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}
\setsansfont{TeX Gyre Heros}
\setmonofont{TeX Gyre Cursor}
\newfontfamily{\chinesefont}{FandolFang}
\newfontfamily{\greekfont}{EB Garamond}
\usepackage{sectsty}
\allsectionsfont{\sffamily}
\usepackage{lipsum}
\begin{document}
\section{Hello}
\lipsum[1]
\subsection{Unicode}
\begin{tabular}{ll}
Greek & {\greekfont λόγος} \\
Mandarin & {\chinesefont 我们爱狗。} \\
\end{tabular}
\subsection{World}
\textbf{\lipsum[2]}
\section{Code}
\verb|\relax\bye|
\end{document}
运行sh texfonts.sh test
,将会有两个输出:文本文件test-fonts.txt
和PDF。
test-fonts.txt
:
name type encoding emb sub uni object ID
---------------------------------------- ----------------- ---------------- --- --- --- ---------
DETGWH+TeXGyreHeros-Bold-Identity-H CID Type 0C Identity-H yes yes yes 5 0
FHSMPY+TeXGyrePagella-Regular-Identity-H CID Type 0C Identity-H yes yes yes 7 0
NRRIPR+EBGaramond12-Regular-Identity-H CID Type 0C Identity-H yes yes yes 9 0
OAALEX+FandolFang-Regular-Identity-H CID Type 0C Identity-H yes yes no 11 0
JRCOOU+TeXGyrePagella-Bold-Identity-H CID Type 0C Identity-H yes yes yes 13 0
VTYOBX+TeXGyreCursor-Regular-Identity-H CID Type 0C Identity-H yes yes yes 15 0