Anzeige:
Ergebnis 1 bis 12 von 12

Thema: Microtype mit luaLaTeX (TL2010)

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.09.2005
    Beiträge
    53

    Microtype mit luaLaTeX (TL2010)

    Hallo,

    mittlerweile hat sich einiges in der Entwicklung getan und ich versuche unter TL2010 Microtype zur Mitarbeit zu bewegen. Leider ohne Erfolg.

    Hier steht auf Seite 7, daß Protrusion und Expansion verfügbar sein sollen:
    http://www.ctan.org/tex-archive/macr.../microtype.pdf

    Und neuerdings soll Fontspec auch für luaTeX arbeiten:
    http://www.tex.ac.uk/tex-archive/mac...ontspec/README

    Kompiliert wird mit »lualatex test.tex«. Kann mir jemand sagen, warum von Microtype nichts zu bemerken ist?

    Code:
    \documentclass[fontsize=12pt]{scrartcl}
    \usepackage{luaotfload}
    \usepackage[EU2]{fontenc}
    \usepackage{microtype}
    \usepackage{lipsum}
    
    \usepackage{fontspec}
    \setromanfont[Ligatures=TeX]{Linux Libertine O}
    
    \begin{document}
    \lipsum
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Also protrusion funktioniert, wenn man sie mit den Lowlevel-Befehlen aus luaoftload aktiviert
    (z.B. \font\lmr={Latin Modern Romanrotrusion=default} at 12pt \lmr). Das Problem liegt also auf der fontspec-Seite. Soweit ich das sehe (und wenn ich eine Nachricht von Will von Anfang Juni richtig interpretiere), fehlt einfach noch die entsprechende Option. Es sieht aber so aus, als ließe sich die mit RawFeature oder \newfontfeature leicht nachrüsten:

    Code:
    \documentclass[fontsize=12pt]{scrartcl}
    \usepackage{luaotfload}
    \usepackage[EU2]{fontenc}
    \usepackage{microtype}
    \usepackage{lipsum}
    
    \usepackage{fontspec}
    \newfontfeature{Microtype}{protrusion=default;expansion=default;}
    
    %\setmainfont[RawFeature={protrusion=default;expansion=default;},Ligatures=TeX]{Linux Libertine O}
    \setmainfont[Microtype,Ligatures=TeX]{Linux Libertine O}
    \begin{document}
    \lipsum
    \end{document}

  3. #3
    Registrierter Benutzer
    Registriert seit
    04.09.2005
    Beiträge
    53
    Das ist großartig - danach habe ich solange gesucht. Herzlichen Dank dafür!

  4. #4
    Registrierter Benutzer
    Registriert seit
    04.09.2005
    Beiträge
    53
    Eine Frage ist noch aufgetaucht: läßt sich der Wert von protrusion mit factor=500 irgendwo einstellen? Wohin ich factor auch gebe, es zeigt keine Wirkung.

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Wenn ich Khaled richtig verstanden habe, wird vom microtype-Code für otf-Schriften eigentlich das Setzen von \pdfprotrudechars und \pdfadjustspacing benötigt.

    In der Dokumentation von luaotfload wird beschrieben, wo die "default"-Tabelle definiert ist: in otfl-font-dum.lua in der Funktion/Tabelle
    fonts.protrusions.setups['default'].

    Du kannst dir diese Tabelle in eine Datei "prottest.lua" kopieren, 'default' in z.B. 'test' ändern und die Werte ändern. Dann kannst du diese neue Tabelle nutzen:

    Code:
    \documentclass[fontsize=12pt]{scrartcl}
    \usepackage{luaotfload}
    \usepackage[EU2]{fontenc}
    %\usepackage{microtype}
     \pdfprotrudechars2
     \pdfadjustspacing2
    \usepackage{lipsum}
    
    \usepackage{fontspec}
    \directlua{require("prottest.lua");}
    
    \newfontfeature{Microtype}{protrusion=test;expansion=default;}
    \setmainfont[Microtype,Ligatures=TeX]{Linux Libertine O}
    
    \begin{document}
    \lipsum
    \end{document}
    Entsprechend kannst du natürlich auch die Expansion-Werte ändern (fonts.expansions.setups['default'])

  6. #6
    Registrierter Benutzer
    Registriert seit
    04.09.2005
    Beiträge
    53
    Zitat Zitat von u_fischer Beitrag anzeigen
    Du kannst dir diese Tabelle in eine Datei "prottest.lua" kopieren, 'default' in z.B. 'test' ändern und die Werte ändern. Dann kannst du diese neue Tabelle nutzen:
    Jetzt läuft es bei mir auch mit diesen Anpassungen. Ich hoffe, daß man bald diese Funktionen von Microtype etwas komfortabler bedienen kann.

    Meine prottest.lua habe ich in den Projekt-Ordner der betreffenden *.tex abgelegt. Eigentlich hätte ich sie lieber unter
    /usr/local/texlive/texmf-local
    stationiert. Aber ein texhash hat meinem TL2010 nicht helfen können, diese neue Datei zu finden. Muß die prottest.lua irgendwo besonders im TL-Verzeichnis abgelegt werden?

  7. #7
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Muß die prottest.lua irgendwo besonders im TL-Verzeichnis abgelegt werden?
    Ja. Schau einfach nach, wo in deinen anderen Bäumen lua-Dateien sind, die gefunden werden. (Meines Wissens nach, müsste $TEXINPUTS im Suchpfad sein, d.h. z.B. irgendwo unter tex\latex\ müsste gehen. Aber da ich kein TeXLive habe, weiß ich es nicht sicher.)

  8. #8
    Registrierter Benutzer
    Registriert seit
    04.09.2005
    Beiträge
    53
    Zitat Zitat von u_fischer Beitrag anzeigen
    Schau einfach nach, wo in deinen anderen Bäumen lua-Dateien sind, die gefunden werden.
    Ich habe noch ein Verzeichnis angelegt (analog zum Pfad /usr/local/texlive/2010/texmf-dist/tex/luatex), die prottest.lua hineinkopiert und damit läuft es:

    Code:
    /usr/local/texlive/texmf-local/tex/luatex
    Danke für die kompetente Hilfestellung!

  9. #9
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Du kannst übrigens den Faktor auch direkt ändern (du musst es aber machen, bevor du die Schrift deklarierst, also vor \setmainfont):

    Code:
    \documentclass[fontsize=12pt]{scrartcl}
    \usepackage{luaotfload}
    \usepackage[EU2]{fontenc}
     \pdfprotrudechars2
     \pdfadjustspacing2
    \usepackage{lipsum}
    \usepackage{fontspec}
    
    \newfontfeature{Microtype}{protrusion=default;expansion=default;}
    \directlua{fonts.protrusions.setups.default.factor=5}
    \setmainfont[Microtype,Ligatures=TeX]{Linux Libertine O}
    
    \begin{document}
    \lipsum
    \end{document}

  10. #10
    Registrierter Benutzer
    Registriert seit
    04.09.2005
    Beiträge
    53
    Damit ist es ja noch schöner! Ich werde mir die Lösung mit prottest.lua aber aufbewahren, falls ich irgendwann individuellere Einstellungen in Sachen Protrusion vornehmen will …

  11. #11
    Registrierter Benutzer
    Registriert seit
    06.02.2010
    Beiträge
    11
    hm, zum einen mag lulatex das \setmainfont nach den \begin{document} haben, was kein problem ist, ich aber im pdf code müll:

    \@tempswatrue\@tempswatrue\@tempswatrue\@tempswatr ue\@tempswatrue\@tempswafalse

    aus nem template habe.

    und es funktioniert mit dem microtype package irgendwie nicht. ligaturen funktionieren, guillements auch, den faktor 5 brauch ich nicht bei protrusion und expansion. aber der rand, ob mit oder ohne microtype package (sehe da auch überhaupt keinen unterschied), ist weiterhin fransig.

    hab das test pdf angehängt.

    jmd ne idee?

    Code:
    \documentclass[fontsize=12pt]{scrartcl}
    \usepackage{luaotfload}
    \usepackage[ngerman]{babel}
    \usepackage[EU2]{fontenc}
     \pdfprotrudechars2
     \pdfadjustspacing2
    \usepackage{lipsum}
    \usepackage{fontspec}
    \usepackage{microtype}
    \newfontfeature{Microtype}{protrusion=default;expansion=default;}
    \begin{document}
    \setmainfont[Ligatures=TeX]{Linux Libertine O}
    \lipsum
    \end{document}

  12. #12
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    1. Lade nur fontspec, das kümmert sich um luaotfload + fontenc.

    2. Kontrolliere ob du wirklich die neueste Version von fontspec hast. Dieses \@tempswatrue war ein Bug. In fontspec 2010/11/07 v2.1b und 2.1d gibt es ihn nicht mehr.

    3. Es reicht nicht, ein \newfontfeature zu definieren. Man muss es auch benutzen.

    4. Wenn du microtype.sty verwenden willst, brauchst du die beta-Version und musst wahrscheinlich erst noch eine Konfigurationsdatei erstellen.

    Code:
    \documentclass[fontsize=12pt]{scrartcl}
    \usepackage{lipsum}
    \usepackage[ngerman]{babel}
    \usepackage{fontspec}
    \pdfprotrudechars2
    \pdfadjustspacing2
    \newfontfeature{Microtype}{protrusion=default;expansion=default;}
    
    \setmainfont[Microtype,Ligatures=TeX]{Linux Libertine O}
    \begin{document}
    
    \lipsum
    \end{document}

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •