Externe Fonts und Scripte einbinden
Henry
- api
- font
- zu diesem forum
Hallo,
mir fiel gerade auf, dass immer wenn ich das Forum aufrufe eine kleine Verzögerung eintritt, weil Google noch aufgerufen wird.
Hier wird doch immer, zu recht, propagiert möglichst externe Sachen lokal einzubinden, gerade bei googlefonts.
Warum ist das denn hier im Forum nicht der Fall?
/@import url("https://fonts.googleapis.com/css?famil…
oder
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-…
schon klar, dass es da bestimmt einen Grund für gibt, aber welchen?
Gruss
Henry
Hallo Henry,
/@import url("https://fonts.googleapis.com/css?famil…
dieses verstößt gegen die DSGVO und der Verein ist hochgradig abmahngefährdet. Mich wundert es warum man dieses auf die leichte Schulter nimmt und die Schriften nicht schon längst lokal einbindet.
Bis bald!
Meowsalot (Bernd)
hallo
Hallo Henry,
/@import url("https://fonts.googleapis.com/css?famil…
dieses verstößt gegen die DSGVO
Nein, es ist weder illegal, externe Inhalte zu verlinken, noch sie einzubinden.
... und der Verein ist hochgradig abmahngefährdet.
Da musst du schon spezifisch werden.
Hallo Henry,
Hier wird doch immer, zu recht, propagiert möglichst externe Sachen lokal einzubinden, gerade bei googlefonts.
Warum ist das denn hier im Forum nicht der Fall?
/@import url("https://fonts.googleapis.com/css?famil…
Oswald hatten wir auch schon mal am Wickel, siehe https://forum.selfhtml.org/m1723051 Offenbar sind wir allerdings vom Selbsthosten wieder abgekommen, ich weiß allerdings nicht mehr, was da schief gegangen ist.
Bis demnächst
Matthias
Meine Vorgehensweise:
Download von https://fonts.googleapis.com/css?family=PT Sans:400,700,400italic|Oswald& mit einem modernen Browser (nicht wget!)
als 'oswald.css' speichern.
Ergebnis:
/* cyrillic */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 400;
src: local('Oswald Regular'), local('Oswald-Regular'), url(https://fonts.gstatic.com/s/oswald/v16/TK3iWkUHHAIjg752HT8Ghe4.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 400;
src: local('Oswald Regular'), local('Oswald-Regular'), url(https://fonts.gstatic.com/s/oswald/v16/TK3iWkUHHAIjg752Fj8Ghe4.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 400;
src: local('Oswald Regular'), local('Oswald-Regular'), url(https://fonts.gstatic.com/s/oswald/v16/TK3iWkUHHAIjg752Fz8Ghe4.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 400;
src: local('Oswald Regular'), local('Oswald-Regular'), url(https://fonts.gstatic.com/s/oswald/v16/TK3iWkUHHAIjg752GT8G.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'PT Sans';
font-style: italic;
font-weight: 400;
src: local('PT Sans Italic'), local('PTSans-Italic'), url(https://fonts.gstatic.com/s/ptsans/v9/jizYRExUiTo99u79D0e0ysmIEDQ.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'PT Sans';
font-style: italic;
font-weight: 400;
src: local('PT Sans Italic'), local('PTSans-Italic'), url(https://fonts.gstatic.com/s/ptsans/v9/jizYRExUiTo99u79D0e0w8mIEDQ.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
font-family: 'PT Sans';
font-style: italic;
font-weight: 400;
src: local('PT Sans Italic'), local('PTSans-Italic'), url(https://fonts.gstatic.com/s/ptsans/v9/jizYRExUiTo99u79D0e0ycmIEDQ.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'PT Sans';
font-style: italic;
font-weight: 400;
src: local('PT Sans Italic'), local('PTSans-Italic'), url(https://fonts.gstatic.com/s/ptsans/v9/jizYRExUiTo99u79D0e0x8mI.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 400;
src: local('PT Sans'), local('PTSans-Regular'), url(https://fonts.gstatic.com/s/ptsans/v9/jizaRExUiTo99u79D0-ExdGM.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 400;
src: local('PT Sans'), local('PTSans-Regular'), url(https://fonts.gstatic.com/s/ptsans/v9/jizaRExUiTo99u79D0aExdGM.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 400;
src: local('PT Sans'), local('PTSans-Regular'), url(https://fonts.gstatic.com/s/ptsans/v9/jizaRExUiTo99u79D0yExdGM.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 400;
src: local('PT Sans'), local('PTSans-Regular'), url(https://fonts.gstatic.com/s/ptsans/v9/jizaRExUiTo99u79D0KExQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 700;
src: local('PT Sans Bold'), local('PTSans-Bold'), url(https://fonts.gstatic.com/s/ptsans/v9/jizfRExUiTo99u79B_mh0OOtLQ0Z.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 700;
src: local('PT Sans Bold'), local('PTSans-Bold'), url(https://fonts.gstatic.com/s/ptsans/v9/jizfRExUiTo99u79B_mh0OqtLQ0Z.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 700;
src: local('PT Sans Bold'), local('PTSans-Bold'), url(https://fonts.gstatic.com/s/ptsans/v9/jizfRExUiTo99u79B_mh0OCtLQ0Z.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 700;
src: local('PT Sans Bold'), local('PTSans-Bold'), url(https://fonts.gstatic.com/s/ptsans/v9/jizfRExUiTo99u79B_mh0O6tLQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
oswald.sed: (ggf. anpassen!)
s/https:\/\/fonts\.gstatic\.com\/s\/ptsans\/v9\//\/fonts\//g
s/https:\/\/fonts\.gstatic\.com\/s\/oswald\/v16\//\/fonts\//g
ausführen:
sed -i -f oswald.sed oswald.css
chmod 644 oswald.css
Ergebnis:
/* cyrillic */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 400;
src: local('Oswald Regular'), local('Oswald-Regular'), url(/fonts/TK3iWkUHHAIjg752HT8Ghe4.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 400;
src: local('Oswald Regular'), local('Oswald-Regular'), url(/fonts/TK3iWkUHHAIjg752Fj8Ghe4.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 400;
src: local('Oswald Regular'), local('Oswald-Regular'), url(/fonts/TK3iWkUHHAIjg752Fz8Ghe4.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 400;
src: local('Oswald Regular'), local('Oswald-Regular'), url(/fonts/TK3iWkUHHAIjg752GT8G.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'PT Sans';
font-style: italic;
font-weight: 400;
src: local('PT Sans Italic'), local('PTSans-Italic'), url(/fonts/jizYRExUiTo99u79D0e0ysmIEDQ.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'PT Sans';
font-style: italic;
font-weight: 400;
src: local('PT Sans Italic'), local('PTSans-Italic'), url(/fonts/jizYRExUiTo99u79D0e0w8mIEDQ.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
font-family: 'PT Sans';
font-style: italic;
font-weight: 400;
src: local('PT Sans Italic'), local('PTSans-Italic'), url(/fonts/jizYRExUiTo99u79D0e0ycmIEDQ.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'PT Sans';
font-style: italic;
font-weight: 400;
src: local('PT Sans Italic'), local('PTSans-Italic'), url(/fonts/jizYRExUiTo99u79D0e0x8mI.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 400;
src: local('PT Sans'), local('PTSans-Regular'), url(/fonts/jizaRExUiTo99u79D0-ExdGM.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 400;
src: local('PT Sans'), local('PTSans-Regular'), url(/fonts/jizaRExUiTo99u79D0aExdGM.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 400;
src: local('PT Sans'), local('PTSans-Regular'), url(/fonts/jizaRExUiTo99u79D0yExdGM.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 400;
src: local('PT Sans'), local('PTSans-Regular'), url(/fonts/jizaRExUiTo99u79D0KExQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 700;
src: local('PT Sans Bold'), local('PTSans-Bold'), url(/fonts/jizfRExUiTo99u79B_mh0OOtLQ0Z.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 700;
src: local('PT Sans Bold'), local('PTSans-Bold'), url(/fonts/jizfRExUiTo99u79B_mh0OqtLQ0Z.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 700;
src: local('PT Sans Bold'), local('PTSans-Bold'), url(/fonts/jizfRExUiTo99u79B_mh0OCtLQ0Z.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 700;
src: local('PT Sans Bold'), local('PTSans-Bold'), url(/fonts/jizfRExUiTo99u79B_mh0O6tLQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
dann
cd ${DOCUMENT_ROOT}
mkdir fonts
chmod 755 fonts
cd fonts
wget 'https://fonts.gstatic.com/s/oswald/v16/TK3iWkUHHAIjg752Fj8Ghe4.woff2'
wget 'https://fonts.gstatic.com/s/oswald/v16/TK3iWkUHHAIjg752GT8G.woff2'
wget 'https://fonts.gstatic.com/s/ptsans/v9/jizYRExUiTo99u79D0e0ycmIEDQ.woff2'
wget 'https://fonts.gstatic.com/s/ptsans/v9/jizaRExUiTo99u79D0yExdGM.woff2'
wget 'https://fonts.gstatic.com/s/ptsans/v9/jizfRExUiTo99u79B_mh0OOtLQ0Z.woff2'
wget 'https://fonts.gstatic.com/s/ptsans/v9/jizfRExUiTo99u79B_mh0O6tLQ.woff2'
chmod 644 *
owwald.css einbinden, auf 404er (Alle Schriften geholt?) achten, fertig.
Alte Browser:
Dankenwerterweise liefert Google auch eine CSS-Datei für ttf-Fonts aus:
wget -O oswald.oldbrowsers 'https://fonts.googleapis.com/css?family=PT Sans:400,700,400italic|Oswald&'
Die muss man mit der oswald.css vor dem sed "mixen". Aber das passt hier nicht mehr her.
Eine alternative Lösung mit einem Skript:
# curl wird benötigt:
# sudo apt install curl
cd /tmp
mkdir font
cd font
wget 'https://raw.githubusercontent.com/neverpanic/google-font-download/master/google-font-download'
less google-font-download # Tut das nur was es soll?
chmod 755 google-font-download
./google-font-download 'https://fonts.googleapis.com/css?family=PT Sans:400,700,400italic|Oswald'
(Das abschließende '&' muss hier also weggelassen werden!)
Das Skript erzeugt gegenwärtig folgende Dateien:
-rw-r--r-- 1 user group 3223 Aug 5 17:35 font.css
-rw-r--r-- 1 user group 17285 Aug 5 17:34 Oswald.eot
-rw-r--r-- 1 user group 49847 Aug 5 17:35 Oswald.svg
-rw-r--r-- 1 user group 33268 Aug 5 17:35 Oswald.ttf
-rw-r--r-- 1 user group 18936 Aug 5 17:34 Oswald.woff
-rw-r--r-- 1 user group 15248 Aug 5 17:34 Oswald.woff2
-rw-r--r-- 1 user group 47755 Aug 5 17:34 PT_Sans_400.eot
-rw-r--r-- 1 user group 44122 Aug 5 17:34 PT_Sans_400italic.eot
-rw-r--r-- 1 user group 63991 Aug 5 17:34 PT_Sans_400italic.svg
-rw-r--r-- 1 user group 92380 Aug 5 17:34 PT_Sans_400italic.ttf
-rw-r--r-- 1 user group 51412 Aug 5 17:34 PT_Sans_400italic.woff
-rw-r--r-- 1 user group 42136 Aug 5 17:34 PT_Sans_400italic.woff2
-rw-r--r-- 1 user group 60551 Aug 5 17:34 PT_Sans_400.svg
-rw-r--r-- 1 user group 96712 Aug 5 17:34 PT_Sans_400.ttf
-rw-r--r-- 1 user group 54828 Aug 5 17:34 PT_Sans_400.woff
-rw-r--r-- 1 user group 45052 Aug 5 17:34 PT_Sans_400.woff2
-rw-r--r-- 1 user group 49906 Aug 5 17:34 PT_Sans_700.eot
-rw-r--r-- 1 user group 58410 Aug 5 17:34 PT_Sans_700.svg
-rw-r--r-- 1 user group 100032 Aug 5 17:34 PT_Sans_700.ttf
-rw-r--r-- 1 user group 57044 Aug 5 17:34 PT_Sans_700.woff
-rw-r--r-- 1 user group 46620 Aug 5 17:34 PT_Sans_700.woff2
Das ist mir allerdings ein wenig "to much". Grund: Moderne Browser unterstützen woff2 und ältere bekommen halt die Standardschriften.
Hallo Regina Schaukrug - die echte,
Moderne Browser unterstützen woff2 und ältere bekommen halt die Standardschriften.
Genau.
Wir werden das mal wieder in Angriff nehmen.
Bis demnächst
Matthias
Eigentlich müsstet Ihr jetzt fast alles haben was Ihr braucht. Wenn nicht dann fragt "Regina Schaukrug - die echte".
https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML
... kann man ja offenbar einfach herunterladen.
Man darf das wohl auch:
http://www.apache.org/licenses/LICENSE-2.0
Dort Punkt 4, "Redistribution".
Ich habe jetzt aber nicht nachgesehen, ob das Skript bei Bedarf libs nachlädt. Habe aber in den Entwickertools beim Abruf der Startseite davon nichts gesehen.
Hier wird doch immer, zu recht, propagiert möglichst externe Sachen lokal einzubinden, gerade bei googlefonts.
Mit dem "immer" ist das so eine Sache, denn so propagieren (mit guten Gründen[¹]) die Einen. Die Anderen (auch im Forum vertreten, ich werde sie Dir aber nicht raussuchen) propagieren (mit guten Gründen[²]), den Verweis auf das CDN.
Es ist also eine Abwägung im Einzelfall erforderlich.
¹) Datenschutz, übereinstimmende Verfügbarkeit der Ressourcen mit eigentlicher Webseite
²) Ressource mit guter Wahrscheinlichkeit schon im Browser-Cache
@@Regina Schaukrug - die echte
[CDN] Ressource mit guter Wahrscheinlichkeit schon im Browser-Cache
Wenn man (wie bei Google-Fonts durchaus üblich) zur Einsparung einiger (Kilo-)Bytes Subsetting einsetzt (d.h. die Zeichenbereiche angibt, die im Font enthalten sein sollen), dann ist die Wahrscheinlichkeit, dass die Ressource schon im Browser-Cache ist, so gut wie null.
LLAP 🖖
dann ist die Wahrscheinlichkeit, dass die Ressource schon im Browser-Cache ist, so gut wie null
Mag so sein.
Ich habe mich darauf beschränkt - ohne Wertung - die mir als hauptsächlich erscheinenden Argumente der beiden Fraktionen aufzulisten. Das verwendete Argumente durch widersprüchliches Handeln "absurdiert" werden können (und werden) ist dann wieder eine andere Sache.
Einen Punkt habe ich übersehen:
Ich denke, dass auch das alles sehr vom Einzelfall abhängt, weil beide Argumente was für sich haben. Ich selbst neige übrigens von jeher eher zur Contra-CDN-Fraktion. Diese Geschichten mit "Krempel von den Servern Dritter" sind mir persönlich im Hinblick auf Sicherheit, Verfügbarkeit und natürlich Datenschutz von jeher zu heikel.
Ich weiß, was man im Web so anstellen kann. Ich hab auch schon "was angestellt" - allerdings eher im Bereich der Forensik - und ich hab den "verdammten Klugscheißer von einem Rechtsanwalt" (auch der ist keiner mehr...) regelrecht "auf den Tisch genagelt".
Die DSGVO wurde dennoch nicht meinetwegen erlassen.