更改字体不起作用

更改字体不起作用

我想更改为无衬线字体(例如 Helvetica 或计算机现代无衬线字体)。以下代码不会更改字体:

\documentclass{article}

\usepackage[english,ngerman]{babel}
\usepackage[T1]{fontenc}
\newcommand{\changefont}[3]{
\fontfamily{#1} \fontseries{#2} \fontshape{#3} \selectfont}

\changefont{phv}{m}{n}

\begin{document}
THIS IS A TEST. 
this is a test.\\

\begin{tabular}{lr} \hline 
ABCD & 1234       \\
abcd & 1234,567   \\
UVWXY & 1,234,567 \\
uvwxy & 1,234,567 \\ \hline
\end{tabular}

\end{document}

我得到了一个带衬线的 pdf 文件。没有错误和警告。我使用的是 Windows 7、MikTex、TeXnicCenter。有人知道为什么这不起作用吗?

答案1

你的方法不起作用,因为\begin{document}还有问题\normalfont,所以你的字体选择无效。你可以将命令放在后面\begin{document}或说

\newcommand{\changefont}[3]{%
  \fontfamily{#1}\fontseries{#2}\fontshape{#3}\selectfont}
\AtBeginDocument{\changefont{phv}{m}{n}}

但这是一种不必要的复杂化,

\AtBeginDocument{\usefont{\encodingdefault}{phv}{m}{n}}

效果完全一样。不过,我不推荐这种方法。

如果您希望您的文档采用无衬线字体,最好的方法是\familydefault将的含义更改为\sfdefault

然后,不要使用像 这样的低级命令来指定字体系列\changefont,而是最好使用更高级的方法来选择字体:

\documentclass{article}

\usepackage[english,ngerman]{babel}
\usepackage[T1]{fontenc}

\usepackage[scale=.9]{tgheros} % or helvet
\renewcommand{\familydefault}{\sfdefault}

\begin{document}
THIS IS A TEST.
this is a test.

\bigskip

\begin{tabular}{lr} \hline
ABCD & 1234       \\
abcd & 1234,567   \\
UVWXY & 1,234,567 \\
uvwxy & 1,234,567 \\ \hline
\end{tabular}

\end{document}

不要使用\\后面的空行来获得垂直空间。

在此处输入图片描述

相关内容