如何将 \EUR 更改为 serif 字体?

如何将 \EUR 更改为 serif 字体?

在我的文档中,我使用无衬线字体来显示除数学之外的所有内容。我如何更改软件包\EUR提供的宏eurosym,以便使用\EUR{1234}衬线字体打印数字(和符号?)?

平均能量损失

\documentclass[a4paper]{article}
\usepackage{eurosym}

\renewcommand{\familydefault}{\sfdefault}

\begin{document}
I'm just a test line \EUR{12345}. % I want this to be serif font...

I'm just a test line \euro \(12345\). % ...like this!
\end{document}

截屏

在此处输入图片描述

答案1

您可以在序言中重新定义命令,插入罗马字体系列(\rmfamily)。

\documentclass[a4paper]{article}
\usepackage{eurosym}

\renewcommand{\familydefault}{\sfdefault}

\makeatletter
%% from eurosym.sty
\def\EUR#1{{\rmfamily\if@EURleft\euro\,\fi#1\if@EURleft\else\,\euro\fi}}
\makeatother

\begin{document}

I'm just a test line \EUR{12345}. % ...like this!
\end{document}

或者也许定义一个新命令,例如,\rmEUR这样你就不会丢失默认命令。

答案2

除了加载eurosym,您还可以加载textcomp并使用命令,或者直接输入 €。如果当前的 8 位传统字体有该符号(现代 TeX 发行版中的大多数字体都有),它将使用该符号。否则,软件包将尝试使用和\texteuro来伪造它。C=

使用现代 TeX 引擎,您可以加载fontspec和使用 Unicode 字符。该\texteuro命令仍然有效,以实现向后兼容。只有少数出版商在 2019 年仍然不支持现代字体。

您可能会发现该\EUR命令足以定义自己:

\documentclass{article}
\usepackage{fontspec} % Or:
%\usepackage[T1]{fontenc}
%\usepackage{textcomp}
%\usepackage[utf8]{inputenc}

\usepackage{parskip} % Removes the paragraph indentation.

\DeclareRobustCommand\EUR[1]{€\thinspace #1}

\begin{document}
\EUR{10} \textbf{\EUR 10} \textit{\EUR{10} \textbf{\EUR{10}}} \\
\textsf{\EUR{10} \textbf{\EUR 10} \textit{\EUR{10} \textbf{\EUR{10}}}}
\end{document}

欧元字体示例

这将使用当前字体中的欧元符号,后面跟着一个细的不间断空格。如果您更愿意使用将符号放在金额后面的德语惯例,请按照这种方式操作。(#1\thinspace €)如果您想在同一文档中切换惯例,那就更复杂了。

相关内容