我想更改为无衬线字体(例如 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}
不要使用\\
后面的空行来获得垂直空间。