![LuaTex 错误忽略 {}(如果是,如何报告?)](https://linux22.com/image/369001/LuaTex%20%E9%94%99%E8%AF%AF%E5%BF%BD%E7%95%A5%20%7B%7D%EF%BC%88%E5%A6%82%E6%9E%9C%E6%98%AF%EF%BC%8C%E5%A6%82%E4%BD%95%E6%8A%A5%E5%91%8A%EF%BC%9F%EF%BC%89.png)
输入'
和 然后"
LyX 会自动将它们转换为'
和”
。代码变为 ,'{}''
输出为 右单引号 然后是 右双引号’ ”
。如果没有,{}
则'''
输出将是 右双引号 然后是 右单引号” ’
。对于 ``{}`` 也是如此。
这应该变成左单引号然后左双引号‘ “
而不是左双引号然后左单引号“ ‘
。
这在 pdflatex 中按预期运行良好。
然而,LuaTex 会忽略{}
并将该序列视为'''
或```
。
修复一方面很简单,如果用户输入'
然后"
,将代码从 改为'{}''
。'{}\textdblquoteright
事实上,将所有输入的情况都"
改为\textdblquoteright
。
这是典型句子中的一个问题,例如我会输入以下句子:
Brian said, ``Alice turned to me and yelled,
停下来!’”
Lyx 显示:
Brian said, “Alice turned to me and yelled, ‘Stop!’”
Lyx 的代码:
布莱恩说,“爱丽丝转向我并大喊‘停!’{}”
pdflatex 输出:
Brian said, “Alice turned to me and yelled, ‘Stop!’”
LuaTex 输出(不正确):
Brian said, “Alice turned to me and yelled, ‘Stop!”’
解决左引号问题非常困难。如果您有以下三条引号,那么除了手动编码 \textdblquoteleft 之外没有其他简单的解决方法。以下方法没问题,因为双引号在前:
Lucy said, “‘Sting’ is Gordon's stage name.”
以下内容需要输入 \textdblquoteleft 才能在 LuaTex 中正确显示:
Alice said, “Lucy said, ‘“Sting” is Gordon's stage name.’”
事实上,LuaTex 会将其显示为:
Alice said, “Lucy said, “‘Sting” is Gordon's stage name.”’
答案1
这是一个已记录的功能,它{}
不会抑制 luatex 中的连字,因此不是一个错误。
`\mbox{}``
会起作用。而在另一边
'\mbox{}''