无法使用 TeXstudio 在 PdfLaTeX 中获取日文字符平假名“yo”

无法使用 TeXstudio 在 PdfLaTeX 中获取日文字符平假名“yo”

如何在 MikTex 2.9 中安装日文 dmjhira 字体?

我正在尝试执行与上述问题中提到的相同任务。我的目标是在我的 latex 文件中生成平假名“yo”字符。现在,我正在尝试一个小的测试代码,它正是上述问题的解决方案中的一个

\documentclass{book}

\begin{document}
    abc
    \font\maljapanese=dmjhira at 2ex 
    \maljapanese \char"48
    
\end{document}

我正在尝试使用 TeXstudio 和 PdfLaTeX 编译器来编译它。我得到了以下日志文​​件,其中我在文件路径中使用 <---> 隐藏了一些个人信息。

  1. makepk-日志
2022-12-04 21:35:19,271-0500 INFO  miktex-makepk - this process (16864) started by pdflatex in directory D:\Local Drive\<Univ>\<sem>\Math R\Documents\Set-2\Test with command line: miktex-makepk --verbose dmjhira 517 600 0+517/600
2022-12-04 21:35:19,273-0500 INFO  miktex-makepk - running on Windows 10.0.22621
2022-12-04 21:35:19,275-0500 INFO  makepk - Trying to make PK font dmjhira at 517 DPI...
2022-12-04 21:35:19,279-0500 INFO  makepk - The METFAONT mode is: ljfour
2022-12-04 21:35:19,281-0500 INFO  makepk - Running miktex-makemf.exe...
2022-12-04 21:35:19,281-0500 INFO  makepk - running: miktex-makemf.exe --miktex-disable-maintenance --miktex-disable-diagnose --verbose dmjhira
2022-12-04 21:35:19,281-0500 INFO  miktex-makepk.core - start process: miktex-makemf.exe --miktex-disable-maintenance --miktex-disable-diagnose --verbose dmjhira
2022-12-04 21:35:19,611-0500 INFO  makepk - Running miktex-ttf2pk.exe...
2022-12-04 21:35:19,611-0500 INFO  makepk - running: miktex-ttf2pk.exe --miktex-disable-maintenance --miktex-disable-diagnose -q -t dmjhira
2022-12-04 21:35:19,611-0500 INFO  miktex-makepk.core - start process: miktex-ttf2pk.exe --miktex-disable-maintenance --miktex-disable-diagnose -q -t dmjhira
2022-12-04 21:35:20,043-0500 FATAL miktex-makepk - PK font dmjhira could not be created.
2022-12-04 21:35:20,043-0500 FATAL miktex-makepk - PK font dmjhira could not be created.
2022-12-04 21:35:20,043-0500 FATAL miktex-makepk - Info: 
2022-12-04 21:35:20,043-0500 FATAL miktex-makepk - Source: 
2022-12-04 21:35:20,043-0500 FATAL miktex-makepk - Line: 0
2022-12-04 21:35:20,051-0500 INFO  miktex-makepk - this process (16864) finishes with exit code 1
  1. makemf-日志
2022-12-04 21:35:19,533-0500 INFO  miktex-makemf - this process (5260) started by miktex-makepk in directory C:\Users\<name>\AppData\Local\Temp\mik38448 with command line: miktex-makemf.exe --miktex-disable-maintenance --miktex-disable-diagnose --verbose dmjhira
2022-12-04 21:35:19,533-0500 INFO  miktex-makemf - running on Windows 10.0.22621
2022-12-04 21:35:19,537-0500 FATAL miktex-makemf - The dmjhira source file could not be found.
2022-12-04 21:35:19,537-0500 FATAL miktex-makemf - The dmjhira source file could not be found.
2022-12-04 21:35:19,537-0500 FATAL miktex-makemf - Info: 
2022-12-04 21:35:19,537-0500 FATAL miktex-makemf - Source: 
2022-12-04 21:35:19,537-0500 FATAL miktex-makemf - Line: 0
2022-12-04 21:35:19,545-0500 INFO  miktex-makemf - this process (5260) finishes with exit code 1

我只为一个用户安装了 MiKTeX,最终安装在

C:\Users\<name>\AppData\Local\Programs\MiKTeX

这是迄今为止我所尝试过的。

  • 在任务菜单中刷新字体映射文件
  • 使用 updmap.exe 等命令C:\Users\<name>\AppData\Local\Programs\MiKTeX\miktex\bin\x64
  • 尝试在管理员模式下运行 MiKTeX 控制台或 cmd 时执行相同操作。
  • 当使用 TeXstudio 中的 XeLaTeX 编译器而不是 PdfLaTeX 时,该文件会进行编译,这也很奇怪。

最后,不管日志中显示什么,我正在运行最新版本的 Windows 11,并且正在使用 Surface Pro 9。

我也怀疑这可能是某种 Windows 权限错误?不过,我只是不确定出了什么问题。同样,makeidx 包对我来说也不起作用。它显示错误,如未找到 main.ind,并且在工作目录中文件夹 main.ind 也从未生成。

答案1

您需要正确安装cjk-fontsMiKTeX 包并更新系统,特别是地图文件。

在 TeX Live 中这些字体位于wadalab,但显然 MiKTeX 只提供包含它们的一个包。

设置完成后,您需要修改选择字体的代码,因为声明\font应该绝不可直接在 LaTeX 中使用(您获得的代码适用于纯 TeX)。

如果 type1 字体映射文件不好(在当前的 MiKTeX 中似乎是这种情况),您可以在 LaTeX 文档中添加一行,至少直到修复错误为止。

\pdfmapline{+dmjhira dmjhira <dmjhira.pfb}

\documentclass{book}

\DeclareFontFamily{U}{dmjhira}{}
\DeclareFontShape{U}{dmjhira}{m}{n}{
  <-> dmjhira
}{}
\DeclareFontSubstitution{U}{dmjhira}{m}{n}

\newcommand{\yo}{{\usefont{U}{dmjhira}{m}{n}\symbol{"48}}}


\begin{document}

abc \yo\ def

\end{document}

在此处输入图片描述

但是,这些字体的边界框很大,这可能会干扰分页和行距。

\documentclass{book}

\DeclareFontFamily{U}{dmjhira}{}
\DeclareFontShape{U}{dmjhira}{m}{n}{
  <-> s*[0.95] dmjhira
}{}
\DeclareFontSubstitution{U}{dmjhira}{m}{n}

\newcommand{\yo}{%
  \raisebox{0.2\depth}[\fontcharht\font`A][0.1\depth]{%
    \usefont{U}{dmjhira}{m}{n}\symbol{"48}%
  }%
}


\begin{document}

\fboxsep=0pt\fboxrule=0.1pt
\fbox{A}\fbox{\yo}\fbox{b}

abc \yo\ def

\end{document}

使用此代码,字符的大小会缩小 5%,稍微升高,但边界框会固定。

在此处输入图片描述

答案2

您可以使用以下代码获取平假名“yo”,该代码取自Johnson-Freyd 和 Scheimbauer 的论文现在也出现了在 nlab 上。我不明白这段代码,但它对我来说在 Overleaf 中有效。我认为它不需要安装 dmjhira 字体。

\usepackage[utf8]{inputenc}
\DeclareFontFamily{U}{min}{}
\DeclareFontShape{U}{min}{m}{n}{<-> udmj30}{}
\newcommand\yo{\!\text{\usefont{U}{min}{m}{n}\symbol{'207}}\!}`

答案3

到目前为止,所有答案都讨论了如何加载传统的 8 位字体。如果您的出版商或教授仍然要求您使用 PDFTeX,您可能需要这样做,但我建议您在可以的情况下使用带有 Unicode 和桌面字体的现代工具链。这可以解决许多难题。

这是从 Harano Aji Mincho(CTAN 提供的字体)加载 よ 的 MWE。它演示了如何在文本、粗体文本和数学中使用该符号。

\documentclass{article}
\tracinglostchars=3
\usepackage{amsmath}
\usepackage{fontspec}

\defaultfontfeatures[HaranoAjiMincho]{
    Renderer=HarfBuzz,
    Script=Kana,
    Scale=MatchUppercase,
    UprightFont=*-Light,
    BoldFont=*-Medium,
    Extension=.otf
}

\newfontfamily\kanafont{HaranoAjiMincho}
\DeclareRobustCommand\yo{\textup{\kanafont よ}}

\begin{document}
The Hirigana for \textit{yo} is {\yo}.

\section*{The Yoneda Embedding \yo}
The Yoneda embedding is \(\yo(\mathcal{K})\).
\end{document}

Harano Aji Mincho 样品

为了能够在源代码中使用文字よ字符,请添加以下行:

\usepackage{newunicodechar}
\newunicodechar{よ}{\yo}

相关内容