junicode: 2.204 -> 2.205

Changelog:
https://github.com/psb1558/Junicode-font/releases/tag/v2.205

Significant changes throughout TeX style files, including new style
file for VF font versions.  The latter seems to rely on system font
search a lot more than the existing one, requiring a lot more
patching.
This commit is contained in:
Ivan Timokhin 2024-01-08 14:17:42 +03:00
parent e4b8d803b6
commit 2b9af27096
5 changed files with 227 additions and 35 deletions

View file

@ -2,11 +2,11 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "junicode"; pname = "junicode";
version = "2.204"; version = "2.205";
src = fetchzip { src = fetchzip {
url = "https://github.com/psb1558/Junicode-font/releases/download/v${version}/Junicode_${version}.zip"; url = "https://github.com/psb1558/Junicode-font/releases/download/v${version}/Junicode_${version}.zip";
hash = "sha256-n0buIXc+xjUuUue2Fu1jnlTc74YvmrDKanfmWtM4bFs="; hash = "sha256-/9vkc6Ic3xyfpKEE64dBpoVM/gcRsLnAcrZWie9lNa4=";
}; };
outputs = [ "out" "doc" "tex" "texdoc" ]; outputs = [ "out" "doc" "tex" "texdoc" ];
@ -14,9 +14,11 @@ stdenvNoCC.mkDerivation rec {
patches = [ ./tex-font-path.patch ]; patches = [ ./tex-font-path.patch ];
postPatch = '' postPatch = ''
substituteInPlace TeX/Junicode.sty \ substituteInPlace TeX/junicode.sty \
--replace '@@@opentype_path@@@' "$out/share/fonts/opentype/" \ --replace '@@@opentype_path@@@' "$out/share/fonts/opentype/" \
--replace '@@@truetype_path@@@' "$out/share/fonts/truetype/" --replace '@@@truetype_path@@@' "$out/share/fonts/truetype/"
substituteInPlace TeX/junicodevf.sty \
--replace '@@@truetype_path@@@' "$out/share/fonts/truetype/"
''; '';
installPhase = '' installPhase = ''
@ -28,11 +30,13 @@ stdenvNoCC.mkDerivation rec {
install -Dm 444 -t $doc/share/doc/${pname}-${version} docs/*.pdf install -Dm 444 -t $doc/share/doc/${pname}-${version} docs/*.pdf
install -Dm 444 -t $tex/tex/latex/Junicode TeX/Junicode.sty install -Dm 444 -t $tex/tex/latex/junicode TeX/junicode.sty
install -Dm 444 -t $tex/tex/latex/junicodevf TeX/junicodevf.{sty,lua}
install -Dm 444 -t $texdoc/doc/tex/latex/Junicode TeX/*.pdf install -Dm 444 -t $texdoc/doc/tex/latex/junicode TeX/junicode-package.pdf
install -Dm 444 -t $texdoc/doc/tex/latex/junicodevf TeX/junicodevf-package.pdf
cat >$texdoc/doc/tex/latex/Junicode/nix-font-note.txt <<EOF cat >$texdoc/doc/tex/latex/junicode/nix-font-note.txt <<EOF
The style file is patched to refer directly to the corresponding The style file is patched to refer directly to the corresponding
font files; thus, contrary to the documentation, the fonts font files; thus, contrary to the documentation, the fonts
do *not* have to be installed globally. do *not* have to be installed globally.

View file

@ -0,0 +1,46 @@
\documentclass{article}
\usepackage{junicodevf}
\begin{document}
\begin{enumerate}
\item {\jBold Bold}
\item {\jBoldItalic BoldItalic}
\item {\jCond Cond}
\item {\jCondItalic CondItalic}
\item {\jCondLight CondLight}
\item {\jCondLightItalic CondLightItalic}
\item {\jCondMedium CondMedium}
\item {\jCondMediumItalic CondMediumItalic}
\item {\jExp Exp}
\item {\jExpItalic ExpItalic}
\item {\jExpBold ExpBold}
\item {\jExpBoldItalic ExpBoldItalic}
\item {\jExpMedium ExpMedium}
\item {\jExpMediumItalic ExpMediumItalic}
\item {\jExpSmbold ExpSmbold}
\item {\jExpSmboldItalic ExpSmboldItalic}
\item {\jItalic Italic}
\item {\jLight Light}
\item {\jLightItalic LightItalic}
\item {\jMedium Medium}
\item {\jMediumItalic MediumItalic}
\item {\jRegular Regular}
\item {\jSmbold Smbold}
\item {\jSmboldItalic SmboldItalic}
\item {\jSmCond SmCond}
\item {\jSmCondItalic SmCondItalic}
\item {\jSmCondLight SmCondLight}
\item {\jSmCondLightItalic SmCondLightItalic}
\item {\jSmCondMedium SmCondMedium}
\item {\jSmCondMediumItalic SmCondMediumItalic}
\item {\jSmExp SmExp}
\item {\jSmExpItalic SmExpItalic}
\item {\jSmExpBold SmExpBold}
\item {\jSmExpBoldItalic SmExpBoldItalic}
\item {\jSmExpMedium SmExpMedium}
\item {\jSmExpMediumItalic SmExpMediumItalic}
\item {\jSmExpSmbold SmExpSmbold}
\item {\jSmExpSmboldItalic SmExpSmboldItalic}
\end{enumerate}
\end{document}

View file

@ -1,6 +1,6 @@
\documentclass{article} \documentclass{article}
\usepackage[fonttype=@fonttype@]{Junicode} \usepackage[fonttype=@fonttype@]{junicode}
\begin{document} \begin{document}
\begin{enumerate} \begin{enumerate}
@ -18,16 +18,16 @@
\item {\jExpBoldItalic ExpBoldItalic} \item {\jExpBoldItalic ExpBoldItalic}
\item {\jExpMedium ExpMedium} \item {\jExpMedium ExpMedium}
\item {\jExpMediumItalic ExpMediumItalic} \item {\jExpMediumItalic ExpMediumItalic}
\item {\jExpSmbold ExpSmbold} \item {\jExpSmBold ExpSmBold}
\item {\jExpSmboldItalic ExpSmboldItalic} \item {\jExpSmBoldItalic ExpSmBoldItalic}
\item {\jItalic Italic} \item {\jItalic Italic}
\item {\jLight Light} \item {\jLight Light}
\item {\jLightItalic LightItalic} \item {\jLightItalic LightItalic}
\item {\jMedium Medium} \item {\jMedium Medium}
\item {\jMediumItalic MediumItalic} \item {\jMediumItalic MediumItalic}
\item {\jRegular Regular} \item {\jRegular Regular}
\item {\jSmbold Smbold} \item {\jSmBold SmBold}
\item {\jSmboldItalic SmboldItalic} \item {\jSmBoldItalic SmBoldItalic}
\item {\jSmCond SmCond} \item {\jSmCond SmCond}
\item {\jSmCondItalic SmCondItalic} \item {\jSmCondItalic SmCondItalic}
\item {\jSmCondLight SmCondLight} \item {\jSmCondLight SmCondLight}
@ -40,7 +40,7 @@
\item {\jSmExpBoldItalic SmExpBoldItalic} \item {\jSmExpBoldItalic SmExpBoldItalic}
\item {\jSmExpMedium SmExpMedium} \item {\jSmExpMedium SmExpMedium}
\item {\jSmExpMediumItalic SmExpMediumItalic} \item {\jSmExpMediumItalic SmExpMediumItalic}
\item {\jSmExpSmbold SmExpSmbold} \item {\jSmExpSmBold SmExpSmBold}
\item {\jSmExpSmboldItalic SmExpSmboldItalic} \item {\jSmExpSmBoldItalic SmExpSmBoldItalic}
\end{enumerate} \end{enumerate}
\end{document} \end{document}

View file

@ -2,13 +2,14 @@
let let
texliveWithJunicode = texliveBasic.withPackages (p: [ p.xetex junicode ]); texliveWithJunicode = texliveBasic.withPackages (p: [ p.xetex junicode ]);
texTest = { tex, fonttype }: texTest = { package, tex, fonttype, file }:
lib.attrsets.nameValuePair "${tex}-${fonttype}" ( lib.attrsets.nameValuePair "${package}-${tex}-${fonttype}" (
runCommand "junicode-test-${tex}-${fonttype}.pdf" { runCommand "${package}-test-${tex}-${fonttype}.pdf"
{
nativeBuildInputs = [ texliveWithJunicode ]; nativeBuildInputs = [ texliveWithJunicode ];
inherit tex fonttype; inherit tex fonttype file;
} '' } ''
substituteAll ${./test.tex} test.tex substituteAll $file test.tex
HOME=$PWD $tex test.tex HOME=$PWD $tex test.tex
cp test.pdf $out cp test.pdf $out
''); '');
@ -19,5 +20,16 @@ builtins.listToAttrs (
(lib.attrsets.cartesianProductOfSets { (lib.attrsets.cartesianProductOfSets {
tex = [ "xelatex" "lualatex" ]; tex = [ "xelatex" "lualatex" ];
fonttype = [ "ttf" "otf" ]; fonttype = [ "ttf" "otf" ];
package = [ "junicode" ];
file = [ ./test.tex ];
}) })
++
[
(texTest {
package = "junicodevf";
fonttype = "ttf";
tex = "lualatex";
file = ./test-vf.tex;
})
]
) )

View file

@ -4,14 +4,16 @@ changes the style file to instead look fonts up in hardcoded
locations, which are later patched up to refer to the package outputs, locations, which are later patched up to refer to the package outputs,
thus ensuring the style always uses the fonts packaged with it. thus ensuring the style always uses the fonts packaged with it.
diff --git a/TeX/Junicode.sty b/TeX/Junicode.sty diff --git a/TeX/junicode.sty b/TeX/junicode.sty
index f46b376..c73e6f8 100644 index 83bd45d..8fe671c 100644
--- a/TeX/Junicode.sty --- a/TeX/junicode.sty
+++ b/TeX/Junicode.sty +++ b/TeX/junicode.sty
@@ -136,8 +136,17 @@ @@ -208,7 +208,14 @@
\RequirePackage{fontspec} \RequirePackage{fontspec}
\defaultfontfeatures{Ligatures=TeX, Extension=.\junicode@fonttype} \defaultfontfeatures{Ligatures=TeX, Extension=.\junicode@fonttype}
-\defaultfontfeatures{Ligatures=TeX}
+
+\def\junicode@fonttype@otf{otf} +\def\junicode@fonttype@otf{otf}
+ +
+\ifx\junicode@fonttype\junicode@fonttype@otf +\ifx\junicode@fonttype\junicode@fonttype@otf
@ -19,18 +21,146 @@ index f46b376..c73e6f8 100644
+\else +\else
+ \def\junicode@fontpath{@@@truetype_path@@@} + \def\junicode@fontpath{@@@truetype_path@@@}
+\fi +\fi
+
\setmainfont \ifxetex
[Renderer = HarfBuzz, \typeout{\junicode@regstylename}
@@ -219,6 +226,7 @@
ItalicFont = *-\junicode@italstylename,
BoldFont = *-\junicode@boldstylename,
BoldItalicFont = *-\junicode@boldstylename Italic,
+ Path = \junicode@fontpath, + Path = \junicode@fontpath,
Numbers = {\junicode@figurealign,\junicode@figurestyle}, ]{Junicode}
SmallCapsFeatures = {Letters=SmallCaps}, \fi
UprightFont = *-\junicode@regstylename, \ifluatex
@@ -152,6 +161,7 @@ @@ -230,6 +238,7 @@
\newcommand{\junicode@newfont}[2]{ ItalicFont = *-\junicode@italstylename,
\newfontface#1{#2}[ BoldFont = *-\junicode@boldstylename,
Renderer = HarfBuzz, BoldItalicFont = *-\junicode@boldstylename Italic,
+ Path = \junicode@fontpath, + Path = \junicode@fontpath,
]{Junicode}
\fi
@@ -242,6 +251,7 @@
#3
Numbers = {\junicode@figurealign,\junicode@figurestyle}, Numbers = {\junicode@figurealign,\junicode@figurestyle},
SmallCapsFeatures = {Letters=SmallCaps}, SmallCapsFeatures = {Letters=SmallCaps},
+ Path = \junicode@fontpath,
] ]
}
\fi
@@ -252,6 +262,7 @@
#3
Numbers = {\junicode@figurealign,\junicode@figurestyle},
SmallCapsFeatures = {Letters=SmallCaps},
+ Path = \junicode@fontpath,
]
}
\fi
diff --git a/TeX/junicodevf.lua b/TeX/junicodevf.lua
index 7148668..acebe82 100644
--- a/TeX/junicodevf.lua
+++ b/TeX/junicodevf.lua
@@ -148,7 +148,7 @@ function mkfontcommands()
romfontcmd = "jRegular"
italfontcmd = "jItalic"
end
- tex.print("\\junicodevf@newfont{\\" .. romfontcmd .. "}{JunicodeVF}{\\" .. defcmd .. "}{\\" .. defsizecmd .. "}")
+ tex.print("\\junicodevf@newfont{\\" .. romfontcmd .. "}{JunicodeVF-Roman}{\\" .. defcmd .. "}{\\" .. defsizecmd .. "}")
tex.print("\\junicodevf@newfont{\\" .. italfontcmd .. "}{JunicodeVF-Italic}{\\" .. defcmd .. "}{\\" .. defsizecmd .. "}")
end
end
diff --git a/TeX/junicodevf.sty b/TeX/junicodevf.sty
index c01ccaf..07a99ad 100644
--- a/TeX/junicodevf.sty
+++ b/TeX/junicodevf.sty
@@ -168,11 +168,13 @@ mkwidthcommands(wdindex, adjustment)}}
% DECLARE THE FONTS
-\setmainfont{Junicode VF}[
- ItalicFont = {*-Italic},
- BoldFont = {*},
- BoldItalicFont = {*-Italic},
+\setmainfont{JunicodeVF-Roman}[
+ ItalicFont = {JunicodeVF-Italic},
+ BoldFont = {JunicodeVF-Roman},
+ BoldItalicFont = {JunicodeVF-Italic},
Renderer = HarfBuzz,
+ Extension = .ttf,
+ Path = @@@truetype_path@@@,
Numbers = {\junicodevf@figurealign,\junicodevf@figurestyle},
\MainDef,
UprightFeatures = {\MainRegDef
@@ -188,6 +190,8 @@ mkwidthcommands(wdindex, adjustment)}}
\newcommand*{\junicodevf@newfont}[4]{
\setfontface#1{#2}[
Renderer = HarfBuzz,
+ Extension = .ttf,
+ Path = @@@truetype_path@@@,
Numbers = {\junicodevf@figurealign,\junicodevf@figurestyle},
SmallCapsFont = {*},
SmallCapsFeatures = {Letters=SmallCaps},
@@ -200,43 +204,59 @@ mkwidthcommands(wdindex, adjustment)}}
% ENLARGED FACES
-\setfontface\EnlargedOne{JunicodeVF}[
+\setfontface\EnlargedOne{JunicodeVF-Roman}[
Renderer = HarfBuzz,
+ Extension = .ttf,
+ Path = @@@truetype_path@@@,
\ENLAOneSizeDef
]
\setfontface\EnlargedOneItalic{JunicodeVF-Italic}[
Renderer = HarfBuzz,
+ Extension = .ttf,
+ Path = @@@truetype_path@@@,
\ENLAOneSizeDef
]
-\setfontface\EnlargedTwo{JunicodeVF}[
+\setfontface\EnlargedTwo{JunicodeVF-Roman}[
Renderer = HarfBuzz,
+ Extension = .ttf,
+ Path = @@@truetype_path@@@,
\ENLATwoSizeDef
]
\setfontface\EnlargedTwoItalic{JunicodeVF-Italic}[
Renderer = HarfBuzz,
+ Extension = .ttf,
+ Path = @@@truetype_path@@@,
\ENLATwoSizeDef
]
-\setfontface\EnlargedThree{JunicodeVF}[
+\setfontface\EnlargedThree{JunicodeVF-Roman}[
Renderer = HarfBuzz,
+ Extension = .ttf,
+ Path = @@@truetype_path@@@,
\ENLAThreeSizeDef
]
\setfontface\EnlargedThreeItalic{JunicodeVF-Italic}[
Renderer = HarfBuzz,
+ Extension = .ttf,
+ Path = @@@truetype_path@@@,
\ENLAThreeSizeDef
]
-\setfontface\EnlargedFour{JunicodeVF}[
+\setfontface\EnlargedFour{JunicodeVF-Roman}[
Renderer = HarfBuzz,
+ Extension = .ttf,
+ Path = @@@truetype_path@@@,
\ENLAFourSizeDef
]
\setfontface\EnlargedFourItalic{JunicodeVF-Italic}[
Renderer = HarfBuzz,
+ Extension = .ttf,
+ Path = @@@truetype_path@@@,
\ENLAFourSizeDef
]