PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lualatex (otf) und csquotes ?



sheldor
09-02-2010, 14:16
hallo,
ich probier grad mit lualatex und libertine (otf font) rum, leider funktioniert das paket csquotes nicht (keine fehlermeldung, quotes erscheinen einfach nicht). ferner hab ich noch nicht herausgefunden, wie ich libertine resp. biolinum als standart rm respektive sf font definiere (damits auch mit meinen document syle einstellungen klappt).
\renewcommand fuehrt zu einem:

"! Missing \endcsname inserted.
<to be read again>
\protect
l.19 \begin{document}

?"


\documentclass[fontsize=12pt]{scrartcl}
\usepackage{luatextra,luaotfload}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[babel,german=guillemets]{csquotes}
\DeclareFontFamily{T1}{libertine}{}
\DeclareFontShape{T1}{libertine}{m}{n}{<-> "LinLibertine_Re:+liga"}{}
\DeclareFontShape{T1}{libertine}{m}{sc}{<-> "LinLibertineC_Re:+liga:+smcp"}{}
\DeclareFontShape{T1}{libertine}{m}{it}{<-> "LinLibertine_It:+liga"}{}
\DeclareFontShape{T1}{libertine}{bx}{n}{<-> "LinLibertine_Bd:+liga"}{}
\DeclareFontShape{T1}{libertine}{bx}{it}{<-> "LinLibertine_BI:+liga"}{}
\newcommand\libertine{\fontfamily{libertine}\selec tfont}
\DeclareFontFamily{T1}{biolinum}{}
\DeclareFontShape{T1}{biolinum}{m}{n}{<-> "Biolinum_Re:+liga"}{}
\DeclareFontShape{T1}{biolinum}{bx}{n}{<-> "Biolinum_Bd:+liga"}{}
\newcommand\biolinum{\fontfamily{biolinum}\selectf ont}
%\renewcommand{\rmdefault}{\fontfamily{libertine}\ selectfont}
%\renewcommand{\sfdefault}{\fontfamily{biolinum}\s electfont}
\begin{document}
Qu cm-fonts tz\\
\libertine
Qu libertine tz\\
\biolinum \\
Qu biolinum tz\\
\libertine
\enquote{in klammern?}
\end{document}


danke fuer eure hilfe!

u_fischer
09-02-2010, 15:00
Ich kann mir ehrlich gesagt, nicht vorstellen, dass das so funktionieren kann. Woher soll luatex wissen, dass und wie es die Schrift (unicode-kodiert) in T1-umkodieren soll?

Versuche es mal so (bis es ein vernünftiges Äquivalent zum xelatex-Paket fontspec gibt):


\documentclass[fontsize=12pt]{scrartcl}
\usepackage{luaotfload}
\usepackage[ngerman]{babel}
\usepackage[EU1]{fontenc}

\def\XeTeXpicfile{}%um xunicode zu linken
\def\UTFencname{EU1}
\usepackage{xunicode}
\usepackage[babel,german=guillemets]{csquotes}
\DeclareFontFamily{EU1}{libertine}{}
\DeclareFontShape{EU1}{libertine}{m}{n}{<-> "LinLibertine_Re-4.4.1"}{}
\DeclareFontShape{EU1}{libertine}{m}{it}{<-> "LinLibertine_It-4.0.6"}{}

\DeclareFontFamily{EU1}{arial}{}
\DeclareFontShape{EU1}{arial}{m}{n}{<-> "Arial"}{}

\renewcommand{\rmdefault}{libertine}
\renewcommand{\sfdefault}{arial}
\begin{document}

abc \textit{tfg}

{\large abc fff \textit{tfffg}}

\enquote{in klammern?}

\sffamily
abc
\end{document}

sheldor
09-02-2010, 20:35
funktioniert! merci ulrike!

das einzige was ich vorher zu libertine resp. otf fonts gefunden hatte war unter http://www.luatex.de/2009/12/luatex-fur-den-latex-benutzer-eine-einfuehrung/ bzw alternativ haette ich weiterhin libertine.sty und [utf8]{luainputenc} benutzen koennen.

aber wie bekomme ich nun mediaevalziffern als standart hin resp. wie kann ich dann umschalten?

bei xelatex waer es rel simpel:

{\addfontfeature{Numbers=OldStyle}1234567890}

bzw

\defaultfontfeatures{Numbers=OldStyle}

oder eben um bei mediaeval als standarteinstellung auf versalziffern umzustellen

{\addfontfeature{Numbers=Lining}1234567890}

mit der libertine.sty und pdflatex global durch aufruf

\usepackage[default=osf]{libertine}

um dann sukzessive wieder auf versalziffern umzuschalten

{\renewcommand{\rmdefault}{fxb}\normalfont 1234567890}

(die letzten ausfuehrungen waren jetzt zwar fuer mein problem mit lualatex nicht sachdienlich, wollte es aber mal ausgefuehrt haben, da ich selber doch etwas laenger nach den moeglichkeiten suchen musste - so kanns ja ggf jemand ergooglen :) )

danke und gruss!

sheldor
09-02-2010, 21:05
hab den von mir zitierten link nochmal gelesen...und schwups...

\DeclareFontShape{EU1}{libertine}{m}{n}{<->" LinLibertine_Re:+liga:+onum"}{}

stellt auf mediaevalziffern um.

allerdings fiel mir just auf (beim transfer in das nicht minimalbsp), dass mit dem umweg ueber xelatex, also:

\def\XeTeXpicfile{}%um xunicode zu linken
\def\UTFencname{EU1}
\usepackage{xunicode}

das paket mircotype nicht mehr funktioniert, womit ich unterm strich keinen schritt weiter bin :/

ziel der ganzen uebung ist es (neben uni prokrastination) microtype UND die liga, hlig und dlig ligaturen von der libertine type verwenden zu koennen. mit pdflatex geht ersteres, mit xelatex letzteres.

somit liegen meine hoffnungen bei luatex. :)

u_fischer
10-02-2010, 09:37
xunicode hat sicher nichts mit microtype zu tun. Es sorgt ja nur dafür, dass diverse Befehle wie \guillemotleft oder \textdegree bei den unicode-Schriften das Richtige tun.

Wenn du "normale" (T1-kodierte-type1-) Schriften mit luatex verwendest, funktioniert microtype teilweise: Protrusion + expansion gehen. Und wenn ich einfach mal wieder T1 für die libertine verwende, dann sind zwar die Sonderzeichen falsch, aber Protrusion scheint zu funktionieren:


\documentclass[fontsize=12pt]{scrartcl}
\usepackage{luaotfload}
\usepackage[T1]{fontenc}
\usepackage{microtype}
\usepackage{lipsum}
\DeclareFontFamily{T1}{libertine}{}
\DeclareFontShape{T1}{libertine}{m}{n}{<-> "LinLibertine_Re-4.4.1"}{}
\DeclareFontShape{T1}{libertine}{m}{it}{<-> "LinLibertine_It-4.0.6"}{}
\renewcommand{\rmdefault}{libertine}

\begin{document}
\lipsum
\end{document}

D.h. Die Schrift und microtype können das eigentlich und im Wesentlichen muss man dafür microtype nur beibringen, dass EU1 eine erlaubte Kodierung ist und ggfs. ein paar der Werte anpassen.

Wenn ich in microtype.cfg in \DeclareMicrotypeSet{alltext} EU1 hinzufüge, dann klappt es mit der Protrusion von Bindestrichen (abgesehen von diversen Warnungen). Bleibt also nur die Frage, wie man es sauber macht. Ich schlage vor, du fragst den Autor von microtype (falls du es nicht aus der Doku rausbekommst).

sheldor
13-02-2010, 14:56
ich habe den entwickler von microtype mal eine mail geschrieben und hilfe erbeten, aber er hat (verstaendlicher weise :) ) noch nicht genantwortet.

einfuegen von EU1 definitionen in die microtype.cfg (ueberall wo t1 stand eu1 angefuegt respektive t1 definitionen fuer protrusion o.ae. gedoppelt und umgelabelt) fuehrte zwar nicht zu fehlermeldungen, aber auch nicht zu einem verbesserten schriftbild (v.a. rechter rand "sehr" wellig im vgl zu "normalem" bzw funktionierendem microtype)...

sheldor
14-02-2010, 16:07
hallo,
hab nun eine sehr nette antwort vom microtype entwickler bekommen, der mich darauf hinwies, dass:

das fontspec paket mittlerweile auch fuer luatex entwickelt wird
( http://github.com/wspr/fontspec )

bei lualatex eu2 und nicht eu1 besser sei, und das euenc just auf ctan aktualisiert wurde

und die idee eu1 (bzw nun eu2) in der microtype.cfg hinzuzufuegen prinzipiell richtig ist. aber (ich bin so frei aus der email zu zitieren, hoffe das ist ok):

"Dann sollte wenigstens expansion schon mal funktionieren. Das Problem sind eher die Feineinstellungen f�r den Randausgleich, denn im Augenblick versteht microtype im Zusammenspiel mit luatex weder solche Dinge wie \textendash noch die entsprechenden Unicode-Zeichen und w�rde sich selbst bei numerischer Angabe beschweren. Da w�ren einige �nderungen in microtype f�llig, f�r die ich leider wahrscheinlich erst im n�chsten Monat Zeit haben werde. (Mit dem neuen fontenc funktioniert �brigens noch gar nichts, denn dazu bed�rfte es sogar noch umfangreicherer Anpassungen.) Sie k�nnen also im Augenblick nur, andererseits aber auch: immerhin, die ASCII-Zeichen einschlie�lich des wichtigen Bindestrichs f�r den Randausgleich einrichten. Am besten, Sie schreiben die Anpassungen in eine neue Datei namens mt-libertine.cfg."

jetzt muss ich erst mal in ruhe nachdenken -> kaeffchen

u_fischer
14-02-2010, 16:20
Also Dinge wie \textendash sollten mit xunicode funktionieren. Außerdem sollte es möglich sein, die ^^^^-Notation zu verwenden. Mein Problem ist eher auf der microtype-Seite. Wenn Robert dir erzählen könnte, welche Dateien man für Protusion bzw. Expansion für ein neues Encoding X und eine Schrift Y erzeugen muss, und welche Dateien man als Beispiel nehmen kann, sollte es eigentlich nicht so schwer sein.

sheldor
14-02-2010, 17:39
ich frag da nochmal nach.

es arbeitet wohl grad auch jmd an den microtype anpassungen fuer libertine. versuche da mal zu kontaktieren...

Amandus
21-06-2010, 17:57
Ich eröffne diese Frage lieber als neuen Thread, da es sonst den Titel des Threads nicht mehr so gut trifft.

Hier ist er:

http://www.mrunix.de/forums/showthread.php?p=315741#post315741