前言

既然要书写日文,那肯定离不开 p 系列家族编译环境,我们推荐使用 upLaTex ,其支持 CJK(中日韩)、朝鲜文、欧文、各种符号,默认 utf-8 编码,非常方便,有关 pLaTex、upLatex 的关系可以看这里:

《pLaTex、upLatex、eupTex、epTex的区别与联系》

日文环境配置

日文环境以前是很难配置的,但是现在经过日本 Tex 社区众人不懈努力之下,整个体系已经很成熟系统化了,包括在 vscode 里配置日文编译环境也是 2019 年才开始涌现的,可以说是比较新的内容。

下面就开始介绍如何配置好日文编译环境。

安装 upLaTex

在安装 Texlive 的时候,custom 自己要预装的宏包时,如果没有选择日文,upLaTex 环境是没有安装的,请使用以下两种方式之一确认你有无 uplatex 环境:

  1. 命令行输入 uplatex ,找不到就是没安装
  2. 使用 Texlive 根目录下的 tl-tray-menu.exe 工具,进行宏包管理和下载

这里推荐第二种方法,可以直接查看本地宏包情况,并下载没有的宏包,有关 Texlive 自带的宏包管理工具怎么使用,请看此文的 管理宏包 部分:

《vscode写LaTex教程 | 从零开始使用Texlive+vscode+LaTex Workshop插件配置》

字体映射分析

upLaTex 在编译的时候使用的是 HaranoAji 字体,可以在 Texlive 安装目录的 texmf-dist/fonts/map/dvipdfmx/updmap/kanjix.map 这个字体映射文件内看到:

uplatex 使用的是 HaranoAjiGothic 和 HaranoAjiMincho 两个系列字体,同样 platex 在上面显示,也是使用的这两款字体。

所以没有安装字体的话,就会报:

 Cannot find uprml-h.mf.I try ps2pk --> gsftopk --> ttf2pk --> hbf2gf.

也就是 uprml-h.mf 错误,因为 uprml 系列(见上图)的字体没有映射,要生成映射就要安装该字体,所以我们的流程应该是先安装字体 → 在生成字体映射,才能解决这个问题。

有关 kanjix.map 这个映射文件,不是每个人都有的,没有这个文件也无需担心,后面会安装新的映射宏包来作映射。

注:如果使用的是 pLaTex ,那就会报 rml.vf 错误。

安装字体

原ノ味フォント / Harano Aji Fonts :字体项目地址

这里包括了 Harano Aji 家族的 HaranoAjiGothic 和 HaranoAjiMincho 全部字体,clone 或者打包下载下来全部安装即可。

安装字体映射

Texlive 宏包管理器下载 ptex-fontmaps 这个宏包,他包括了现在日文领域内所有可能使用的字体的映射。

ptex-fontmaps 项目地址:texjporg / jfontmaps

安装完后,就可以使用该宏包提供的生成字体映射命令:

 kanji-config-updmap-sys --jis2004 haranoaji

注意一定要在管理员权限的 cmd 下运行,否则只能生成映射,而切换不了字体。

注:假如你没有使用管理员权限运行,那可以使用错误切换导致的自动刷新字体默认配置功能来补救:

 kanji-config-updmap-sys 乱输几个字母

错误切换会导致 Texlive 刷新默认配置,从而正确的加载刚刚我们生成的 Harano Aji 字体映射。

安装布局

使用官方推荐的日文版式布局可以省去很多麻烦,搜索宏包 jsclasses 安装即可。

jsclasses 项目地址:texjporg / jsclasses

安装快速编译器

Tex 日本社区开发了一款 ptex2pdf 的宏包,可以帮我们执行编译 dvi + 生成 pdf 的功能,非常好用方便,使用宏包管理器下载即可。

ptex2pdf 项目地址:texjporg / ptex2pdf

开始使用

一个简单的例子

考虑一个简单的例子:

\documentclass[uplatex]{jsarticle}
\usepackage{geometry}
\geometry{a4paper,left=2cm,right=2cm,top=1cm,bottom=1cm}\title{吾輩は猫である}
\author{夏目漱石}
\date{}\begin{document}
\maketitle吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。
何でも薄暗いじめじめした所で
ニャーニャー泣いていた事だけは記憶している。
吾輩はここで始めて人間というものを見た。\end{document}

这个例子的含义:

{jsarticle} :使用 jsarticle 格式的文档布局,如果想了解更多类型,可以参考 jsclasses 文档类的使用手册,在 CTAN 上可以找到,说明文档只有日文。

[uplatex]:使用 uplatex 编译的选项,必须要写,否则默认使用 platex 编译。

{geometry}:使用 geometry 宏包管理页边距,这个 jsclasses 类给我们的页边距太大了,当然也可以调整,在 jsclasses 使用手册有调整页边距的选项,但其不如 geometry 方便直观。

\date{}:把时间留空,这行必须写否则默认打印时间,这是 jsclasses 设定的,具体可以看 jsclasses 使用手册或者翻他的文档类文件。

使用 uplatex 编译

执行命令:

 ptex2pdf -u -l -i filename[.tex]

文件名的 .tex 可有可无,-u -l 代表使用 uplatex 编译,-i 表示留下 .dvi 文件。
注:

  1. 如果使用 platex 编译,不需要 -u 参数
  2. 使用 ptex2pdf -help 可以查看完整的命令使用帮助
  3. 如果生成 pdf 出错,就按照上文每个步骤好好检查一下到底是字体问题还是映射问题。

最终成功效果:


其他

真心不推荐使用 platex 编译,因为是上个版本的产物,如果你在使用 platex ,是时候换到最先进的 uplatex 了。

这里再推荐一个我们国人的 ptex-ng ,正在活跃维护中,效果怎么样我没有具体用过,但写日文用日本 Tex 社区团队推崇的是不二之选:

李阿玲 ptex-ng :clerkma / ptex-ng

LaTex书写日文教程 / upLaTex、pLaTex的使用 / latex配置日语编译环境方法相关推荐

  1. 基于端到端深度学习的自动驾驶:AirSim教程(包含Ubuntu18.04下配置AIrsim仿真环境解决方案)

    这是微软自动驾驶食谱的第一个教程(目前共两个).之前看到过,这里记录一下. https://github.com/microsoft/AutonomousDrivingCookbook 前言 在本教程 ...

  2. win10php环境配置教程,Windows10系统下如何去配置PHP开发环境

    Windows下搭建(Apache+PHP+MySQL)=>WAMP Linux下搭建(Apache+PHP+MySQL) =>LAMP PHP开发环境配置一般有套件安装和自定义安装两种方 ...

  3. 简单的LaTeX数学表达式教程

    简单的LaTeX数学表达式教程 显示位置与大小 正文(inline)中的LaTeX公式用$...$定义 单独显示(display)的LaTeX公式用$$...$$定义,此时公式居中并放大显示   字体 ...

  4. 【LaTeX】E喵的LaTeX新手入门教程(4)图表

    这里说的不是用LaTeX画图,而是插入已经画好的图片..想看画图可以把滚动条拉到底.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇  [LaTeX]E喵的LaTeX新手入门教程(2)基 ...

  5. 【LaTeX】E喵的LaTeX新手入门教程(6)中文

    假期玩得有点凶 ._.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇  [LaTeX]E喵的LaTeX新手入门教程(2)基础排版  [LaTeX]E喵的LaTeX新手入门教程(3)数学 ...

  6. 【LaTeX】E喵的LaTeX新手入门教程(5)参考文献、文档组织

    这不是最后一篇,明天开始建模所以会从6号开始继续更新.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇  [LaTeX]E喵的LaTeX新手入门教程(2)基础排版  [LaTeX]E喵的 ...

  7. 【LaTeX】E喵的LaTeX新手入门教程(3)数学公式

    昨天熄灯了真是坑爹.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇  [LaTeX]E喵的LaTeX新手入门教程(2)基础排版上一期测试答案1.大家一开始想到的肯定是\LaTeX{}e ...

  8. 【LaTeX】E喵的LaTeX新手入门教程(2)基础排版

    换了块硬盘折腾了好久..联想的驱动真坑爹.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇文档框架嗯昨天我们已经编写了一个最基本的文档,其内容是这样的:\documentclass{ar ...

  9. LaTeX的安装教程及问题记录

    安装教程 我的安装过程参考的博客: LaTeX的安装教程(Texlive 2020 + TeX studio) 遇到的问题 TLUtils::install_packages: Failed to i ...

最新文章

  1. 长沙城南学院的计算机科学,长沙理工大学城南学院计算机科学与技术专业2016年在海南理科高考录取最低分数线...
  2. AI让硬件说话,这就是未来物联网
  3. javascript中自定义事件
  4. Java POI Excel( pio:纯java操作excel的api )
  5. python坐标怎么打_python导入坐标点的操作方法
  6. PHP用户登录功能实现
  7. Tree UVALive - 8212
  8. 一般处理程序(ashx)和页面处理程序(aspx)的区别
  9. Packet Tracer 5.0实验(四) 利用三层交换机实现VLAN间路由
  10. linux socket read 接受缓存为空_Linux直接IO、缓存IO、阻塞与同步?
  11. 【Spark】SparkStreaming-提交到集群运行
  12. Rust : 加密中数论基础知识、RSA加密算法及证明(待续)
  13. BP神经网络及其app设计
  14. 完美解决netkeeper 错误代码137
  15. 贪心算法(greedy algorithm,又称贪婪算法)详解(附例题)
  16. Python 实现 批量 复制指定PDF文件 到指定文件夹并批量打印出来
  17. vue-element:实现微信表情
  18. 正则表达式 '^[a-zA-Z0-9''-'\s]{1,30}$' 代表什么意思?
  19. 年末最新整理:阿里、腾讯、字节、华为、百度等大厂Android岗面经分享!
  20. Linux第五次学习笔记

热门文章

  1. 有道云笔记and印象笔记
  2. Javascript Window的属性
  3. 通讯录从诺基亚手机同步至iphone
  4. typescript学习之路(四) —— ts类的继承(包含es5以及es6的类继承)
  5. 复古编程 cmd 编译 环境变量 可执行文件 path
  6. 黑鲨游戏手机再推新品,游戏手机市场将会迎来怎样变数?...
  7. JavaScript常用数组操作方法
  8. 个人小程序接入支付解决方案
  9. 超级有意思且非常实用的心理学小窍门
  10. (三)基础代谢率bmr的计算4.0-----异常处理机制