khaledhosny / harftex Goto Github PK
View Code? Open in Web Editor NEWThis project forked from tex-live/luatex-svn-git
A TeX enginge with embedded HarfBuzz and Lua
License: GNU General Public License v2.0
This project forked from tex-live/luatex-svn-git
A TeX enginge with embedded HarfBuzz and Lua
License: GNU General Public License v2.0
I'd like to see if the bidi algorithm in babel
works with harftex
, and which changes would be necessary.
So, I've downloaded the binaries for Windows from http://ctan.ijs.si/mirror/w32tex/current/harftex-w32.tar.xz, but the sample files doesn't show the text correctly - only isolated forms. I've added the following features, and there are a few ligatures, but not all: +fina;+init;+medi;+isol;+med2;+mset;+rtla;+curs;+falt. I've also installed the files available here, with no luck.
\documentclass{article}
\usepackage{harfload}
\usepackage{fontspec}
\begin{document}
\Huge
\noindent
\fontspec{Segoe UI Emoji}[RawFeature={mode=harf}]
π¨βπ©βπ§βπ¦β°β°\\
\fontspec{Noto Color Emoji}[RawFeature={mode=harf}]
π¨βπ©βπ§βπ¦β°β°
\end{document}
When I process the above file with harflatex 0.40 installed from TeXLive Contrib, I get
We see that the glyphs in Segoe UI Emoji are overlapping. I doubt if this is an intended behavior. The generated PDF is attached below.
emoji4.pdf
\documentclass{article}
\usepackage{harfload}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\begin{document}
abc
\end{document}
leads to lots of warnings with
Package fontspec Warning: OpenType feature 'Style=MathScriptScript' (ssty) not
(fontspec) available for font 'LatinModernMath' with script
(fontspec) 'Math' and language 'Default'.
Without harfload there are no warnings. In case that there is something wrong in fontspec or the luaotfload-code: it is imho better if such issues are corrected at the source than trying to patch around. I will then move the issue to the right place.
Segoe UI Emoji font is an emoji font in MS Windows and it contains
both black-and-white version and color version.
When I process
\documentclass{minimal}
\usepackage{harfload}
\font\testbw={name:Segoe UI Emoji:mode=node}
\font\testcolor={name:Segoe UI Emoji:mode=harf}
\begin{document}
\testcolor
ππββ
\testbw
ππββ
\end{document}
I get
which is almost what I expect. The colors look strange.
But when I process
\documentclass{minimal}
\usepackage{harfload}
\font\testbw={name:Segoe UI Emoji:mode=node}
\font\testcolor={name:Segoe UI Emoji:mode=harf}
\begin{document}
\testbw
ππββ
\testcolor
ππββ
\end{document}
I get
I do not have the color emojis. The latter behavior seems a bug.
There seems to be a regression in the font embedding. Wide (encodingbytes=2
) Type 1 fonts are embedded correctly by LuaTeX, while HarfTeX does something odd with them. (They seem to be inserted as CID fonts, but still embedded as Type 1 instead of CFF fonts)
At least for PDF 1.7 (I don't know about PDF 2.0, but I would be very surprised if this was added) this is not allowed by the PDF specification and except by Acrobat also not supported by viewers.
\documentclass{article}
\usepackage{harfload}
\usepackage{luatexja}
\begin{document}
abc
\end{document}
fails with
texmf-dist/tex/luatex/luatexja/ltj-jfont.lua:811: attempt to index a nil value
(global 'fontloader')
stack traceback:
...exlive/2019/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua:811: in main chunk
[C]: in function 'require'
c:/texlive/2019/texmf-dist/tex/luatex/luatexja/luatexja.lua:17: in local 'load_
module'
c:/texlive/2019/texmf-dist/tex/luatex/luatexja/luatexja.lua:106: in main chunk
[C]: in function 'dofile'
[\directlua]:1: in main chunk.
l.181 }
If the library is really removed, it would be good to notify the authors so that they can check their options. (btw: the speedata publisher uses the library too).
Consider switching to meson and simplifying the build system instead of the stripped-down-TeX Live-source-tree approach we have in place now.
I have always wondered about doing this since working in XeTeX. May be it is time to bite the bullet and doi it.
When harflatex
(This is HarfTeX, Version 0.3.0 (TeX Live 2020/dev)) processes the following file:
\documentclass{minimal}
\begin{document}
\font\test={name:Cambria:mode=node;}
\test aaa
\end{document}
harflatex
produces the following error and does not give a PDF file:
</usr/local/share/fonts/ms/cambria.ttc
! error: (file /usr/local/share/fonts/ms/cambria.ttc) (type 2): invalid TTC in
dex number -1 (0..1), using index 0 for font Cambria
! ==> Fatal error occurred, no output PDF file produced!
Cambria is a ttc font bundled with MS Windows 10 (and earlier Windows). As far as I see, any ttc font produces the same error as above.
Both This is LuaTeX, Version 1.10.0 (TeX Live 2019)
and This is LuaHBTeX, Version 1.11.1 (TeX Live 2020/dev)
can correctly handle the above LaTeX file.
Need to figure out how to build it first, context
from TeXΒ Live 2018 fails to process it. Waiting for TeXΒ Live 2019 to see if it does any better.
I was under the impression that LuaJIT is dead, but it seems @pgundlach (and possibly others) needs it.
Need to check how feasible it is to build one and whether is supports the same Lua version as the main engine.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.