summaryrefslogtreecommitdiff
path: root/support/findfont
diff options
context:
space:
mode:
Diffstat (limited to 'support/findfont')
-rw-r--r--support/findfont/CHANGELOG3
-rw-r--r--support/findfont/README.md36
-rw-r--r--support/findfont/doc/Examples/exa05.txt42
-rw-r--r--support/findfont/doc/Examples/exa06.txt19
-rw-r--r--support/findfont/doc/findfont-doc.pdfbin60791 -> 0 bytes
-rw-r--r--support/findfont/doc/luafindfont-doc.pdfbin0 -> 63280 bytes
-rw-r--r--support/findfont/doc/luafindfont-doc.tex (renamed from support/findfont/doc/findfont-doc.tex)51
-rw-r--r--support/findfont/man/findfont.120
-rwxr-xr-xsupport/findfont/scripts/luafindfont.lua (renamed from support/findfont/scripts/findfont.lua)108
9 files changed, 182 insertions, 97 deletions
diff --git a/support/findfont/CHANGELOG b/support/findfont/CHANGELOG
index e70670c61f..9f6e801161 100644
--- a/support/findfont/CHANGELOG
+++ b/support/findfont/CHANGELOG
@@ -1,3 +1,6 @@
+0.04 2021-11-29 - rename the lua file to luafindfont
+ - do not use xindex-lapp, handle the options by
+ standard arg field
0.03 2021-11-27 - added manpage
- added "*" for output of all fonts
- added option -n for no output of symbolic names
diff --git a/support/findfont/README.md b/support/findfont/README.md
index 5bf69cce50..1148ac3b78 100644
--- a/support/findfont/README.md
+++ b/support/findfont/README.md
@@ -1,30 +1,34 @@
-# findfont
+# luafindfont
Searching for fonts in the font database. It needs Lua 5.3 which
will be included in at least LuaTeX 1.09 (TeXLive 2019)
-The syntax of `findfont`
+## Usage
+The syntax of `luafindfont`
-findfont [options] <font name>
+```
+luafindfont [options] <font name>
+```
parameter handling
- -q,--quiet
- -h,--help
- -o,--otfinfo (default 0)
- -i,--info (default 0)
- -v... Verbosity output
- -m,--max_string (default 90)
- -n,--nosymbolicnames
- <font> (string)
-\end{verbatim}
+- -h,--help
+- -o,--otfinfo (default 0)
+- -i,--info (default 0)
+- -v,--verbose
+- -m,--max_string (default 90)
+- -n,--nosymbolicnames
+- <font> (string)
-For example:
-findfont times
-findfont palatino -o 3
-findfont -i 3 -m 50 arial
+## Examples:
+```
+-luafindfont times
+-luafindfont palatino -o 3
+-luafindfont -i 3 -m 50 arial
+```
+## copyright
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
diff --git a/support/findfont/doc/Examples/exa05.txt b/support/findfont/doc/Examples/exa05.txt
index 577bd48d5b..ddcd0b86a3 100644
--- a/support/findfont/doc/Examples/exa05.txt
+++ b/support/findfont/doc/Examples/exa05.txt
@@ -1,18 +1,28 @@
We are using Lua 5.3
+Looking for font "*"
Check for file /usr/local/texlive/texmf-var/luatex-cache/generic/names/luaotfload-names
- Nr. Fontname Path
- 1. MinionMath-Bold.otf /Users/voss/Library/Fonts/MinionMath/
- 2. MinionMath-Regular.otf /Users/voss/Library/Fonts/MinionMath/
- 3. MinionPro-Bold.otf /Users/voss/Library/Fonts/MinionPro/
- 4. MinionPro-BoldCn.otf /Users/voss/Library/Fonts/MinionPro/
- 5. MinionPro-BoldCnIt.otf /Users/voss/Library/Fonts/MinionPro/
- 6. MinionPro-BoldIt.otf /Users/voss/Library/Fonts/MinionPro/
- 7. MinionPro-Capt.otf /Users/voss/Library/Fonts/MinionPro/
- 8. MinionPro-Disp.otf /Users/voss/Library/Fonts/MinionPro/
- 9. MinionPro-It.otf /Users/voss/Library/Fonts/MinionPro/
- 10. MinionPro-Medium.otf /Users/voss/Library/Fonts/MinionPro/
- 11. MinionPro-MediumIt.otf /Users/voss/Library/Fonts/MinionPro/
- 12. MinionPro-Regular.otf /Users/voss/Library/Fonts/MinionPro/
- 13. MinionPro-Semibold.otf /Users/voss/Library/Fonts/MinionPro/
- 14. MinionPro-SemiboldIt.otf /Users/voss/Library/Fonts/MinionPro/
- 15. MinionPro-Subh.otf /Users/voss/Library/Fonts/MinionPro/
+ Nr. Fontname Path
+ 1. Aboensis-Regular.otf /usr/local/texlive/texmf-dist/fonts/opentype/public/aboensis/
+ 2. academicons.ttf /usr/local/texlive/texmf-dist/fonts/truetype/public/academicons/
+ 3. Academy Engraved LET Fonts.ttf /System/Library/Fonts/Supplemental/
+ 4. ACaslonPro-Bold.otf /Users/voss/Library/Fonts/Caslon/
+ 5. ACaslonPro-BoldItalic.otf /Users/voss/Library/Fonts/Caslon/
+ 6. ACaslonPro-Italic.otf /Users/voss/Library/Fonts/Caslon/
+ 7. ACaslonPro-Regular.otf /Users/voss/Library/Fonts/Caslon/
+ 8. ACaslonPro-Semibold.otf /Users/voss/Library/Fonts/Caslon/
+ 9. ACaslonPro-SemiboldItalic.otf /Users/voss/Library/Fonts/Caslon/
+ 10. Acathist-Regular.otf /usr/local/texlive/texmf-dist/fonts/opentype/public/fonts-churchslavonic/
+ 11. AccanthisADFStdNo3-Bold.otf /usr/local/texlive/texmf-dist/fonts/opentype/arkandis/accanthis/
+ 12. AccanthisADFStdNo3-BoldItalic.otf /usr/local/texlive/texmf-dist/fonts/opentype/arkandis/accanthis/
+ 13. AccanthisADFStdNo3-Italic.otf /usr/local/texlive/texmf-dist/fonts/opentype/arkandis/accanthis/
+ 14. AccanthisADFStdNo3-Regular.otf /usr/local/texlive/texmf-dist/fonts/opentype/arkandis/accanthis/
+ 15. ACE.ttc /Users/voss/Library/Fonts/AppleSymbols/
+ 16. ACE.ttc /Users/voss/Library/Fonts/AppleSymbols/
+ 17. AdineKirnberg-Script.otf /Users/voss/Library/Fonts/AdineScript/
+ 18. AdobeArabic-Bold.otf /Users/voss/Library/Fonts/Adobe/
+ 19. AdobeArabic-BoldItalic.otf /Users/voss/Library/Fonts/Adobe/
+[...] [...] [...]
+6847. 儷宋_Pro.ttf /Users/voss/Library/Fonts/KozukaPro/
+6848. 华文仿宋.ttf /Users/voss/Library/Fonts/KozukaPro/
+6849. 华文宋体.ttf /Users/voss/Library/Fonts/KozukaPro/
+6850. 华文楷体.ttf /Users/voss/Library/Fonts/KozukaPro/
diff --git a/support/findfont/doc/Examples/exa06.txt b/support/findfont/doc/Examples/exa06.txt
new file mode 100644
index 0000000000..c076ffffd3
--- /dev/null
+++ b/support/findfont/doc/Examples/exa06.txt
@@ -0,0 +1,19 @@
+We are using Lua 5.3
+Looking for font "minion"
+Check for file /usr/local/texlive/2021/texmf-var/luatex-cache/generic/names/luaotfload-names
+ Nr. Fontname Path
+ 1. MinionMath-Bold.otf /Users/voss/Library/Fonts/MinionMath/
+ 2. MinionMath-Regular.otf /Users/voss/Library/Fonts/MinionMath/
+ 3. MinionPro-Bold.otf /Users/voss/Library/Fonts/MinionPro/
+ 4. MinionPro-BoldCn.otf /Users/voss/Library/Fonts/MinionPro/
+ 5. MinionPro-BoldCnIt.otf /Users/voss/Library/Fonts/MinionPro/
+ 6. MinionPro-BoldIt.otf /Users/voss/Library/Fonts/MinionPro/
+ 7. MinionPro-Capt.otf /Users/voss/Library/Fonts/MinionPro/
+ 8. MinionPro-Disp.otf /Users/voss/Library/Fonts/MinionPro/
+ 9. MinionPro-It.otf /Users/voss/Library/Fonts/MinionPro/
+ 10. MinionPro-Medium.otf /Users/voss/Library/Fonts/MinionPro/
+ 11. MinionPro-MediumIt.otf /Users/voss/Library/Fonts/MinionPro/
+ 12. MinionPro-Regular.otf /Users/voss/Library/Fonts/MinionPro/
+ 13. MinionPro-Semibold.otf /Users/voss/Library/Fonts/MinionPro/
+ 14. MinionPro-SemiboldIt.otf /Users/voss/Library/Fonts/MinionPro/
+ 15. MinionPro-Subh.otf /Users/voss/Library/Fonts/MinionPro/
diff --git a/support/findfont/doc/findfont-doc.pdf b/support/findfont/doc/findfont-doc.pdf
deleted file mode 100644
index 134eb8568d..0000000000
--- a/support/findfont/doc/findfont-doc.pdf
+++ /dev/null
Binary files differ
diff --git a/support/findfont/doc/luafindfont-doc.pdf b/support/findfont/doc/luafindfont-doc.pdf
new file mode 100644
index 0000000000..79608402a1
--- /dev/null
+++ b/support/findfont/doc/luafindfont-doc.pdf
Binary files differ
diff --git a/support/findfont/doc/findfont-doc.tex b/support/findfont/doc/luafindfont-doc.tex
index f0b0fc90ae..b051447e54 100644
--- a/support/findfont/doc/findfont-doc.tex
+++ b/support/findfont/doc/luafindfont-doc.tex
@@ -1,4 +1,4 @@
-%% $Id: findfont-doc.tex 16 2021-11-07 19:42:57Z hvoss $
+ %% $Id: findfont-doc.tex 16 2021-11-07 19:42:57Z hvoss $
%
\listfiles\setcounter{errorcontextlines}{100}
\documentclass[paper=a4,fontsize=11pt,DIV=14,parskip=half-,
@@ -72,16 +72,16 @@
%\GetFileInfo{xltabular.sty}
\usepackage{xspace}
-\newcommand\FF{\texttt{findfont}\xspace}
+\newcommand\FF{\texttt{luafindfont}\xspace}
\def\setVersion#1{\setVVersion#1!!}
-\def\setVVersion#1=#2!!{\def\findfontVersion{#2}}
+\def\setVVersion#1=#2!!{\def\luafindfontVersion{#2}}
-\setVersion{version = 0.03}% can be automatically changed by perl
+\setVersion{version = 0.04}% can be automatically changed by perl
\setkeys{dtk}{cleanup=true,force}
-\title{Program \texttt{findfont} \\--\\ \normalsize \findfontVersion\ (\today)}
+\title{Program \texttt{luafindfont} \\--\\ \normalsize \luafindfontVersion\ (\today)}
\author{\shortstack{Herbert Voß\\\small \href{mailto:hvoss@tug.org}{hvoss@tug.org}}}
\date{}
\begin{document}
@@ -99,8 +99,8 @@ Rolf Niepraschk;
The Lua program
\FF is a program for searching installed fonts which are usable for \LuaLaTeX\ and \XeLaTeX.
The already existing Lua program \Lprog{luaotfload-tool} can also be used for searching, but
-the search-interface is somewhat cryptic and too complex for a user, whoc wants only to know
-if a font is present or not. For example:
+the search-interface is somewhat cryptic and too complex for a user, who wants only to know
+if a font is present or not. And if present, wher can it be found. For example:
\begin{verbatim}
H-MacBook:~ voss$
@@ -114,11 +114,11 @@ luaotfload | resolve : Resolved file name "/System/Library/Fonts/Supplemental/Ti
H-MacBook:~ voss$
\end{verbatim}
-But this are not \emph{all} Times fonts. Compare it with the output of \Lprog{findfont},
+But this are not \emph{all} Times fonts. Compare it with the output of \Lprog{luafindfont},
where the searchname \emph{times} must only be a part of a longer name:
\begin{verbatim}
-bash-3.2$ ./findfont.lua times
+bash-3.2$ ./luafindfont.lua times
We are using Lua 5.3
Check for file /usr/local/texlive/texmf-var/luatex-cache/generic/names/luaotfload-names
Nr. Fontname Symbolic Name Path
@@ -153,7 +153,7 @@ Check for file /usr/local/texlive/texmf-var/luatex-cache/generic/names/luaotfloa
The \Index{syntax} is
-\verb|findfont [...] <font>|
+\verb|luafindfont [...] <font>|
where \verb|[...]| are optional \Index{argument}s, either in short or
long form which, of course, can be mixed:
@@ -173,9 +173,9 @@ long form which, of course, can be mixed:
For example:
\begin{verbatim}
-findfont times
-findfont palatino -o 3
-findfont -i 3 -m 50 arial
+luafindfont times
+luafindfont palatino -o 3
+luafindfont -i 3 -m 50 arial
\end{verbatim}
\begin{enumerate}
@@ -196,20 +196,20 @@ time in its names is sufficiant.
\section{Examples}
\begin{Verbatim}
-bash-3.2$ findfont segoe
+bash-3.2$ luafindfont segoe
\end{Verbatim}
\VerbatimInput{Examples/exa01.txt}
\begin{Verbatim}
-bash-3.2$ findfont -m 40 libertinus
+bash-3.2$ luafindfont -m 40 libertinus
\end{Verbatim}
\VerbatimInput{Examples/exa02.txt}
\begin{Verbatim}
-bash-3.2$ findfont -i 9 sego
+bash-3.2$ luafindfont -i 9 sego
\end{Verbatim}
\VerbatimInput{Examples/exa04.txt}
@@ -217,28 +217,33 @@ bash-3.2$ findfont -i 9 sego
\begin{landscape}
\begin{Verbatim}[fontsize=\small]
-bash-3.2$ findfont -o 6 arial
+bash-3.2$ luafindfont -o 6 arial
\end{Verbatim}
\VerbatimInput[fontsize=\small]{Examples/exa03.txt}
-\end{landscape}
+\section{List of all fonts}
+This possible with the symbolic fontname "*" instead of a real fontname:
+
\begin{Verbatim}[fontsize=\small]
-bash-3.2$ findfont -n minion
+bash-3.2$ luafindfont "*"
\end{Verbatim}
+This list maybe really long and is shortend here!
+
\VerbatimInput[fontsize=\small]{Examples/exa05.txt}
-\section{List of all fonts}
-This possible with the symbolic fontname "*" instead of a real fontname:
+\end{landscape}
+
\begin{Verbatim}[fontsize=\small]
-bash-3.2$ findfont "*"
+bash-3.2$ luafindfont -n minion
\end{Verbatim}
-This list maybe really long!
+\VerbatimInput[fontsize=\small]{Examples/exa06.txt}
+
diff --git a/support/findfont/man/findfont.1 b/support/findfont/man/findfont.1
index ba02ec7ba0..e2c684ed0b 100644
--- a/support/findfont/man/findfont.1
+++ b/support/findfont/man/findfont.1
@@ -1,11 +1,11 @@
-.\" Manpage for findfont.
+.\" Manpage for luafindfont.
.\" Contact hvoss@tug.org to correct errors or typos.
-.TH findfont 1 "23 nov 2021" "0.03" "findfont man page"
+.TH luafindfont 1 "29 nov 2021" "0.04" "luafindfont man page"
.SH NAME
-findfont
+luafindfont
\- retrieve font informations of all installed system and TeX fonts.
.SH SYNOPSIS
-findfont [options] <fontname>
+luafindfont [options] <fontname>
.SH DESCRIPTION
This command lists informations about installed otf|ttf|ttc fonts,
installed by the system and by the TeX distribution
@@ -17,7 +17,7 @@ Use the program otfinfo for the font with the given number
.IP -i,--info (default 0)
List the given fontstyles (regular, bold, italic, bolditalic)
for the font with the given number
-.IP -v... Verbosity level; can be -v, -vv, -vvv
+.IP -v,--verbose Verbosity level
Give more informations, by now only -v works
.IP -m,--max_string (default 90)
The maximum of the stringlength of the full path of fonts
@@ -25,7 +25,7 @@ The maximum of the stringlength of the full path of fonts
The fontlist contains only fontfile and fontpath
.SH EXAMPLES
-$ findfont libertinssans
+$ luafindfont libertinssans
.Pp
Lists all fonts which have names or part of like libertinussans
@@ -46,7 +46,7 @@ Check for file /usr/local/texlive/texmf-var/luatex-cache/generic/names/luaotfloa
.Pp
The --otfinfo:
-$ findfont -o 3 libertinussans
+$ luafindfont -o 3 libertinussans
.Pp
This produces the following output:
@@ -83,14 +83,14 @@ Vendor ID: QUE
.Pp
The --nosymbilcnames:
-$ findfont -n
+$ luafindfont -n
.Pp
This produces the following output:
.nf
.ft CW
-bash-3.2$ ./findfont.lua -n minion
+bash-3.2$ ./luafindfont.lua -n minion
We are using Lua 5.3
Check for file /usr/local/texlive/texmf-var/luatex-cache/generic/names/luaotfload-names
Nr. Fontname Path
@@ -113,7 +113,7 @@ Check for file /usr/local/texlive/texmf-var/luatex-cache/generic/names/luaotfloa
.fi
.SH See also
-See findfont-doc.pdf for more details
+See luafindfont-doc.pdf for more details
.SH BUGS
No known bugs.
.SH AUTHOR
diff --git a/support/findfont/scripts/findfont.lua b/support/findfont/scripts/luafindfont.lua
index 4446e87590..cad6ee4044 100755
--- a/support/findfont/scripts/findfont.lua
+++ b/support/findfont/scripts/luafindfont.lua
@@ -1,23 +1,23 @@
#!/usr/bin/env texlua
--- % $Id: findfont.lua 330 2021-11-28 13:47:56Z herbert $
+-- % $Id: luafindfont.lua 330 2021-11-28 13:47:56Z herbert $
-----------------------------------------------------------------------
--- FILE: findfont.lua
+-- FILE: luafindfont.lua
-- DESCRIPTION: search for fonts in the database
-- REQUIREMENTS: luatex v.0.80 or later; packages lualibs, xindex-lapp
-- AUTHOR: Herbert Voß (C) 2021-11-27
-----------------------------------------------------------------------
- findfont = findfont or { }
- local version = 0.03
-findfont.version = version
+ luafindfont = luafindfont or { }
+ local version = 0.04
+luafindfont.version = version
--[[
Search the font database for fontnames. The database is used
by Lua(La)TeX and created by default with the first run of
-Lua(La)TeX. If there is no such data file then "findfont"
+Lua(La)TeX. If there is no such data file then "luafindfont"
will execute the command to create it.
-findfont(1)
+luafindfont(1)
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -35,43 +35,87 @@ kpse.set_program_name("luatex")
local f = kpse.find_file("lualibs.lua")
require("lualibs") -- all part of LuaTeX
---require("findfont-utflib")
+--require("luafindfont-utflib")
-local args = require ('xindex-lapp') [[
- Version: 0.02
- Syntax: fintFont [options] <font>
- By default the Lua program 'findfont' creates a list of the
+if #arg == 0 then
+ print("I need at least one argument or option! Will exit ...")
+ os.exit()
+end
+
+local args_verbose = 0
+local args_nosymbolixnames = 0
+local args_otfinfo = 0
+local args_info = 0
+local args_max_string = 90
+
+local i = 1
+while i <= #arg do
+ if arg[i] == "-h" or arg[i] == "--help" then
+ print("Version "..version..", Copyright 2021 by Herbert Voß")
+ print([[Syntax: luafintfont [options] <font>
+ By default the Lua program 'luafindfont' creates a list of the
fonts which have in its names the given string.
- parameter handling
- -q,--quiet
+
+ parameter handling
-h,--help
-n,--nosymbolicnames
-o,--otfinfo (default 0)
-i,--info (default 0)
- -v... Verbosity level; can be -v, -vv, -vvv
+ -v, --verbose
-m,--max_string (default 90)
- <font> (string)
-]]
+ <font> (string) ]])
+ elseif arg[i] == "-v" or arg[i] == "--verbose" then
+ args_verbose = 1
+ elseif arg[i] == "-n" or arg[i] == "--nosymbolicnames" then
+ args_nosymbolicnames = 1
+ elseif arg[i] == "-o" or arg[i] == "--otfinfo" then
+ local fontNr = tonumber(arg[i+1])
+ if fontNr then
+ args_otfinfo = fontNr
+ i = i + 1
+ else
+ print("Option -o needs a following fontnumber!")
+ args_otfinfo = 0
+ end
+ elseif arg[i] == "-i" or arg[i] == "--info" then
+ local fontNr = tonumber(arg[i+1])
+ if fontNr then
+ args_info = fontNr
+ i = i + 1
+ else
+ print("Option -i needs a following fontnumber!")
+ args_info = 0
+ end
+ elseif arg[i] == "-m" or arg[i] == "--max_string" then
+ local string_len = tonumber(arg[i+1])
+ if string_len then
+ args_max_string = string_len
+ i = i + 1
+ else
+ print("Option -m needs a following fontnumber!")
+ args_max_string = 90
+ end
+ else
+ args_font = arg[i]
+ end
+ i = i + 1
+end
---[[
- No -v flag, v is just { false }. not args.v[1] is true, so vlevel becomes 0.
- One -v flags, v is { true }
- Two -v flags, v is { true, true }
- Three -v flags, v is { true, true, true }
-]]
+if not args_font then
+ print("No fontname given, will close ...")
+ os.exit()
+end
-local vlevel = not args.v[1] and 0 or #args.v
-local not_quiet = not args["quiet"]
-local otfinfo = args["otfinfo"]
-local info = args["info"]
-local noSymbolicNames = args["nosymbolicnames"]
+local vlevel = args_verbose
+local otfinfo = args_otfinfo
+local info = args_info
+local noSymbolicNames = args_nosymbolicnames
+local maxStrLength = args_max_string
+local font_str = args_font
-local maxStrLength = args["max_string"]
local luaVersion = _VERSION
print("We are using "..luaVersion)
-
-local font_str = args.font
-if vlevel > 0 then print('Looking for font \"'..font_str..'\"') end
+print('Looking for font \"'..font_str..'\"')
function getFileParts(fullpath,part)
local path, file, ext = string.match(fullpath, "(.-)([^/]-([^%.]+))$")