在我的文档中,我使用无衬线字体来显示除数学之外的所有内容。我如何更改软件包\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 €
)如果您想在同一文档中切换惯例,那就更复杂了。