%% $Id: juliamono-doc.tex 1096 2025-05-14 06:44:48Z 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,hvextern} \lstset{basicstyle=\ttfamily\small} %\setkeys{hv}{lstOptions={basicstyle=\Mono\small,columns=fixed}} \setkeys{hv}{moveToExampleDir,ExampleDir=Examples,showFilename=false, verbose, progpath=,} \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?'"',.;:!\\ „¡“¶¢[]|≠¿'«∑€®†Ω¨⁄øπ •±å‚∂ƒ©ªº∆@œæç√∫µ\\ “¬”£fi·¯˙˚»„‰¸˝ˇÁÛØ∏°’ÆŒfl ıÓÌÏ™ÍÅ≥‡ÙÇ◊‹›˘˛÷— } \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[qradjust=0pt]{ 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 DefaultFeatures & code & for all font styles\\\midrule Light & false & \\ Medium & false & \\ Semi & false & \\ Black & false & \\ ExtraBold & false & \\ calt & true & Ligatures\\ zero & true & Slashed zero\\ Scale & 1 & \\ FakeStretch & 1 \\ \bottomrule \end{tabular} \clearpage \begin{externalDocument}[ % grfOptions={width=0.5\linewidth}, frame,compiler=lualatex, crop, usefancyvrb, force=true, runs=2,code,docType=latex, frame, ]{juliamono} \documentclass{article} \pagestyle{empty} %StartVisiblePreamble \usepackage[Light]{juliamono}% Regular and Italic %StopVisiblePreamble \begin{document} \ttfamily Default text, \textbf{Bold text}, \textit{Italic text}, \textbf{\textit{Bold Italic text}} \end{document} \end{externalDocument} \begin{externalDocument}[ % grfOptions={width=0.5\linewidth}, frame,compiler=lualatex, crop, usefancyvrb, force=true, runs=2,code,docType=latex, ]{juliamono} \documentclass{article} \pagestyle{empty} %StartVisiblePreamble \usepackage[Medium]{juliamono}% Regular and Italic %StopVisiblePreamble \begin{document} \ttfamily Default text, \textbf{Bold text}, \textit{Italic text}, \textbf{\textit{Bold Italic text}} \end{document} \end{externalDocument} \begin{externalDocument}[ % grfOptions={width=0.5\linewidth}, frame,compiler=lualatex, crop, usefancyvrb, force=true, runs=2,code,docType=latex, frame, ]{juliamono} \documentclass{article} \pagestyle{empty} %StartVisiblePreamble \usepackage[Semi]{juliamono}% Bold and BoldItalic %StopVisiblePreamble \begin{document} \ttfamily Default text, \textbf{Bold text}, \textit{Italic text}, \textbf{\textit{Bold Italic text}} \end{document} \end{externalDocument} \begin{externalDocument}[ % grfOptions={width=0.5\linewidth}, frame,compiler=lualatex, crop, usefancyvrb, force=true, runs=2,code,docType=latex, frame, ]{juliamono} \documentclass{article} \pagestyle{empty} %StartVisiblePreamble \usepackage[ExtraBold]{juliamono}% Bold and BoldItalic %StopVisiblePreamble \begin{document} \ttfamily Default text, \textbf{Bold text}, \textit{Italic text}, \textbf{\textit{Bold Italic text}} \end{document} \end{externalDocument} \begin{externalDocument}[ % grfOptions={width=0.5\linewidth}, frame,compiler=lualatex, crop, usefancyvrb, force=true, runs=2,code,docType=latex, frame, ]{juliamono} \documentclass{article} \pagestyle{empty} %StartVisiblePreamble \usepackage[Black]{juliamono}% Bold and BoldItalic %StopVisiblePreamble \begin{document} \ttfamily Default text, \textbf{Bold text}, \textit{Italic text}, \textbf{\textit{Bold Italic text}} \end{document} \end{externalDocument} \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\normalfont\mdseries \subsection{JuliaMono Regular}%--------Regular---------------- \ttfamily \listOfCharacters \bfseries(Bold)\\ \listOfCharacters \mdseries\itshape(Italic)\\ \listOfCharacters \bfseries\itshape(BoldItalic)\\ \listOfCharacters \upshape\mdseries\normalfont \subsection{JuliaMono Medium}%---------------Medium------------- \JuliaMonoMedium \listOfCharacters \bfseries(Bold)\\ \listOfCharacters \mdseries\itshape(Italic)\\ \listOfCharacters \bfseries\itshape(BoldItalic)\\ \listOfCharacters \upshape\mdseries\normalfont \subsection{JuliaMono SemiBold}%---------------Semi------------- \JuliaMonoSemi \listOfCharacters \bfseries(Bold)\\ \listOfCharacters \mdseries\itshape(Italic)\\ \listOfCharacters \bfseries\itshape(BoldItalic)\\ \listOfCharacters \upshape\mdseries\normalfont \subsection{JuliaMono ExtraBold}%---------------ExtraBold------------ \JuliaMonoExtraBold \listOfCharacters \bfseries(ExtraBold)\\ \listOfCharacters \mdseries\itshape(Italic)\\ \listOfCharacters \bfseries\itshape(BoldItalic)\\ \listOfCharacters \upshape\mdseries\normalfont \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 tabular 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 disabled, 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{---} ->{\JuliaUnsetCalt ---} \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}. 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 & \JuliaUnsetCalt-> & \Lss08{->}& distinct ligatures\\ 09 & f & \Lss09{f} & \\ 10 & r & \Lss10{r} &\\ 11 & ` & \Lss11{`} & thinner grave\\ 12 & ==== & \Lss12{====} & joining equals\\ 13 &