如何將 \EUR 改為襯線字型?

如何將 \EUR 改為襯線字型?

在我的文件中,除了數學之外,我對所有內容都使用無襯線字體。如何更改套件\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並使用命令\texteuro,或者只需輸入 €,而不是加載。如果目前的 8 位元舊字體具有該符號(現代 TeX 發行版中的大多數字體都有),它將使用該符號。否則,該包將嘗試使用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 €) 如果你想在同一個文件內切換約定,那就更複雜了。

相關內容