\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

プリアンブルでコマンドを再定義して、Roman フォント ファミリ ( \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 エンジンを使用すると、fontspecUnicode 文字を読み込んで使用できます。この\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 €) 同じド​​キュメント内で慣例を切り替える場合は、より複雑になります。

関連情報