LuaLaTeX 是否支持定义 JOIN 运算符 (⨝) 的等宽字体?

LuaLaTeX 是否支持定义 JOIN 运算符 (⨝) 的等宽字体?

上下文

我目前正在学习数据库课程。在该课程中,我们使用放松,一个关系代数计算器。在该计算器中,您可以使用UTF - 8字符作为运算符。以下是允许的查询:。还有π price σ model = 2001 Laptop一些其他运算符:π,,,,,,,,,,,,,,,,,,,,,,,,,,,和。σρτγ¬=÷-

我正在做一项家庭作业,涉及在该网站中编写查询。因此,我想完成以下任务。首先,让我介绍一些有助于您理解我的问题的内容。

我知道可以使用 LuaLaTeX 在我的文档中使用 UTF-8 字符。

\documentclass{article}

\usepackage{fontspec}
\usepackage{unicode-math}

\setmathfont[math-style=upright]{XITS Math}

\begin{document}
$A ⨝ B$
\end{document}

在此处输入图片描述

我还知道可以在minted环境中排版内联数学。

\documentclass{article}

\usepackage{minted}

\begin{document}

\begin{minted}[escapeinside=||, mathescape = true]{text}
foo |$\pi$| bar
\end{minted}

\end{document}

在此处输入图片描述

我可以整合这些知识并完成以下任务:在minted环境中插入 UTF-8 字符。

\documentclass{article}

\usepackage{fontspec}
\usepackage{unicode-math}

\usepackage{minted}

\setmathfont[math-style=upright]{XITS Math}

\begin{document}

\begin{minted}[escapeinside=||, mathescape = true]{text}
foo |$⨝$| bar
\end{minted}

\end{document}

在此处输入图片描述

但是,我想删除环境中的|$and部分。这样,我就可以将查询从 RelaX 复制到我的文档中,而无需事先格式化查询。$|minted

请注意,使用该包并使用 . 设置等宽字符的字体时,字符无法正确显示(请参阅下面的最低限度工作)fontspec\setmonofont{...}

\documentclass{article}

\usepackage{fontspec}
\usepackage{minted}

\setmonofont{CMU Typewriter Text}

\begin{document}

\begin{minted}{text}
This is displayed:

/etc/puppet/hieradata/
├── common.yaml
└── virtual
    ├── false.yaml
    └── true.yaml

This is not correctly displayed: ⨝
\end{minted}

\end{document}

在此处输入图片描述

我认为发生这种情况是因为不支持CMU Typewriter Text。这引出了我的问题。

问题

LuaLaTeX是否支持π任何等宽字体可以显示我提到的所有字符(即,,,,,,,,,,,,,,,,,,,,,,,,,,,,和)​​​​​​​​σρτγ¬=÷-

答案1

事实上,Kurinto Type 是Kurinto 字体。虽然我对它们的质量表示怀疑(作者说它们是为使用 MSWord 输入而设计的),但它们涵盖了您需要的所有字符。

\documentclass{standalone}
\usepackage{fontspec}
\setmainfont{Kurinto Type}
\begin{document}
π, σ, ρ, ←, →, τ, γ, ∧, ∨, ¬, =, ≠, ≥, ≤, ∩, ∪, ÷, -, ⨯, ⨝, ⟕, ⟖, ⟗, ⋉, ⋊ and ▷
\end{document}

在此处输入图片描述

答案2

texlive 附带一个有用的程序albatross,可以显示具有字形的字体:

$ albatross 0x2A1D 
        __ __           __
.---.-.|  |  |--.---.-.|  |_.----.-----.-----.-----.
|  _  ||  |  _  |  _  ||   _|   _|  _  |__ --|__ --|
|___._||__|_____|___._||____|__| |_____|_____|_____|

                    Unicode code point [2A1D] mapping to ?                     
┌─────────────────────────────────────────────────────────────────────────────┐
│ Font name                                                                   │
├─────────────────────────────────────────────────────────────────────────────┤
│ FreeMono                                                                    │
├─────────────────────────────────────────────────────────────────────────────┤
│ FreeSerif                                                                   │
├─────────────────────────────────────────────────────────────────────────────┤
│ Segoe UI Symbol                                                             │
├─────────────────────────────────────────────────────────────────────────────┤
│ Symbola                                                                     │
├─────────────────────────────────────────────────────────────────────────────┤
│ Unifont                                                                     │
└─────────────────────────────────────────────────────────────────────────────┘

因此尝试使用 FreeMono 作为可能的等宽字体

\documentclass{article}
\tracinglostchars2
\usepackage{fontspec}
\setmainfont{Noto Serif}
\setmonofont{FreeMono}
\begin{document}

\begin{verbatim}
This is displayed:

/etc/puppet/hieradata/
├── common.yaml
└── virtual
    ├── false.yaml
    └── true.yaml

This is not correctly displayed: ⨝
\end{verbatim}
\end{document}

生产

在此处输入图片描述

答案3

您可以从其他具有这些符号的字体中借用缺少的符号,例如 Symbola。

\documentclass{article}

\usepackage{fontspec}
\usepackage{minted}
\usepackage{newunicodechar,graphicx}

\setmonofont{CMU Typewriter Text}
\newfontface{\missing}{Symbola}[FakeBold=6]

\ExplSyntaxOn
\clist_map_inline:nn {∧, ∨, ≠, ≥, ≤, ∩, ∪, ⨯, ⨝, ⟕, ⟖, ⟗, ⋉, ⋊, ▷}
 {
  \newunicodechar{#1}{\resizebox{0.5em}{!}{\missing #1}}
 }
\ExplSyntaxOff

\begin{document}

\begin{minted}{text}
This is displayed:

/etc/puppet/hieradata/
├── common.yaml
└── virtual
    ├── false.yaml
    └── true.yaml

This is not correctly displayed: ⨝
∧ ∨ ≠ ≥ ≤ ∩ ∪ ⨯ ⨝ ⟕, ⟖ ⟗ ⋉ ⋊ ▷
π, σ, ρ, ←, →, τ, γ, ∧, ∨, ¬, =, ≠, ≥, ≤, 
∩, ∪, ÷, -, ⨯, ⨝, ⟕, ⟖, ⟗, ⋉, ⋊ and ▷
\end{minted}

\end{document}

在此处输入图片描述

答案4

https://www.fileformat.info/info/unicode/char/2A1D/fontsupport.htm产生以下列表:

Cambria、Cambria Math、Code2000、EversonMono、EversonMono-Bold、EversonMono-BoldOblique、EversonMono-Oblique、FreeMono、FreeSerif、PragmataPro Liga Regular、Quivira、Segoe UI Symbol、STIX Two Math、Symbola、Unifont

我已经删除了字形不好的条目。不要问我哪些字体适当地等宽字体;可能所有名称中都带有“Mono”。

除了其他答案中所说的内容之外,您还可以尝试 Everson 的字体:

\documentclass{article}
\pagestyle{empty}
\usepackage{fontspec}
\usepackage{minted}
\setmonofont{your copy of Everson Mono.ttf}
\begin{document}
\begin{minted}{text}
This is displayed:

/etc/puppet/hieradata/
├── common.yaml
└── virtual
    ├── false.yaml
    └── true.yaml

This IS correctly displayed: ⨝
\end{minted}
\end{document}

运行lualatex --shell-escape收益率

输出

相关内容