LaTeX 中的日元 (¥) 字符 (\textyen) - 正确的编码

LaTeX 中的日元 (¥) 字符 (\textyen) - 正确的编码

我正在尝试在 LateX 中输入日元 (¥) 符号。我使用的是 UTF8 编码:

\usepackage[utf8]{inputenc}

我尝试将其直接输入为 ¥。当我尝试编译文件时,pdflatex出现此错误:

Package inputenc Error: Unicode char \u8:¥ not set up for use with LaTeX.

当我尝试使用\textyen命令而不是实际字符时,我得到:

LaTeX Error: Command \textyen unavailable in encoding OT1.

我的问题是:

  1. 日元符号的正确编码是什么?
  2. 我可以在一个文件中使用多种编码吗?我想对所有文本使用 UTF8 编码,而不是这个日元符号。可以吗?

我找到了一种方法通过使用以下方法无需改变编码即可完成此操作:

\yen

在正文中,同时在序言中定义以下内容:

\def\yen{{\setbox0=\hbox{Y}Y\kern-.97\wd0\vbox{\hrule height.1ex
width.98\wd0\kern.33ex\hrule height.1ex width.98\wd0\kern.45ex}}}

不过,我仍然对使用正确的编码来做到这一点感到好奇。

答案1

textcomp我发现带有 Computer Modern 字体的软件包中提供的日元符号糟糕得令人难以忍受:

在此处输入图片描述

这是一种不同的方法

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{newunicodechar}

\newunicodechar{¥}{\textyen}
\DeclareTextCommandDefault{\textyen}{%
  \vphantom{Y}%
  {\ooalign{Y\cr\hidewidth\yenbars\hidewidth\cr}}%
}

\newcommand{\yenbars}{%
  \vbox{
     \hrule height.1ex width.4em
     \kern.15ex
     \hrule height.1ex width.4em
     \kern.3ex
  }%
}

\begin{document}
¥\textyen
\end{document}

您会看到,您可以直接输入字符,或者使用 输入字符\textyen

在此处输入图片描述

答案2

使用堆栈构建起来非常简单。您可以调整的参数包括笔划的宽度(1.3ex)、笔划的粗细(.1ex)以及底部(.4ex)和顶部(.65ex)笔划的垂直高度。通过使用 ex 而不是 pt 中的尺寸,它可以适当地缩放到不同的字体大小。

\documentclass{article}
\usepackage{stackengine}
\def\yenrule{\rule{1.3ex}{.1ex}}
\def\textyen{\renewcommand\stacktype{L}\stackon[.4ex]{\stackon[.65ex]{Y}{\yenrule}}{\yenrule}}
\begin{document}
\textyen
\end{document}

在此处输入图片描述

相关内容