使用 lualatex 和代码示例,我可以编译代码而不会出现任何错误,但 pi 没有显示。UTF-8 的这一部分尚未涵盖,还是有其他原因?
我在 \SI 环境中使用了 lualatex、xelatex 和 pdflatex。所有编译器都挂起,线程使用率达到 100%。没有错误。
我花了一段时间才发现自己的错误,所以我想报告它。只需使用 \pi。我也不知道在哪里发布错误报告(编译器/siunitx)也许有人可以解释一下为什么会发生这种情况?符号 希腊小写字母 PI(U+03C0
)难道不支持吗?
\documentclass[12pt,a4paper]{article}
%\usepackage[utf8]{inputenc}
\usepackage{fontspec}
\usepackage{siunitx} %Einheiten
\begin{document}
This is π.
% \SI{π/2}{\radian} %Here latex hangs up
\end{document}
答案1
问题是你的文本字体是否有这样的字符。如果你查看日志文件,你会发现
Missing character: There is no π (U+03C0) in font [lmroman12-regular]:+tlig;!
在你的情况下,pi 代表一个数学实体,并且在使用 unicode 输入的普通文本中,你可以使用
This is $π$.
如果您加载该包unicode-math
。
该包提供了数字siunitx
的直接解释,因此您可以编写\pi
\SI{\pi/2}{\radian}
如果你插入 pi 字符,即使unicode-math
它也会抱怨
! Invalid token 'π' in numerical input.
在日志文件中。
答案2
TeX 仅在你响应错误消息时才会循环
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! siunitx error: "invalid-token-in-number"
!
! Invalid token 'π' in numerical input.
!
! See the siunitx documentation for further information.
!
! For immediate help type H <return>.
!...............................................
l.7 \SI{π/2}{\radian}
%Here latex hangs up
?
并返回,然后在出现以下错误时再次执行相同操作。(或者,如果您选择在滚动模式下运行,则自动忽略所有错误)
如果你继续下去,它最终会扩展,\q_no_value
并扩展为自身和 tex,然后循环。(在无错误的文档中,你永远不应该达到这样的“夸克”,但在出现错误之后,或多或少任何行为都是可能的)。
答案3
这将排版 pi,并在使用 \SI 时给出错误消息。SI 无法将 pi 识别为数字 3.14159....
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{fontspec}
\setmainfont{DejaVu Serif}
\usepackage{siunitx} %Einheiten
\begin{document}
This is π.
\SI{π/2}{\radian} %Here latex hangs up
\end{document}