我正在尝试在 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.
我的问题是:
- 日元符号的正确编码是什么?
- 我可以在一个文件中使用多种编码吗?我想对所有文本使用 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}