fontspec setmainfont 正在工作

fontspec setmainfont 正在工作

这是一个最小问题示例

\ProvidesClass{cvMinimal}[2012/04/30 CV class]
\NeedsTeXFormat{LaTeX2e}

\LoadClass{article}


%%%%%%%%%%
% Colors %
%%%%%%%%%%

\RequirePackage{xcolor}
\definecolor{green}{HTML}{C2E15F}
\definecolor{gray}{HTML}{4D4D4D}

%%%%%%%%%
% Fonts %
%%%%%%%%%

\RequirePackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\setmainfont[Mapping=tex-text, Color=gray]{Helvetica Neue Light}

%%%%%%%%%%
% Header %
%%%%%%%%%%

\RequirePackage{tikz}
    \usetikzlibrary{positioning}

\newcommand{\header}[0]{%
    \begin{tikzpicture}[remember picture, overlay]
        \node[](name){\fontsize{24pt}{72pt}\selectfont\color{green}{My Name}};  %
    \end{tikzpicture}  
    }

生成灰色的“我的名字”,而我期望生成绿色的。注释掉 setmainfont 行可以解决问题。

有人能解释一下我做错了什么吗?以及如何在不注释文档其余部分中很重要的 setmainfontline 的情况下获得我想要的内容?

我知道这是可能的,因为它是在简历中实现的这里

答案1

正如我在评论中所建议的,“手动”方式是根据\addfontfeature需要调用。另一种解决方案是使用 选项SizeFeaturesfontspec两者如下所示。(我使用了 Adob​​e 的源 Sans Pro因为我没有 Helvetica。)

\documentclass{article}

\usepackage{xcolor}
\definecolor{green}{HTML}{C2E15F}
\definecolor{gray}{HTML}{4D4D4D}

%%%%%%%%%
% Fonts %
%%%%%%%%%

\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\setmainfont[ Mapping=tex-text,
  SizeFeatures={
   {Size={-24}, Color=gray},
   {Size={24-}, Color=green}}
 ]{Source Sans Pro}

%%%%%%%%%%
% Header %
%%%%%%%%%%

\usepackage{tikz}
    \usetikzlibrary{positioning}

\newcommand{\header}[0]{%
    \begin{tikzpicture}[remember picture, overlay]
         % \node[](name){%                       <-- manual solution
         %   \fontsize{24pt}{72pt}\selectfont%
         %   {\addfontfeatures{Color=green}{My Name}}};
         %
         \node[](name2){%                       <-- uses SizeFeatures
           \fontsize{24pt}{72pt}\selectfont {My Name2}};
    \end{tikzpicture}
    }

\begin{document}

\header


my name;

\fontsize{24pt}{72pt}\selectfont my name;

\end{document}

答案2

我认为最好定义单独的字体系列:一个用于主文本字体,另一个用于特殊项目。以下是示例。

\documentclass{article}
\usepackage{xcolor}
\definecolor{cvgreen}{HTML}{C2E15F} % give distinctive names to colors
\definecolor{cvgray}{HTML}{4D4D4D}

\usepackage{fontspec}
\setmainfont[Ligatures=TeX,Color=cvgray]{Helvetica Neue Light}
\newfontfamily{\greenHelv}[Ligatures=TeX,Color=cvgreen]{Helvetica Neue Light}

\usepackage{tikz}
\usetikzlibrary{positioning}

\newcommand{\header}[1]{%
  \begin{tikzpicture}[remember picture, overlay]
  \node[](name){\fontsize{24pt}{72pt}\greenHelv #1};
  \end{tikzpicture}
}

\begin{document}
\header{My Name}

\bigskip

\noindent Some text following
\end{document}

在此处输入图片描述

相关内容