此 MWE 的工作原理如下:
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{luainputenc}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\usepackage{ebgaramond}
\makeatother
\usepackage{babel}
\begin{document}
Here is some plain text in Garamond
\end{document}
但是我将文本放入 itemize 中,如下所示:
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{luainputenc}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\usepackage{ebgaramond}
\makeatother
\usepackage{babel}
\begin{document}
\begin{itemize}
\item Here is some plain text in Garamond
\end{itemize}
\end{document}
我收到一个错误:
! LaTeX Error: Font family `TS1+EBGaramond-LF' unknown.
这是在 Fedora 上使用 pdflatex 和 texlive 2013。
它做使用 luatex 或 xetex 进行编译
知道发生什么事了吗?
答案1
这是您的示例的编辑版本,理论上应该适用于所有引擎:
\documentclass{article}
\usepackage{ifluatex,ifxetex}
\ifluatex\else\ifxetex\else
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\fi\fi
\usepackage[english]{babel}
\usepackage{ebgaramond}
\begin{document}
\begin{itemize}
\item Here is some plain text in Garamond
\end{itemize}
\end{document}
然而,在分发的文件中有一个错误TS1EBGaramond-OsF.fd
,最后几行LF
应该OsF
是:
%% Generated by autoinst on 2013/02/13
%%
\ProvidesFile{TS1EBGaramond-OsF.fd}
[2013/02/13 (autoinst) Font definitions for TS1/EBGaramond-OsF.]
\expandafter\ifx\csname EBGaramond@scale\endcsname\relax
\let\EBGaramond@@scale\@empty
\else
\edef\EBGaramond@@scale{s*[\csname EBGaramond@scale\endcsname]}%
\fi
\DeclareFontFamily{TS1}{EBGaramond-OsF}{}
\DeclareFontShape{TS1}{EBGaramond-OsF}{m}{n}{
<-> \EBGaramond@@scale EBGaramond12-Regular-osf-ts1
}{}
\DeclareFontShape{TS1}{EBGaramond-OsF}{m}{it}{
<-> \EBGaramond@@scale EBGaramond12-Italic-osf-ts1
}{}
\DeclareFontShape{TS1}{EBGaramond-OsF}{m}{sl}{ <-> ssub * EBGaramond-OsF/m/it }{}
\DeclareFontShape{TS1}{EBGaramond-OsF}{b}{n}{ <-> ssub * EBGaramond-OsF/m/n }{}
\DeclareFontShape{TS1}{EBGaramond-OsF}{b}{it}{ <-> ssub * EBGaramond-OsF/m/it }{}
\DeclareFontShape{TS1}{EBGaramond-OsF}{b}{sl}{ <-> ssub * EBGaramond-OsF/m/it }{}
\DeclareFontShape{TS1}{EBGaramond-OsF}{bx}{n}{ <-> ssub * EBGaramond-OsF/m/n }{}
\DeclareFontShape{TS1}{EBGaramond-OsF}{bx}{it}{ <-> ssub * EBGaramond-OsF/m/it }{}
\DeclareFontShape{TS1}{EBGaramond-OsF}{bx}{sl}{ <-> ssub * EBGaramond-OsF/m/it }{}
\endinput
但最后七项\DeclareFontShape
声明在所有地方LF
都用了 代替OsF
。可能那部分已被类似人员复制TS1EBGaramond-LF.fd
,而没有进行编辑。
因此,您会收到使用 进行编译时提到的错误消息pdflatex
,因为字体描述文件引用了未知的字体系列。
有一些可能的解决方法。
将分发的
TS1EBGaramond-OsF.fd
文件复制到文档目录并进行编辑,使其如上所示。直接编辑分发的文件(有风险)
添加必要的代码以确保
pdflatex
满意:\documentclass[english]{article} \usepackage{ifluatex,ifxetex} \ifluatex\else\ifxetex\else \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \fi\fi \usepackage{babel} \usepackage{ebgaramond} \ifluatex\else\ifxetex\else \normalfont \makeatletter \input{TS1EBGaramond-LF.fd} \input{TS1EBGaramond-OsF.fd} \makeatother \DeclareFontShape{TS1}{EBGaramond-OsF}{m}{sl}{ <-> ssub * EBGaramond-OsF/m/it }{} \DeclareFontShape{TS1}{EBGaramond-OsF}{b}{n}{ <-> ssub * EBGaramond-OsF/m/n }{} \DeclareFontShape{TS1}{EBGaramond-OsF}{b}{it}{ <-> ssub * EBGaramond-OsF/m/it }{} \DeclareFontShape{TS1}{EBGaramond-OsF}{b}{sl}{ <-> ssub * EBGaramond-OsF/m/it }{} \DeclareFontShape{TS1}{EBGaramond-OsF}{bx}{n}{ <-> ssub * EBGaramond-OsF/m/n }{} \DeclareFontShape{TS1}{EBGaramond-OsF}{bx}{it}{ <-> ssub * EBGaramond-OsF/m/it }{} \DeclareFontShape{TS1}{EBGaramond-OsF}{bx}{sl}{ <-> ssub * EBGaramond-OsF/m/it }{} \fi\fi \begin{document} \begin{itemize} \item Here is some plain text in Garamond \end{itemize} \end{document}
无论如何,您都应该向软件包维护者提及该问题。
答案2
\textbullet
未定义。使用
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{ebgaramond}
\renewcommand\labelitemi{$\bullet$}
\usepackage{babel}
\begin{document}
\begin{itemize}
\item Here is some plain text in Garamond
\end{itemize}
\end{document}
或使用
\usepackage[lf]{ebgaramond}
然后它定义了\textbullet
。
顺便说一句:使用luainputenc
withutf8
毫无意义。默认使用 utf。所有引擎的版本为:
\documentclass[english]{article}
\usepackage[lf]{ebgaramond}
\ifluatex\else\ifxetex\else\usepackage[utf8]{inputenc}\fi\fi
\usepackage{babel}
\begin{document}
\begin{itemize}
\item Here is some plain text in Garamond
\end{itemize}
\end{document}
这与运行pdflatex
,xelatex
并且lualatex