混合 T1 字体和 fontspec 时如何获取 \copyright?

混合 T1 字体和 fontspec 时如何获取 \copyright?

此示例:

\documentclass{minimal}

\usepackage{fontspec}
\usepackage[T1]{fontenc}
\usepackage[osf]{mathpazo}

\begin{document}

\copyright 2011
\end{document}

给出:

! LaTeX Error: Command \copyright unavailable in encoding T1.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.9 \copyright
               2011
?

我该怎么做才能获得版权符号?我是否应该使用其他命令?

答案1

快速解决方案:

使用\textcopyright而不是\copyright。现在版权符号将以字体形式输出cmsy,并且会出现字体警告。

这种方法有点糟糕,因为它会产生字体替换警告,并使用 CM 字体。

优点是不需要对代码做太多修改。而且字体正是Palatino 及其由 PSNFSS 包提供的数学支持。


快速解决方案2:

\renewcommand*\copyright{{%
  \usefont{EU1}{lmr}{m}{n}\textcopyright}}

它使用拉丁现代字体的符号。

这可以避免警告。并且为此标志使用 LMR 字体。字体命令可以根据需要进行更改。例如\fontfamily{lmr}\selectfont

textcompTS1该包在字体编码方面使用了一组旧的字体。


建议的解决方案:

\documentclass{minimal}

\usepackage{unicode-math}
\setmainfont[Ligatures=TeX,Numbers=OldStyle]{TeX Gyre Pagella}
\setmathfont{Asana Math}

\begin{document}

Test \copyright 2011
\end{document}

现在所有字体都改为OpenType字体。结果与pdfLaTeX +pxfonts包有些相似。

答案2

我会加载马特帕佐 字体规格; 而且丰滕克不需要,因为你需要设置字体字体规格

\usepackage[osf]{mathpazo}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX,Numbers=OldStyle]{TeX Gyre Pagella}

\begin{document}

\copyright 2011
\end{document}

答案3

回答有关版权符号的问题:该符号采用 TS1 编码,因此您必须加载此编码或包textcomp。以下内容适用于所有引擎(pdflatex、xelatex、lualatex...):

\documentclass{minimal}
\usepackage[TS1,T1]{fontenc}
\usepackage[osf]{mathpazo}

\begin{document}

\copyright 2011 
\end{document} 

但是使用 T1 编码和 mathpazo 文本字体与 xelatex 一起使用是有问题的。由于您不能使用 inputenc,您将失去直接输入非 ASCII 字符的能力。例如 ß 不起作用。连字符也可能是错误的,因为 xelatex 的模式是面向 unicode 的。最好使用加载了 fontspec 的字体作为文本字体。

答案4

我发现关于版权符号的问题。基于此,我想出了一个解决方案,至少目前看来它满足我的所有标准:

\documentclass{minimal}
\usepackage{fontspec}
\usepackage[TS1,T1]{fontenc}
\usepackage[osf]{mathpazo}
\usepackage{textcomp}

\begin{document}

\textcopyright \ 2011 
\end{document}

使用该\textcopyright命令似乎有效。

相关内容