1

I have some problems to make ligatures (not) work in epub.

my MWE :

\documentclass[10pt,a5paper]{book}
\usepackage[french]{babel}
\usepackage{libertine}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
the field of ff is flight.
fioriture flashent difficilement
\end{document}

Problems with null utf8

  • my conf file is local filter = require "make4ht-filter" local my_filter = filter{"cleanspan", "fixligatures"} Make:htlatex() Make:match("html$",my_filter) logs: herve@debianForEpub:~$ tex4ebook -c conf2.cfg -f epub mwe.tex Output dir: Compiler: latex Latex options: -jobname=mwe tex4ht.sty : conf2.cfg, tex4ht build_file mwe.mk4 mwe-epub/OEBPS mwe-epub/mimetype Using build file mwe.mk4 setting param correct_exit latex mwe "conf2.cfg,,charset=utf-8,epub" " -cmozhtf -utf8" "" " -jobname=mwe " Output file: mwe.epub Make4ht run – herve_02 Sep 16 '18 at 18:42
  • 1
    Welcome to TeX.SX! Can you please add your conf file to the question? And also the output as code, rather than image? – egreg Sep 16 '18 at 19:05
  • the conf file est minimal \Preamble{xhtml} \begin{document} \EndPreamble the result : <head><title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="generator" content="TeX4ht (tug.org/tex4ht)" /> <meta name="originator" content="TeX4ht (tug.org/tex4ht)" /> <!-- xhtml,charset=utf-8,epub,html --> <meta name="src" content="mwe.tex" /> <link rel="stylesheet" type="text/css" href="mwe.css" /> </head><body > <!--l. 10--><p class="noindent" >the – herve_02 Sep 16 '18 at 19:43
  • nothing copy because of the null char in utf8 I am working on this for 2 days. – herve_02 Sep 16 '18 at 19:46
  • this seems like wrong font support file for Libertine. which TeX distribution do you use? It works for me on TL 2018. – michal.h21 Sep 16 '18 at 20:26
1

It seems that Libertine font uses slightly modified version of the T1 font encoding, so positions of some ligatures are moved. It is necessary to provide tex4ht font configuration files for all variants of Libertine font. As there are 1288 files in the Libertine font directory, I will provide it only for possible variants used in your TeX file.

There are two types of font configuration files. First type defines Unicode characters mapped to characters used in the font. The second type references the font table saved in the first type and add some CSS definitions for font style. For example bold and italic fonts should have the same characters as the regular font, so it is possible to reference the regular font to save some space.

The font table, LinLibertineT-tlf-t1.htf:

LinLibertineT-tlf-t1 0 255
'&#x0060;'  ''  grave
'&#x00B4;'  ''  acute
'&#x02C6;'  ''  circumflex
'&#x02DC;'  ''  tilde
'&#x00A8;'  ''  dieresis
'&#x02DD;'  ''  hungarumlaut
'&#x02DA;'  ''  ring
'&#x02C7;'  ''  caron
'&#x02D8;'  ''  breve
'&#x00AF;'  ''  macron
'&#x02D9;'  ''  dotaccent
'&#x00B8;'  ''  cedilla
'&#x02DB;'  ''  ogonek
'&#x201A;'  ''  quotesinglbase
'&#x2039;'  ''  guilsinglleft
'&#x203A;'  ''  guilsinglright
'&#x201C;'  ''  quotedblleft
'&#x201D;'  ''  quotedblright
'&#x201E;'  ''  quotedblbase
'&#x00AB;'  ''  guillemotleft
'&#x00BB;'  ''  guillemotright
'&#x2013;'  ''  endash
'&#x2014;'  ''  emdash
'&#xnil;'   ''  .notdef
'&#x2080;'  ''  perthousandzero
'&#x0131;'  ''  dotlessi
'&#x0237;'  ''  dotlessj
'&#xFB01;'  ''  f_i
'&#xFB03;'  ''  f_f_i
'&#xFB00;'  ''  f_f
'&#xFB02;'  ''  f_l
'&#xFB04;'  ''  f_f_l
'&#x2423;'  ''  uni2423
'&#x0021;'  ''  exclam
'&#x0022;'  ''  quotedbl
'&#x0023;'  ''  numbersign
'&#x0024;'  ''  dollar
'&#x0025;'  ''  percent
'&#x0026;'  ''  ampersand
'&#x2019;'  ''  quoteright
'&#x0028;'  ''  parenleft
'&#x0029;'  ''  parenright
'&#x002A;'  ''  asterisk
'&#x002B;'  ''  plus
'&#x002C;'  ''  comma
'&#x002D;'  ''  hyphen
'&#x002E;'  ''  period
'&#x002F;'  ''  slash
'&#x0030;'  ''  zero
'&#x0031;'  ''  one
'&#x0032;'  ''  two
'&#x0033;'  ''  three
'&#x0034;'  ''  four
'&#x0035;'  ''  five
'&#x0036;'  ''  six
'&#x0037;'  ''  seven
'&#x0038;'  ''  eight
'&#x0039;'  ''  nine
'&#x003A;'  ''  colon
'&#x003B;'  ''  semicolon
'&#x003C;'  ''  less
'&#x003D;'  ''  equal
'&#x003E;'  ''  greater
'&#x003F;'  ''  question
'&#x0040;'  ''  at
'&#x0041;'  ''  A
'&#x0042;'  ''  B
'&#x0043;'  ''  C
'&#x0044;'  ''  D
'&#x0045;'  ''  E
'&#x0046;'  ''  F
'&#x0047;'  ''  G
'&#x0048;'  ''  H
'&#x0049;'  ''  I
'&#x004A;'  ''  J
'&#x004B;'  ''  K
'&#x004C;'  ''  L
'&#x004D;'  ''  M
'&#x004E;'  ''  N
'&#x004F;'  ''  O
'&#x0050;'  ''  P
'&#x0051;'  ''  Q
'&#x0052;'  ''  R
'&#x0053;'  ''  S
'&#x0054;'  ''  T
'&#x0055;'  ''  U
'&#x0056;'  ''  V
'&#x0057;'  ''  W
'&#x0058;'  ''  X
'&#x0059;'  ''  Y
'&#x005A;'  ''  Z
'&#x005B;'  ''  bracketleft
'&#x005C;'  ''  backslash
'&#x005D;'  ''  bracketright
'&#x005E;'  ''  asciicircum
'&#x005F;'  ''  underscore
'&#x2018;'  ''  quoteleft
'&#x0061;'  ''  a
'&#x0062;'  ''  b
'&#x0063;'  ''  c
'&#x0064;'  ''  d
'&#x0065;'  ''  e
'&#x0066;'  ''  f
'&#x0067;'  ''  g
'&#x0068;'  ''  h
'&#x0069;'  ''  i
'&#x006A;'  ''  j
'&#x006B;'  ''  k
'&#x006C;'  ''  l
'&#x006D;'  ''  m
'&#x006E;'  ''  n
'&#x006F;'  ''  o
'&#x0070;'  ''  p
'&#x0071;'  ''  q
'&#x0072;'  ''  r
'&#x0073;'  ''  s
'&#x0074;'  ''  t
'&#x0075;'  ''  u
'&#x0076;'  ''  v
'&#x0077;'  ''  w
'&#x0078;'  ''  x
'&#x0079;'  ''  y
'&#x007A;'  ''  z
'&#x007B;'  ''  braceleft
'&#x007C;'  ''  bar
'&#x007D;'  ''  braceright
'&#x007E;'  ''  asciitilde
'&#x002D;'  ''  hyphen
'&#x0102;'  ''  Abreve
'&#x0104;'  ''  Aogonek
'&#x0106;'  ''  Cacute
'&#x010C;'  ''  Ccaron
'&#x010E;'  ''  Dcaron
'&#x011A;'  ''  Ecaron
'&#x0118;'  ''  Eogonek
'&#x011E;'  ''  Gbreve
'&#x0139;'  ''  Lacute
'&#x013D;'  ''  Lcaron
'&#x0141;'  ''  Lslash
'&#x0143;'  ''  Nacute
'&#x0147;'  ''  Ncaron
'&#x014A;'  ''  Eng
'&#x0150;'  ''  Ohungarumlaut
'&#x0154;'  ''  Racute
'&#x0158;'  ''  Rcaron
'&#x015A;'  ''  Sacute
'&#x0160;'  ''  Scaron
'&#x015E;'  ''  Scedilla
'&#x0164;'  ''  Tcaron
'&#x0162;'  ''  Tcedilla
'&#x0170;'  ''  Uhungarumlaut
'&#x016E;'  ''  Uring
'&#x0178;'  ''  Ydieresis
'&#x0179;'  ''  Zacute
'&#x017D;'  ''  Zcaron
'&#x017B;'  ''  Zdotaccent
'&#x0132;'  ''  IJ
'&#x0130;'  ''  Idotaccent
'&#x0111;'  ''  dcroat
'&#x00A7;'  ''  section
'&#x0103;'  ''  abreve
'&#x0105;'  ''  aogonek
'&#x0107;'  ''  cacute
'&#x010D;'  ''  ccaron
'&#x010F;'  ''  dcaron
'&#x011B;'  ''  ecaron
'&#x0119;'  ''  eogonek
'&#x011F;'  ''  gbreve
'&#x013A;'  ''  lacute
'&#x013E;'  ''  lcaron
'&#x0142;'  ''  lslash
'&#x0144;'  ''  nacute
'&#x0148;'  ''  ncaron
'&#x014B;'  ''  eng
'&#x0151;'  ''  ohungarumlaut
'&#x0155;'  ''  racute
'&#x0159;'  ''  rcaron
'&#x015B;'  ''  sacute
'&#x0161;'  ''  scaron
'&#x015F;'  ''  scedilla
'&#x0165;'  ''  tcaron
'&#x0163;'  ''  tcedilla
'&#x0171;'  ''  uhungarumlaut
'&#x016F;'  ''  uring
'&#x00FF;'  ''  ydieresis
'&#x017A;'  ''  zacute
'&#x017E;'  ''  zcaron
'&#x017C;'  ''  zdotaccent
'&#x0133;'  ''  ij
'&#x00A1;'  ''  exclamdown
'&#x00BF;'  ''  questiondown
'&#x00A3;'  ''  sterling
'&#x00C0;'  ''  Agrave
'&#x00C1;'  ''  Aacute
'&#x00C2;'  ''  Acircumflex
'&#x00C3;'  ''  Atilde
'&#x00C4;'  ''  Adieresis
'&#x00C5;'  ''  Aring
'&#x00C6;'  ''  AE
'&#x00C7;'  ''  Ccedilla
'&#x00C8;'  ''  Egrave
'&#x00C9;'  ''  Eacute
'&#x00CA;'  ''  Ecircumflex
'&#x00CB;'  ''  Edieresis
'&#x00CC;'  ''  Igrave
'&#x00CD;'  ''  Iacute
'&#x00CE;'  ''  Icircumflex
'&#x00CF;'  ''  Idieresis
'&#x00D0;'  ''  Eth
'&#x00D1;'  ''  Ntilde
'&#x00D2;'  ''  Ograve
'&#x00D3;'  ''  Oacute
'&#x00D4;'  ''  Ocircumflex
'&#x00D5;'  ''  Otilde
'&#x00D6;'  ''  Odieresis
'&#x0152;'  ''  OE
'&#x00D8;'  ''  Oslash
'&#x00D9;'  ''  Ugrave
'&#x00DA;'  ''  Uacute
'&#x00DB;'  ''  Ucircumflex
'&#x00DC;'  ''  Udieresis
'&#x00DD;'  ''  Yacute
'&#x00DE;'  ''  Thorn
'&#xnil;'   ''  .notdef
'&#x00E0;'  ''  agrave
'&#x00E1;'  ''  aacute
'&#x00E2;'  ''  acircumflex
'&#x00E3;'  ''  atilde
'&#x00E4;'  ''  adieresis
'&#x00E5;'  ''  aring
'&#x00E6;'  ''  ae
'&#x00E7;'  ''  ccedilla
'&#x00E8;'  ''  egrave
'&#x00E9;'  ''  eacute
'&#x00EA;'  ''  ecircumflex
'&#x00EB;'  ''  edieresis
'&#x00EC;'  ''  igrave
'&#x00ED;'  ''  iacute
'&#x00EE;'  ''  icircumflex
'&#x00EF;'  ''  idieresis
'&#x00F0;'  ''  eth
'&#x00F1;'  ''  ntilde
'&#x00F2;'  ''  ograve
'&#x00F3;'  ''  oacute
'&#x00F4;'  ''  ocircumflex
'&#x00F5;'  ''  otilde
'&#x00F6;'  ''  odieresis
'&#x0153;'  ''  oe
'&#x00F8;'  ''  oslash
'&#x00F9;'  ''  ugrave
'&#x00FA;'  ''  uacute
'&#x00FB;'  ''  ucircumflex
'&#x00FC;'  ''  udieresis
'&#x00FD;'  ''  yacute
'&#x00FE;'  ''  thorn
'&#x00DF;'  ''  germandbls
LinLibertineT-tlf-t1 0 255

file LinLibertineTB-tlf-t1.htf:

.LinLibertineT-tlf-t1
htfcss:  LinLibertineTB-tlf-t1  font-weight: bold; font-style: normal; font-family: "Linux Libertine O",serif;  

font LinLibertineTI-tlf-t1.htf

.LinLibertineT-tlf-t1
htfcss:  LinLibertineTI-tlf-t1  font-weight: normal; font-style: italic; font-family: "Linux Libertine O",serif;  

file LinLibertineTBI-tlf-t1.htf:

.LinLibertineT-tlf-t1
htfcss:  LinLibertineTBI-tlf-t1  font-weight: bold; font-style: italic; font-family: "Linux Libertine O",serif;  

file LinLibertineT-tlf-sc-t1:

.LinLibertineT-tlf-t1
htfcss:  LinLibertineT-tlf-sc-t1  font-weight: normal; font-style: normal; font-variant: small-caps; font-family: "Linux Libertine O",serif;  

Save these files in the directory with yout TeX file. It is also necessary to request Linux Libertine as the main text font, using this configuration:

\Preamble{xhtml}
\Css{body{font-family: "Linux Libertine O", serif;}}
\begin{document}
\EndPreamble

Sample:

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.