当我尝试使用 fontspec 字体名称和 Linux Libertine O 构建 Dario Taraborelli 的 CV 示例时,& 符号字形会中断。以下是 MWE:
%------------------------------------
% Dario Taraborelli
% Typesetting your academic CV in LaTeX
%
% URL: http://nitens.org/taraborelli/cvtex
% DISCLAIMER: This template is provided for free and without any guarantee
% that it will correctly compile on your system if you have a non-standard
% configuration.
% Some rights reserved: http://creativecommons.org/licenses/by-sa/3.0/
%------------------------------------
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[10pt, a4paper]{article}
%\documentclass[10pt, a4paper]{scrartcl}
% DOCUMENT LAYOUT
\usepackage{geometry}
\geometry{a4paper, textwidth=5.5in, textheight=8.5in, marginparsep=7pt, marginparwidth=.6in}
\setlength\parindent{0in}
% FONTS
\usepackage[usenames,dvipsnames]{color}
\usepackage{xunicode}
\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\setromanfont [Ligatures={Common}, Numbers={OldStyle}, Variant=01]{Linux Libertine O}
\setmonofont[Scale=1]{Inconsolata}
% ---- CUSTOM COMMANDS
\chardef\&="E050
\newcommand{\html}[1]{\href{#1}{\scriptsize\textsc{[html]}}}
\newcommand{\pdf}[1]{\href{#1}{\scriptsize\textsc{[pdf]}}}
\newcommand{\doi}[1]{\href{#1}{\scriptsize\textsc{[doi]}}}
% ---- MARGIN YEARS
\usepackage{marginnote}
\newcommand{\amper{}}{\chardef\amper="E0BD }
\newcommand{\years}[1]{\marginnote{\scriptsize #1}}
\renewcommand*{\raggedleftmarginnote}{}
\setlength{\marginparsep}{7pt}
\reversemarginpar
% HEADINGS
\usepackage{sectsty}
\usepackage[normalem]{ulem}
\sectionfont{\mdseries\upshape\Large}
\subsectionfont{\mdseries\scshape\normalsize}
\subsubsectionfont{\mdseries\upshape\large}
% PDF SETUP
% ---- FILL IN HERE THE DOC TITLE AND AUTHOR
%\usepackage[dvipdfm, bookmarks, colorlinks, breaklinks,
%% ---- FILL IN HERE THE TITLE AND AUTHOR
% pdftitle={Albert Einstein - vita},
% pdfauthor={My name},
% pdfproducer={http://nitens.org/taraborelli/cvtex}
%]{hyperref}
\usepackage[bookmarks, colorlinks, breaklinks,
% ---- FILL IN HERE THE TITLE AND AUTHOR
pdftitle={Albert Einstein - vita},
pdfauthor={My name},
pdfproducer={http://nitens.org/taraborelli/cvtex}
]{hyperref}
\hypersetup{linkcolor=blue,citecolor=blue,filecolor=black,urlcolor=MidnightBlue}
% DOCUMENT
\begin{document}
\section*{Grants, honors \& awards}
\noindent
\years{1921}Nobel Prize in Physics, Nobel Foundation
\section*{Publications \& talks}
\end{document}
在我的系统上,结果如下所示:
现在,显而易见的答案是字体没有字形,但它应该是相同的字体!如果我使用\usepackage{libertineotf}
,它可以工作,但我想改用 Xelatex。
答案1
请按如下方式使用:
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\setromanfont [Ligatures={Common}, Numbers={OldStyle}, Variant=01,
Extension=.otf]{LinLibertine_R}
\setmonofont[Scale=1]{Inconsolata}
\chardef\&="E050
\begin{document}
\section*{Grants, honors \& awards}
Nobel Prize in Physics, Nobel Foundation
\section*{Publications \& talks}
\end{document}
正如 Ulrike 已经指出的那样,使用包fontspec
而不是其他两个
答案2
你的例子是不是MWE。它包含很多不相关的内容。这对我来说很好用:
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Ligatures={Common}, Numbers={OldStyle}, Variant=01]{Linux Libertine O}
\chardef\&="E050
\begin{document}
Grants, honors \& awards
^^^^e050, \char"E050
\end{document}
我不明白为什么你不想使用 libertineotf(它应该与 xelatex 一起使用),但如果它与此包一起使用,而你自己调用字体却不行,这可能意味着你有多个 libertine 版本 - libertineotf 通过文件名调用字体。添加\XeTeXtracingfonts=1
到你的文档并检查日志文件中的字体路径。
顺便说一句:不要xunicode
在之前加载fontspec
。这会破坏包的运行。在现代系统中,您根本不需要加载它,fontspec
它会这样做。