diff options
Diffstat (limited to 'support')
-rw-r--r-- | support/findfont/CHANGELOG | 3 | ||||
-rw-r--r-- | support/findfont/README.md | 36 | ||||
-rw-r--r-- | support/findfont/doc/Examples/exa05.txt | 42 | ||||
-rw-r--r-- | support/findfont/doc/Examples/exa06.txt | 19 | ||||
-rw-r--r-- | support/findfont/doc/findfont-doc.pdf | bin | 60791 -> 0 bytes | |||
-rw-r--r-- | support/findfont/doc/luafindfont-doc.pdf | bin | 0 -> 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.1 | 20 | ||||
-rwxr-xr-x | support/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 Binary files differdeleted file mode 100644 index 134eb8568d..0000000000 --- a/support/findfont/doc/findfont-doc.pdf +++ /dev/null diff --git a/support/findfont/doc/luafindfont-doc.pdf b/support/findfont/doc/luafindfont-doc.pdf Binary files differnew file mode 100644 index 0000000000..79608402a1 --- /dev/null +++ b/support/findfont/doc/luafindfont-doc.pdf 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, "(.-)([^/]-([^%.]+))$") |