6

The context

I'm currently enrolled in a Database course. In that course, we are using RelaX, a relational algebra calculator. In that calculator, you can use UTF-8 characters as operators. The following is an allowed query: π price σ model = 2001 Laptop. There also some other operators: π, σ, ρ, , , τ, γ, , , ¬, =, , , , , , ÷, -, , , , , , , and .

I am working on a homework assignment that involves writing queries in that site. For this reason, I would like to accomplish the following. First, let me introduce some things that would help you understand my question.

I know that it is possible to use UTF-8 characters within my document by using LuaLaTeX.

\documentclass{article}

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

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

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

enter image description here

I also know that it is possible to typeset inline math in minted environments.

\documentclass{article}

\usepackage{minted}

\begin{document}

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

\end{document}

enter image description here

I can put together those knowledges and accomplish the following: Insert UTF-8 characters in minted environments.

\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}

enter image description here

However, I would like to get rid of the |$ and $| part within the minted environment. Thus, I would be able to copy queries from RelaX to my document without the need of previously formatting the query.

Note that the character is not correctly displayed when using the fontspec package and setting a font for monospaced characters with \setmonofont{...}. (see minimal working below)

\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}

enter image description here

I think this happens because is not supported by CMU Typewriter Text. This leads to my question.

The question

Is there any monospace font supported by LuaLaTeX that would display all those characters that I mentioned (namely, π, σ, ρ, , , τ, γ, , , ¬, =, , , , , , ÷, -, , , , , , , and )

1
  • You can try NewCM-Book Math or Concrete otf math fonts for something similar in style to CM fonts. Both contain the characters you want. Commented Mar 1 at 12:21

4 Answers 4

7

In fact, there's Kurinto Type, part of Kurinto typefaces. Although I doubt about their quality (the author says they are designed to type with MSWord), they cover all the characters you require.

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

enter image description here

3
  • Thanks for answering! How did you find out that that font defines the JOIN operator? Did you already know that font? Commented May 15, 2021 at 8:53
  • 4
    @RodrigoMorales There's an utility named albatross (in up-to-date distributions) which allows you to find a symbol invoking, e.g. albatross ⨝ so fonts containing the requested symbol will be shown in the terminal. AFAIK Kurinto fonts aren't part of TeX Live or MikTeX, I knew them for other reasons and by mere chance 😄
    – user226564
    Commented May 15, 2021 at 8:57
  • 1
    Besides albatross, have a look at dp4 Font Viewer (only Windows). Commented May 15, 2021 at 10:03
13

texlive comes with a useful program albatross that shows fonts that have a glyph:

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

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

so trying FreeMono as a likely monospace

\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}

produces

enter image description here

2
  • Looks like you need a java runtime to run albatross
    – dedded
    Commented Mar 1 at 0:20
  • @dedded blame Paulo:-) Commented Mar 1 at 0:27
0

You can borrow the missing symbols from another font that has them, for instance 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}

enter image description here

0

https://www.fileformat.info/info/unicode/char/2A1D/fontsupport.htm yields the following list:

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

I removed the entries with bad glyphs already. Don't ask me which fonts are properly monospaced; probably, all with “Mono” in their names.

In addition to what was said in other answers, you may try Everson's font:

\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}

Running lualatex --shell-escape yields

output

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .