borisveytsman / acmart

ACM consolidated LaTeX styles
620 stars 254 forks source link

Switch from libertine to libertinus #398

Open Blaisorblade opened 4 years ago

Blaisorblade commented 4 years ago

Libertinus improves on Libertine in many ways:

Blaisorblade commented 4 years ago

The latest straw was the horrible kerning in $\Gamma,$, the correct output would require sth. like $\Gamma \mkern-2mu ,$!

borisveytsman commented 4 years ago

We need to discuss this with ACM publishing people

rionda commented 4 years ago

Could this switch also somehow enable the use of unicode-math? This limitation has been mentioned in another issue as well: https://github.com/borisveytsman/acmart/issues/255#issuecomment-621270975 .

Blaisorblade commented 4 years ago

At a glance it sounds likely — Libertinus supports OTF/XeTeX/LuaTeX (https://ctan.org/pkg/libertinus-otf), and Libertinus-OTF docs mention unicode-math (page 2 on https://ftp.tu-chemnitz.de/pub/tex/fonts/libertinus-otf/doc/libertinus-otf-doc.pdf). Judging from my OP, Libertinus supported XeTeX first, and only later added support for PDFTeX.

EDIT: in fact, unicode-math was the motivation in the other issue (https://github.com/borisveytsman/acmart/issues/255#issuecomment-605318513).

Blaisorblade commented 4 years ago

I revised the OP to collect all arguments for the switch. (The old version is available in the edit history of the post).

borisveytsman commented 4 years ago

@craig-rodkin: I can make samples with improved fonts. Would ACM publishing people consider making a switch?

-B

Craig-Rodkin commented 4 years ago

Hi Boris,

The font change from Libertine to Libertinus has been on the table for a while, but did not have a way to move it forward. We now have a group of volunteers who will review and approve the changes. Please move forward and create the samples for me to forward to the group of volunteers for review and possible adoption. thanks

luileito commented 4 years ago

Maybe related: With the latest texlive-full installation (2019.20200218-1) and fonts-linuxlibertine (5.3.0-4) I can't see the summation symbol (+) in the generated PDF (using pdflatex for compilation).

I see the following warning in the log file:

Missing character: There is no \CF in font ntxsy!

If I remove the newtxmath package from acmart.cls then everything looks fine, though the equations are rendered in plain TeX style.

Hopefully Libertinus will solve this issue, too.

zackw commented 3 years ago

I get a bunch of font-related PDF/A validation errors with libertinus that didn't happen with the existing acmart font choices, e.g.

<rule specification="ISO 19005-2:2011" clause="6.2.11.4" testNumber="3" status="failed" passedChecks="0" failedChecks="6">
  <description>If the FontDescriptor dictionary of an embedded Type 1 font contains a CharSet string, then it shall list the character names of all glyphs
        present in the font program, regardless of whether a glyph in the font is referenced or used by the PDF or not.</description>
  <object>PDType1Font</object>
  <test>fontFile_size == 0 || fontName.search(/[A-Z]{6}\+/) != 0 || CharSet == null || charSetListsAllGlyphs == true</test>
  <check status="failed">
    <context>root/document[0]/pages[11](582 0 obj PDPage)/contentStream[0](583 0 obj PDContentStream)/operators[759]/font[0](OQWWRJ+LibertinusSerif-Bold)</context>
  </check>
  <check status="failed">
    <context>root/document[0]/pages[11](582 0 obj PDPage)/contentStream[0](583 0 obj PDContentStream)/operators[723]/font[0](NRSLNG+LibertinusMono-Regular)</context>
  </check>
  <check status="failed">
    <context>root/document[0]/pages[10](551 0 obj PDPage)/contentStream[0](552 0 obj PDContentStream)/operators[964]/font[0](TRDYWN+LibertinusMono-Bold)</context>
  </check>
  <check status="failed">
    <context>root/document[0]/pages[7](454 0 obj PDPage)/contentStream[0](455 0 obj PDContentStream)/operators[862]/font[0](VLVSGB+LibertinusSans-Italic)</context>
  </check>
  <check status="failed">
    <context>root/document[0]/pages[6](360 0 obj PDPage)/contentStream[0](361 0 obj PDContentStream)/operators[752]/font[0](ZOXRJL+LibertinusMono-Oblique)</context>
  </check>
</rule>
<rule specification="ISO 19005-2:2011" clause="6.2.11.4" testNumber="2" status="failed" passedChecks="0" failedChecks="6">
  <description>Embedded fonts shall define all glyphs referenced for rendering within the conforming file. A font referenced for use solely 
        in rendering mode 3 is therefore not rendered and is thus exempt from the embedding requirement.</description>
  <object>Glyph</object>
  <test>renderingMode == 3 || isGlyphPresent == null || isGlyphPresent == true</test>
  <check status="failed">
    <context>root/document[0]/pages[11](582 0 obj PDPage)/contentStream[0](583 0 obj PDContentStream)/operators[723]/usedGlyphs[1](NRSLNG+LibertinusMono-Regular 99 0  0)</context>
  </check>
  <check status="failed">
    <context>root/document[0]/pages[11](582 0 obj PDPage)/contentStream[0](583 0 obj PDContentStream)/operators[723]/usedGlyphs[0](NRSLNG+LibertinusMono-Regular 46 0  0)</context>
  </check>
  <check status="failed">
    <context>root/document[0]/pages[10](551 0 obj PDPage)/contentStream[0](552 0 obj PDContentStream)/operators[964]/usedGlyphs[0](TRDYWN+LibertinusMono-Bold 116 0  0)</context>
  </check>
  <check status="failed">
    <context>root/document[0]/pages[7](454 0 obj PDPage)/contentStream[0](455 0 obj PDContentStream)/operators[862]/usedGlyphs[8](VLVSGB+LibertinusSans-Italic 115 0  0)</context>
  </check>
  <check status="failed">
    <context>root/document[0]/pages[6](360 0 obj PDPage)/contentStream[0](361 0 obj PDContentStream)/operators[752]/usedGlyphs[3](ZOXRJL+LibertinusMono-Oblique 45 0  0)</context>
  </check>
</rule>
<rule specification="ISO 19005-2:2011" clause="6.2.11.5" testNumber="1" status="failed" passedChecks="0" failedChecks="6">
  <description>For every font embedded in a conforming file and used for rendering, the glyph width information in the font dictionary and in the embedded 
        font program shall be consistent.</description>
  <object>Glyph</object>
  <test>renderingMode == 3 || isWidthConsistent == null || isWidthConsistent == true</test>
  <check status="failed">
    <context>root/document[0]/pages[11](582 0 obj PDPage)/contentStream[0](583 0 obj PDContentStream)/operators[723]/usedGlyphs[1](NRSLNG+LibertinusMono-Regular 99 0  0)</context>
  </check>
  <check status="failed">
    <context>root/document[0]/pages[11](582 0 obj PDPage)/contentStream[0](583 0 obj PDContentStream)/operators[723]/usedGlyphs[0](NRSLNG+LibertinusMono-Regular 46 0  0)</context>
  </check>
  <check status="failed">
    <context>root/document[0]/pages[10](551 0 obj PDPage)/contentStream[0](552 0 obj PDContentStream)/operators[964]/usedGlyphs[0](TRDYWN+LibertinusMono-Bold 116 0  0)</context>
  </check>
  <check status="failed">
    <context>root/document[0]/pages[7](454 0 obj PDPage)/contentStream[0](455 0 obj PDContentStream)/operators[862]/usedGlyphs[8](VLVSGB+LibertinusSans-Italic 115 0  0)</context>
  </check>
  <check status="failed">
    <context>root/document[0]/pages[6](360 0 obj PDPage)/contentStream[0](361 0 obj PDContentStream)/operators[752]/usedGlyphs[3](ZOXRJL+LibertinusMono-Oblique 45 0  0)</context>
  </check>
</rule>

(excerpt of veraPDF 1.16.1 report for a paper I happen to be working on today, after adding \usepackage{libertinus} to the preamble, lightly edited for readability)

This is probably a bug in the fonts themselves but I figured you should be aware of the problem when deciding whether and when to change acmart.cls.