%% $Id: juliamono-doc.tex 1089 2025-05-10 14:00:44Z herbert $

\listfiles
\documentclass[11pt]{article}
\usepackage{geometry}

\usepackage{fontspec}
\setmainfont{Libertinus Serif}
\setsansfont{Libertinus Sans}

\usepackage[Scale=0.88,FakeStretch=0.9]{juliamono}

\usepackage{parskip,unicodefonttable}

\usepackage{biblatex}
\addbibresource{\jobname.bib}
\usepackage{booktabs} % for examples
\usepackage{xltabular} % for tabulars
\usepackage{listings} % for code
\usepackage{showexpl} % for code

\usepackage{hvlogos} % for Wikipedia W
\usepackage{array,hvqrurl}

\pagestyle{headings}

\PassOptionsToPackage{colorlinks,hyperfootnotes=false}{hyperref}
\usepackage{hyperref}
% define \code for url-like breaking of typewriter fragments.
\ifx\nolinkurl\undefined \let\code\url \else \let\code\nolinkurl \fi

% Define \cs to prepend a backslash, and be unbreakable:
\DeclareRobustCommand\cs[1]{\mbox{\texttt{\char`\\#1}}}

\def\Lcs[#1]{\texttt{\textbackslash#1}}
\def\NonLetters{\{\}[]()<>\$*-+=/\_\%\textasciicircum@\&|\textasciitilde?'"',.;:!}

\newcommand\listOfCharacters{%
abcdefghijklmnopqrstuvwxyzáéóúàèòùçå 12345 \\
ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÓÚÀÈÒÚÇÅ 67890 \\
\{\}[]()<>\$*-+=/\_\%\textasciicircum@\&|\textasciitilde?'"',.;:!\\
„¡“¶¢[]|≠¿'«∑€®†Ω¨⁄øπ
•±å‚∂ƒ©ªº∆@œæç√∫µ\\
“¬”£ﬁ·¯˙˚»„‰¸˝ˇÁÛØ∏°’ÆŒﬂ
ıÓÌÏ™ÍÅ≥‡ÙÇ◊‹›˘˛÷—
}


\title{JuliaMono -- a monospaced font for scientific and technical writing}
\author{Herbert Voß}
\begin{document}
\maketitle
\tableofcontents

\section{Introduction}

\begin{quote}
The typeface was introduced at the 2020 Julia Programming Language conference, 
JuliaCon %(which was to be in Lisbon, Portugal, but a certain virus had other 
%ideas)
 as my contribution to the 
festivities.~\parencite{web}
\end{quote}

\section{The font files}

The font files are copyright by the »JuliaMono Project Authors«
 (\hvqrurl{https://github.com/cormullion/juliamono}) with an  OFL license
»This Font Software is licensed under the SIL Open Font License, 
Version 1.1. This license is available with a FAQ at
\hvqrurl{ https://scripts.sil.org/OFL}.


\begin{verbatim}
voss>juliamono:$ luafindfont juliamono
  No.          Filename          Symbolic                Path                
   1.           JuliaMono-Black.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
   2.     JuliaMono-BlackItalic.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
   3.            JuliaMono-Bold.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
   4.      JuliaMono-BoldItalic.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
   5.       JuliaMono-ExtraBold.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
   6. JuliaMono-ExtraBoldItalic.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
   7.           JuliaMono-Light.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
   8.     JuliaMono-LightItalic.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
   9.          JuliaMono-Medium.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
  10.    JuliaMono-MediumItalic.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
  11.         JuliaMono-Regular.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
  12.   JuliaMono-RegularItalic.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
  13.        JuliaMono-SemiBold.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
  14.  JuliaMono-SemiBoldItalic.ttf juliamono  /Users/voss/Library/Fonts/JuliaMono/
\end{verbatim}



The package \texttt{juliamono} supports only the typewriter family
with specific optional
arguments:

\begin{tabular}{@{} >{\ttfamily}l l l @{}}\\\toprule
\emph{name} & \emph{value} &\emph{meaning}\\\midrule
TT & code &  options for DejaVu Sans Mono\\
DefaultFeatures & code &  for all font styles\\\bottomrule
\end{tabular}

\bigskip
The fonts are preset with \texttt{Scale=0.92}. For this documentation
we use instead:

\begin{verbatim}
\usepackage[Scale=0.88,FakeStretch=0.9]{juliamono}
\end{verbatim}



\twocolumn[\section{Font examples}]

\subsection{JuliaMono Light}%----------Light----------------
\JuliaMonoLight
\listOfCharacters

\bfseries(Bold)\\
\listOfCharacters

\mdseries\itshape(Italic)\\
\listOfCharacters

\bfseries\itshape(BoldItalic)\\
\listOfCharacters


\upshape
\subsection{JuliaMono Regular}%--------Regular----------------
\ttfamily
\listOfCharacters

\bfseries(Bold)\\
\listOfCharacters

\mdseries\itshape(Italic)\\
\listOfCharacters

\bfseries\itshape(BoldItalic)\\
\listOfCharacters


\upshape\mdseries
\subsection{JuliaMono Medium}%---------------Medium-------------
\JuliaMonoMedium
\listOfCharacters

\bfseries(Bold)\\
\listOfCharacters

\mdseries\itshape(Italic)\\
\listOfCharacters

\bfseries\itshape(BoldItalic)\\
\listOfCharacters


\upshape\mdseries
\subsection{JuliaMono SemiBold}%---------------Semi-------------
\JuliaMonoSemi
\listOfCharacters

\bfseries(Bold)\\
\listOfCharacters

\mdseries\itshape(Italic)\\
\listOfCharacters

\bfseries\itshape(BoldItalic)\\
\listOfCharacters



\upshape\mdseries
\subsection{JuliaMono Black}% --------------Black-------------
\JuliaMonoBlack
\listOfCharacters

\bfseries(Bold)\\
\listOfCharacters

\mdseries\itshape(Italic)\\
\listOfCharacters

\bfseries\itshape(BoldItalic)\\
\listOfCharacters

\upshape\mdseries
\subsection{JuliaMono ExtraBold}%---------------ExtraBold------------
\JuliaMonoExtraBold
\listOfCharacters

\bfseries(ExtraBold)\\
\listOfCharacters

\mdseries\itshape(Italic)\\
\listOfCharacters

\bfseries\itshape(BoldItalic)\\
\listOfCharacters

\upshape\mdseries
\subsection{JuliaMono Black}%-----------------Black--------------
\JuliaMonoBlack
\listOfCharacters

\bfseries(Bold)\\
\listOfCharacters

\mdseries\itshape(Italic)\\
\listOfCharacters

\bfseries\itshape(BoldItalic)\\
\listOfCharacters

\onecolumn
\normalfont\normalshape\mdseries\rmfamily

The vertical rule shows that the complete tanular is set in the typewriter font.


\ttfamily
\begin{xltabular}{\linewidth}{@{}lX@{}}
Ancient Greek & Ἄδμηθ’, ὁρᾷς γὰρ τἀμὰ πράγμαθ’ \makebox(0,0){%
\rule[-29.7cm]{0.4pt}{15cm}}%
ὡς ἔχει, λέξαι θέλω σοι πρὶν θανεῖν ἃ βούλομαι.\\
Armenian  & Իմ օդաթիռը լի է օձաձկերով\\
Bulgarian  & Я, пазачът Вальо уж бди, а скришом хапва кюфтенца зад щайгите.\\
Catalan & «Dóna amor que seràs feliç!». Això, il·lús company geniüt, ja és un lluït rètol blavís d’onze kWh.\\
Czech & Zvlášť zákeřný učeň s ďolíčky běží podél zóny úlů\\
Danish & Quizdeltagerne spiste jordbær med fløde, mens cirkusklovnen Walther spillede på xylofon.\\
English & Sphinx of black quartz, judge my vow.\\
Estonian & Põdur Zagrebi tšellomängija-följetonist Ciqo külmetas kehvas garaažis\\
Finnish & Charles Darwin jammaili Åken hevixylofonilla Qatarin yöpub Zeligissä.\\
French & Voix ambiguë d’un cœur qui au zéphyr préfère les jattes de kiwi.\\
Georgian & სწრაფი ყავისფერი მელა ახტება ზარმაც ძაღლს.\\
German & Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich.\\
Greek & Ταχίστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός.\\
Guarani & Hĩlandiagua kuñanguéra oho peteĩ saʼyju ypaʼũme Gavõme omboʼe hag̃ua ingyleñeʼẽ mitãnguérare neʼẽndyʼỹ.\\
Hungarian & Jó foxim és don Quijote húszwattos lámpánál ülve egy pár bűvös cipőt készít.\\
IPA & [ɢʷɯʔ.nas.doːŋ.kʰlja] [ŋan.ȵʑi̯wo.ɕi̯uĕn.ɣwa]\\
Icelandic & Kæmi ný öxi hér, ykist þjófum nú bæði víl og ádrepa.\\
Irish & Ċuaiġ bé ṁórṡáċ le dlúṫspád fíorḟinn trí hata mo ḋea-ṗorcáin ḃig.\\
Latvian & Muļķa hipiji mēģina brīvi nogaršot celofāna žņaudzējčūsku.\\
Lithuanian & Įlinkdama fechtuotojo špaga sublykčiojusi pragręžė apvalų arbūzą.\\
Macedonian & Ѕидарски пејзаж: шугав билмез со чудење џвака ќофте и кељ на туѓ цех.\\
Norwegian & Jeg begynte å fortære en sandwich mens jeg kjørte taxi på vei til quiz\\
Polish & Pchnąć w tę łódź jeża lub ośm skrzyń fig.\\
Portuguese & Luís argüia à Júlia que «brações, fé, chá, óxido, pôr, zângão» eram palavras do português.\\
Romanian & Înjurând pițigăiat, zoofobul comandă vexat whisky și tequila.\\
Russian & Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства.\\
Scottish & Mus d’fhàg Cèit-Ùna ròp Ì le ob.\\
Serbian & Ајшо, лепото и чежњо, за љубав срца мога дођи у Хаџиће на кафу.\\
Spanish & Benjamín pidió una bebida de kiwi y fresa; Noé, sin vergüenza, la más champaña del menú.\\
Swedish & Flygande bäckasiner söka hwila på mjuka tuvor.\\
Turkish & Pijamalı hasta yağız şoföre çabucak güvendi.\\
Ukrainian  & Чуєш їх, доцю, га? Кумедна ж ти, прощайся без ґольфів!
\end{xltabular}


\normalfont\normalshape\mdseries\rmfamily
\section{Contextual and stylistic alternates (»ligatures«)}

\subsection{Ligatures}
The ligatures with a double dash are only possible, if the \TeX\ ligatures
are disable, which is done by the package by default.

{\ttfamily
\begin{tabular}{@{}>{\JuliaUnsetCalt}l l }
\emph{In} & \emph{Out}\\
-> &   ->\\
=> &     =>\\
|> &     |>\\
<| &     <|\\
:: &     ::\\
<-- &     <--\\
--> &    -->\\
<--> &    <-->
\end{tabular}}

There are two commands to set and unset this behaviour. With \cs{JuliaUnsetCalt}
the ligatures are reset to the ones from \TeX, e.g. \texttt{---}:

\begin{LTXexample}
\ttfamily \JuliaUnsetCalt
-> -->  => --- (\TeX-active)

\JuliaSetCalt
-> --> => --- (\TeX-inactive)
\end{LTXexample}


\subsection{Stylistic Alternatives}

\subsubsection{Slashed Zero}
By default the zero has a slash instead of a dot:

{\ttfamily
0 \addfontfeature{RawFeature=-zero} 0\par}

It can be reset to the dot with the package option \verb|zero=false|
or inside the document with 

\verb|\addfontfeature{RawFeature=-zero}|


\subsubsection{Stylistic Sets}
It can be set by the two macros \cs{Lss\{number\}\{text\}} and 
\cs{LSS<number>}. The first one has an argument which will be set locally with
the given number and the second one works like a switch. It is global to the
current group.


\begin{longtable}{@{}l >{\ttfamily}l >{\ttfamily}l l}
\emph{no} & \emph{Default} & \emph{Alt}\\
01 & g  & \Lss01{g} & not for italic\\
02 & @  & \Lss02{@} & \\
03 & Jj & \Lss03{Jj}& \\
04 & \addfontfeature{RawFeature=-zero}0  & \Lss04{0} & \\
05 & *  & \Lss05{*} & lighter asterisk\\
06 & a  & \Lss06{a} & not for italic\\
07 & `  & \Lss07{`} & smaller grave\\
08 & -> & \Lss08{->}& distinct ligatures\\
09 & f  & \Lss09{f} & \\
10 & r  & \Lss10{r} &\\
11 & `  & \Lss11{`} & thinner grave\\
12 & ==== & \Lss12{====} & joining equals\\
13 & <!-- & \Lss13{<!--} & HTML comment\\
14 & == & \Lss14{==} & double equals\\
15 & 𝒜ℬ𝒞\ldots & \Lss15{𝒜ℬ𝒞\ldots} & Math Script Roundhand\\
16 & ()[]\{\} & \Lss16{()[]\{\}} & smaller parentheses etc.\\
17 & ⣰⣲⣴ & \Lss17{⣰⣲⣴} & quadrants replace Braille dots\\
18 & 𝒜ℬ𝒞\ldots & \Lss18{𝒜ℬ𝒞\ldots} & Ball-point pen math script\\
20 & (\_) & \Lss20{(\_)} & splashtidy
\end{longtable}



\subsubsection{Character Variations}

It can be set by the two macros \cs{Lcv\{number\}\{text\}} and 
\cs{LCV<number>}. The first one has an argument which will be set locally with
the given number and the second one works like a switch. It is global to the
current group.

\begin{longtable}{@{}l >{\ttfamily}l >{\ttfamily}l l}
\emph{no} & \emph{Default} & \emph{Var}\\
01 & 3  & \Lcv01{3} & \\
02 & 7  & \Lcv02{7} & \\
03 & \textasciitilde & \Lcv03{\textasciitilde}  &alternate ASCII tilde\\
04 & l & \Lcv04{l} & alternate l
\end{longtable}


\nocite{*}
\printbibliography


\section{The font list of JuliaMono}


\displayfonttable{JuliaMono-Regular.ttf}%[Scale=0.95]

%\displayfonttable{GentiumPlus-Italic.ttf}%[Scale=0.95]





\end{document}
