TikZ、日语 babel 和 LuaLaTeX 发生冲突

TikZ、日语 babel 和 LuaLaTeX 发生冲突

显然,https://ctan.org/pkg/babelhttps://ctan.org/pkg/pgf。我无法使用在 TeX.SE 上找到的类似问题的解决方案来解决以下问题。

笔记。

  • LuaLaTeX是必需的。 不会发生此问题XeLaTeX
  • 我在用TeX Live 2020包含所有最新更新。
  • 使用包luatexja-fontspec代替的babel命令\foreignlanguage{japanese}{text}似乎不是一个选择,因为显然它与其他包有太多冲突,而且并非所有包都包含在 MWE 中。
  • 删除\foreignlanguage{japanese}\babelprovide{japanese}替换缺少日语连字符和过满的问题\hboxes

数学方程。

\documentclass[twocolumn]{scrartcl}

\usepackage{fontspec}
\newfontfamily{\japaneseFamily}{NotoSerifCJKjp}[Scale=MatchLowercase,UprightFont=*-Regular,BoldFont=*-Bold,ItalicFont=*-Regular]

\usepackage[main=USenglish,showlanguages]{babel}
\babelprovide{japanese}

\usepackage{musixtex}

\usepackage{tikz}
\usetikzlibrary{babel}

\begin{document}

\section{English}
Language: \the\language. 
But I must explain to you how all this mistaken idea of denouncing of a pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. 

\section{Japanese}
\foreignlanguage{japanese}{Language: \the\language. \japaneseFamily{}再とこ書成テ回気86非康ラがだ質品3年ずこ狭罪ス性換カレツ者森越俺むよぞん。歴び氏麻情ーぎ再分特ぽリく根跡ラヒイ囲密ゅゃさ監媛18査わ縁襲アチオ件校レ真韓どをさゅ元懇リほ中再イソヒ録崎着るざ。}

\begin{enumerate}
    \item \foreignlanguage{japanese}{Language: \the\language. \japaneseFamily{}再とこ書成テ回気86非康ラがだ質品3年ずこ狭罪ス性換カレツ者森越俺むよぞん。歴び氏麻情ーぎ再分特ぽリく根跡ラヒイ囲密ゅゃさ監媛18査わ縁襲アチオ件校レ真韓どをさゅ元懇リほ中再イソヒ録崎着るざ。}
\end{enumerate}

\section{musixtex}
\begin{music}
\startextract%
\NOtes\zw{c}\zh{e}\qa{g}\enotes%
\zendextract
\end{music}

\section{tikz}
\begin{tikzpicture} 
    \filldraw[fill=.!20]
        (0,0) rectangle (2,2);
    \path[draw] 
        (1,-2) node[anchor=base] (tmp) {rectangle} (tmp) to  (1,1);
\end{tikzpicture}

\end{document}

日志。

这似乎是日志文件的相关部分:

warning  (hyphenation): bad specification: [\directlua]:1: attempt to index a n
il value
.
\endpgfpicture ...globally \endgroup \hss \egroup 
                                                  \pgf@restore@layerlist@fro...

l.42 \end{tikzpicture}

PDF。

此时继续编译将产生一份看起来接近我预期的文档。

在此处输入图片描述

附加问题。

有人知道是否.如手册第 2.6.3 节所述https://ctan.org/pkg/xcolor是否有更具描述性和更常用的名称(我想到的是“当前颜色选择器”)或别名?有没有简单的替代方案?

答案1

我不想窃取@Ulrike Fisher 的功劳。我决定在这里发布此内容,因为发布解决方法作为答案似乎很自然。此外,它允许我接受答案以将此问题标记为已关闭。

@Ulrike Fisher 隐含地发布了两个即时解决方案https://github.com/latex3/babel/issues/99这个问题似乎是一个错误。她在对我的问题的评论中没有直接提到这些。

另一个不太方便的解决方法是替换

\section{tikz}
\begin{tikzpicture} 
    \filldraw[fill=.!20]
        (0,0) rectangle (2,2);
    \path[draw] 
        (1,-2) node[anchor=base] (tmp) {rectangle} (tmp) to  (1,1);
\end{tikzpicture}

经过

\section{tikz}
\colorlet{savedTikZTmpColor}{.}%new
\begin{tikzpicture} 
    \filldraw[fill=savedTikZTmpColor!20]%observe change 
        (0,0) rectangle (2,2);
    \path[draw] 
        (1,-2) node[anchor=base] (tmp) {rectangle} (tmp) to  (1,1);
\end{tikzpicture}

该问题已由 3.51 版解决https://ctan.org/pkg/babel就像当前维护者@Javier Bezos 承诺的那样https://github.com/latex3/babel/issues/99。MWE 仅需要更新,但要对 MWE 进行更改。

相关内容