π (pi) – 不要直接输入 - 编译器会挂起。这是错误吗?

π (pi) – 不要直接输入 - 编译器会挂起。这是错误吗?

使用 lualatex 和代码示例,我可以编译代码而不会出现任何错误,但 pi 没有显示。UTF-8 的这一部分尚未涵盖,还是有其他原因?

我在 \SI 环境中使用了 lualatex、xelatex 和 pdflatex。所有编译器都挂起,线程使用率达到 100%。没有错误。

我花了一段时间才发现自己的错误,所以我想报告它。只需使用 \pi。我也不知道在哪里发布错误报告(编译器/siunitx)也许有人可以解释一下为什么会发生这种情况?符号 希腊小写字母 PIU+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}

相关内容