Libertine: Et-Zeichen in Kapitälchen global umdefinieren

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Libertine: Et-Zeichen in Kapitälchen global umdefinieren

von mischer » Fr 7. Mär 2014, 14:52

Danke für deinen Nachtrag!
Aus deinem Input habe ich nun folgende für mich zufriedenstellende Lösung gezimmert. Einzig in serifenlosen Kapitälchen wird nun das Serifen-Et gesetzt. Das kommt in meinem Text jedoch erstens nicht vor und zweitens ist der Unterschied zu marginal, als dass ich da jetzt noch Zeit reinstecken möchte. Außerdem ist Wochenende und die Sonne scheint! ;)

Viele Grüße,
Mike
\documentclass[parskip]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{libertine}
\makeatletter
\DeclareRobustCommand\&{%
	{\ifstr{\f@shape}{sc}%
		{\ifstr{\f@series}{b}%
			{\normalfont\bfseries}%
			{\normalfont}%
		}%
		{\ifstr{\f@shape}{scit}%
			{\ifstr{\f@series}{b}%
				{\normalfont\itshape\bfseries}%
				{\normalfont\itshape}%
			}%
			{}%
		}%
		\char"26%
	}%
}
\makeatother

\begin{document}

Max \& Moritz\\
\textsc{Max \& Moritz}\\
\textbf{Max \& Moritz}\\
\textit{Max \& Moritz}\\
\textsc{\textbf{Max \& Moritz}}\\
\textsc{\textsf{Max \& Moritz}}\\
\textsc{\textit{Max \& Moritz}}\\
\textsc{\textbf{\textit{Max \& Moritz}}}\\
\end{document}

von Noch so einer » Fr 7. Mär 2014, 13:23

\ifstr findest Du übrigens in der KOMA-Script-Anleitung bzw. im KOMA-Script-Buch.

Die gezeigte Fallunterscheidung ist natürlich sehr rudimentär. So würde beispielsweise bei Vorhandensein eines light-Stils bei der gezeigten Fallunterscheidung ein fettes & gesetzt. Wie gesagt: Man kann die Fallunterscheidung noch deutlich verfeinern, wenn das gewünscht wird.

Alternativ könnte man übrigens \& auch via everysel in Abhängigkeit von der gewählten Schrift umdefinieren.

Außerdem überlege ich gerade, dass es vermutlich eine gute Idee wäre, \& mit \DeclareRobustCommand statt mit \renewcommand umzudefinieren. Dann funktioniert es auch im Argument von \caption, \section etc.

von mischer » Fr 7. Mär 2014, 12:49

Wow, genial! Vielen Dank, das ist genau das was ich gesucht habe! :)
Die Syntax habe ich noch nicht wirklich verstanden. Werde mir die von dir verlinkte Doku dazu mal ansehen. Nochmals danke!

von Genmutant » Fr 7. Mär 2014, 11:25

Cool, das kannte ich noch nicht! :D

von Noch so einer » Fr 7. Mär 2014, 10:21

\documentclass[parskip]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{libertine}
\makeatletter
\renewcommand*\&{%
  {\ifstr{\f@shape}{sc}{\ifstr{\f@series}{m}{\normalfont}{\normalfont\bfseries}}{}\char"26 }%
}
\makeatother
\begin{document}

Standardschrift:\\
Max \& Moritz\\
Als Kapitälchen:\\
\textsc{Max \& Moritz}\\
\large
\textsc{Max \& Moritz}\\
\textbf{Max \& Moritz}\\
\textsc{\textbf{Max \& Moritz}}\\
\textsc{\textsf{Max \& Moritz}}\\
\end{document}
Man kann natürlich noch weitere Fallunterscheidungen einbauen. Das nötige Wissen findet man u. a. im fntguide.

von Genmutant » Fr 7. Mär 2014, 09:55

Ja das Problem ist halt, dass sobald du in den sc Modus wechselst, eine andere Schrift benutzt wird. In der wurde dann eben das & ersetzt durch deine Version.

Wenn es dir nicht zu viel Arbeit ist, kannst du natürlich auch einfach
\textsc{Max \textnormal{\&} Moritz}
machen.

von mischer » Fr 7. Mär 2014, 09:21

Hallo Genmutant,
ich danke dir für deinen Vorschlag. Die Nebenwirkungen machen ihn für mich aber leider nicht nutzbar, da ich auf die anderen Schriftschnitte nicht verzichten kann.

Falls mein Wunsch dies in der Präambel zu definieren nicht so einfach umsetzbar ist, würde ich zur Not auch innerhalb des \textsc-Befehls jedes Mal manuell das "normale" Et-Zeichen aufrufen.

Allerdings spuckt auch dieser Befehl
\textsc{Max \libertineGlyph{ampersand} Moritz}
automatisch das alternative Et-Zeichen aus. Grrrrrrr..... :roll:
(Mal abgesehen davon, dass dieser Befehl ja auch nur bei XeLaTeX/LuaLaTeX verfügbar ist.)

von Genmutant » Do 6. Mär 2014, 15:00

Ich hätte eine halbe Lösung für dich, die mir allerdings nicht besonders gefällt, weil sie öfters kaputt geht...

Du kannst global ändern, dass & immer in Standardschrift gedruckt werden soll, allerdings funktionieren dann so Sachen wie Fett oder Kursiv davon nicht mehr.
\documentclass[parskip]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{libertine}

\let\oldet\&
\def\&{\textnormal{\oldet}}
\begin{document}

Standardschrift:\\
Max \& Moritz\\
Als Kapitälchen:\\
\textsc{Max \& Moritz}\\
\large
\textsc{Max \& Moritz}\\
\textbf{Max \& Moritz}
\end{document}

von mischer » Do 6. Mär 2014, 14:07

Hallo und danke für deine Anregung! Habe den Link gecheckt, konnte mich meinem Problem damit jedoch leider nicht nähern. :?

Zwischenzeitlich bin ich auf den Befehl \chardef\&="0026 gestoßen, der das Umdefinieren des Et-Zeichens ja grundsätzlich erlaubt, auch mit pdfLaTeX.

In Libertine scheint für die Kapitälchen das alternative Et-Zeichen jedoch fix hinterlegt zu sein, sodass die Umdefinition keine Auswirkungen hatte. Hingegen hat ein testweises Umdefinieren als %-Zeichen zum "Erfolg" geführt:

Bild

Noch jemand 'ne Idee? :?
\documentclass[parskip]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{libertine}

\begin{document}

\chardef\&="0026
Umdefinition mit \verb|\chardef\&="0026|:

Standardschrift:\\
Max \& Moritz

Als Kapitälchen:\\
\textsc{Max \& Moritz}

So soll es aussehen:\\
\textsc{Max} \& \textsc{Moritz}

\chardef\&="0025
Zum Test mit \verb|\chardef\&="0025|:

Standardschrift:\\
Max \& Moritz

Als Kapitälchen:\\
\textsc{Max \& Moritz}

So soll es aussehen:\\
\textsc{Max} \& \textsc{Moritz}

\end{document}

Re: Libertine: Et-Zeichen in Kapitälchen global umdefinieren

von Gast » Do 6. Mär 2014, 10:42

Hallo Mike,

meine Antwort löst dein Problem leider nicht, aber vielleicht hilft sie dir bei der weiteren Suche. Ich wollte bei der Libertine mal das Standard W durch das Wikipedia W austauschen, da das Wikipedia W ein Sonderzeichen der Libertine ist (das dürfte ein ähnliches Problem zu deinem Problem sein). Rausgefunden habe ich, dass das mit pdfLaTeX wohl nicht geht, da der Befehl \libertineGlyph{} in pdfLaTeX nicht funktioniert, wohl aber in XeLaTeX oder in LuaLaTeX. Deshalb jetzt hier ein Beispiel mit dem Wikipedia W (mit LuaLaTeX übersetzen):
\documentclass[parskip]{scrartcl} 
\usepackage{fontspec}
\usepackage{libertine}
\newfontfamily\libertinew[StylisticSet=5]{Linux Libertine O}

\begin{document}
Wikipedia \libertineGlyph{W.alt}ikipedia

\libertinew

Wikipedia
\end{document}
Möglicherweise ist folgende Seite noch hilfreich:

http://tex.stackexchange.com/questions/ ... -libertine

Viele Grüße

PS: Über eine Rückantwort (weiterer Lösungsansatz) würde ich mich freuen.[/url]

Nach oben