eurosym 似乎不起作用

eurosym 似乎不起作用

eurosym我第一次尝试这个包,当我尝试时$\euro$,我只是得到了e。例如,我曾尝试在线查找http://www.theiling.de/eurosym.html在 CTAN

似乎表明我不应该只收到字母e。我可以看到惯例可能转变为只收到字母$e$,但我希望

  1. 在某些与之相关的站点中被提及eurosym;以及
  2. 为什么要费心eurosym去简单地写信呢e

答案1

一般情况下,没有理由要通过书写$\euro$来获取欧元 € 符号。只需\euro在文本模式下即可。

如果你需要在数学模式下使用符号。该包无法处理这种情况,实际上$\euro$只是生成

一种解决方法是修改标准定义:

\usepackage{eurosym}
\usepackage{amstext} % for \text
\DeclareRobustCommand{\officialeuro}{%
  \ifmmode\expandafter\text\fi
  {\fontencoding{U}\fontfamily{eurosym}\selectfont e}}

完整示例:

\documentclass{article}

\usepackage{eurosym}
\usepackage{amstext} % for \text
\DeclareRobustCommand{\officialeuro}{%
  \ifmmode\expandafter\text\fi
  {\fontencoding{U}\fontfamily{eurosym}\selectfont e}}

\begin{document}
\euro{} in text mode

$\euro$ in math mode
\end{document}

在此处输入图片描述


该软件包和您的问题都没有解决的一个完全不同的问题是如何使欧元符号在 PDF 文件中可搜索。

这可以通过定义字体中字符的适当映射来实现。

\documentclass{article}
\usepackage{ifpdf,eurosym,amstext}
\DeclareRobustCommand{\officialeuro}{%
  \ifmmode\expandafter\text\fi
  {\fontencoding{U}\fontfamily{eurosym}\selectfont{}e}}

\makeatletter
\ifpdf\ifdefined\pdffontattr
  \immediate\pdfobj stream {
    /CIDInit /ProcSet findresource begin
    12 dict begin
    begincmap
    /CIDSystemInfo
    << /Registry (TeX)
    /Ordering (Euro)
    /Supplement 0
    >> def
    /CMapName /TeX-Euro-0 def
    /CMapType 2 def
    1 begincodespacerange
    <00> <FF>
    endcodespacerange
    1 beginbfchar
    <65> <20AC>
    endbfchar
    endcmap
    CMapName currentdict /CMap defineresource pop
    end
    end
  }
  {\edef\@tempa#1#2{%
     \noexpand\fontseries{#1}\noexpand\fontshape{#2}\noexpand\selectfont
     \pdffontattr\font{/ToUnicode \the\pdflastobj\space 0 R}}
   \fontencoding{U}\fontfamily{eurosym}%
   \@tempa{m}{n}\@tempa{m}{sl}\@tempa{m}{ol}
   \@tempa{bx}{n}\@tempa{bx}{sl}
  }
\fi\fi
\makeatother

\begin{document}
\euro{} in text mode

$\euro$ in math mode
\end{document}

在此处输入图片描述

该图像取自我的 PDF 查看器,显示 € 的两种显示方式均已正确识别。以下是从 PDF 文件复制并简单粘贴的第一行:

€ 文本模式

答案2

比@egreg 的解决方案少做一点工作:只需\text在数学模式下使用:

\documentclass{article}

\usepackage{eurosym}
\usepackage{amsmath}

\begin{document}
Here's \euro{} in text.

Now in math, inline $\text{\euro}$ and displayed:
\begin{equation*}
\text{\euro}5 + \text{\euro}5 = \text{\euro}10.
\end{equation*}
\end{document}

在此处输入图片描述

编辑:定义一个新的宏来节省一些输入:

\newcommand{\meuro}{\text{\euro}}
...
\begin{equation*}
\meuro 5 + \meuro 5 = \meuro 10.
\end{equation*}

答案3

如果您使用该eurosym包及其命令,\euro您将获得欧元符号。

尝试运行这个:

\documentclass{article}    
\usepackage{eurosym}

\begin{document}     
\noindent Sample with eurosym: \euro  \\
Sample with e: $e$

\end{document}

你会得到这个输出:

在此处输入图片描述

可以看出,$e$和之间存在很大差异\euro

书写时$\euro$不产生欧元符号,而只产生“e”。

相关内容