Vier Möglichkeiten, um zwei Elemente in LaTeX nebeneinander auszurichten

Natürlich gibt es mehr als nur vier Möglichkeiten, Elemente nebeneinander auszurichten. In diesem Beitrag möchte ich nur die vier Möglichkeiten zusammenfassen, die ich normalerweise nutze:

  • Flowfram
  • Tabelle
  • Spalten
  • Minipage

Beachten Sie, dass der gesamte Code auf das wesentliche reduziert wurde, um die Länge dieses Beitrags zu verringern.

Flowfram

Flowfram ist ein package, das geladen und konfiguriert werden muss. Im Folgenden werde ich nur die Art und Weise auflisten, wie zwei einfache Bildelemente nebeneinander ausgerichtet werden, obwohl dieses Paket viel mehr Möglichkeiten bietet. Weitere Informationen finden Sie in der Dokumentation.

% ...
usepackage{flowfram}

newflowframe{0.49textwidth}{textheight}{0pt}{0pt}[columnone]
newflowframe{0.49textwidth}{textheight}{dimexpr2blockwidth+3columnsep}{0pt}[columntwo]

begin{document}

begin{figure}[!h]
    centering
    includegraphics[width=.25textwidth]{test-white.png}
    caption{Caption}
    label{fig:my_label1}
end{figure}

pagebreak

begin{figure}[!h]
    centering
    includegraphics[width=.25textwidth]{test-white.png}
    caption{Caption}
    label{fig:my_label2}
end{figure}

% ...

Tabelle

Die gute alte Tabelle ist auch eine Methode, Elemente nebeneinander zu positionieren! Beachten Sie, dass es nicht der Zweck einer Tabellenzelle ist, viel mehr als nur Text zu enthalten. Es könnte also sein, dass Sie zusätzliche Schwierigkeiten haben, beispielsweise ein Bild oder eine Liste in eine Tabelle einzufügen. Wichtig für die Verwendung als Layout-Tool ist einfach, dass sie die Ränder der Tabellenzellen und Reihen nicht hinzufügen. Das bedeutet einfach, keine “|” zwischen den “Float Specifiers” sowie keine hline oder ähnliches in der Tabelle platzieren.

Im folgenden Beispiel verwende ich usepackage{tabularx}, um beiden Elementen den gleichen horizontalen Raum zu geben.

begin{table}[!h]
    centering
    begin{tabularx}{textwidth}{XX}
        {
           Test links
        } &  {
           Test rechts
        }
    end{tabularx}
end{table}

Spalten

Spalten sind der Weg, um längere Teile des Dokuments zu bearbeiten, oder um das gesamte Dokument in zwei Elemente nebeneinander aufzuteilen. Sie können das multicol-Paket für eine einfache Lösung verwenden:

usepackage{multicol}
 
begin{document}
begin{multicols}{2}
    This text will be split into two columns. 
end{multicols}

Minipage

Minipage ist kein separates Paket und sollte automatisch von Ihrer LaTeX-Distribution bereitgestellt sein. Eine minipage ist das, was der Name sagt: eine neue Float-Umgebung, eine neue Seite, aber Mini. Sie können fast alles in eine Miniseite packen und die Größe so anpassen, wie Sie möchten. Folgendermassen richten Sie zwei Miniseiten nebeneinander aus:

begin{figure}[htbp]
	% minipage mit Text
	begin{minipage}{0.45textwidth} 
	Linke Seite
	end{minipage}
	% Platz dazwischen füllen
	hfill
	% minipage mit Bild
	begin{minipage}{0.45textwidth}
	% textwidth bezieht sich in der minipage auf die minipage
	includegraphics[width=textwidth]{test.png}
	caption{Ein Bild}
	label{image} 
	end{minipage}
caption{Caption für beide Seiten. Optional.}
end{figure}

Was brauche ich wann?

Beantworten Sie die folgenden Fragen, um eine Antwort zu erhalten. Beachten Sie, dass diese Auswahl nur auf meiner aktuellen Meinung und meinem Wissen basiert und daher Änderungen ausgesetzt ist.

Benötigen Sie ein sehr konfigurierbares Spalten-Setup und sind Sie bereit, lange Dokumentationen zu lesen und die Interna eines LaTeX-Pakets kennenzulernen, um dafür die größtmöglichen Möglichkeiten zu erhalten? Verwenden Sie Flowfram.

Müssen die Elemente nicht unbedingt nebeneinander sein, sondern von einem ins andere überlaufen? Verwenden Sie Spalten.

Sind die Elemente, die nebeneinander platziert werden sollen, gleich hoch, benötigen zusammen keine bestimmte Platzierung und sind keine neue Float-Umgebungen? Verwenden Sie eine Tabelle (oder eine longtable, wenn ihre Elemente zusammen länger als eine Seite sind).

Wenn Sie all diese Fragen mit Nein beantwortet haben, versuchen Sie es mit einer minipage.

Einschätzung der notwendingen Stromsauberkeit für den sinnvollen Einsatz von E-Autos

Der Zweck dieses Posts ist es, die maximale “Dreckigkeit” von Elektrizität für Elektroautos zu berechnen, damit diese die bessere Alternative zu konventionellen diesel- oder benzinbetriebenen Autos darstellen. Der Post ist einerseits eine Bestätigung meiner Informations-Bubble und andererseits eine Antwort auf den zu Recht kontroversen und widerlegten Artikel von Buchal, Karl und Sinn ​[1]​.

Folgende Annahmen werden wir treffen:

  • wir vernachlässigen den Bau, den Transport und den Verkauf des Autos,
  • und starten beim Punkt “Kunde kauft Auto”.
  • Wir vernachlässigen den CO2 Beitrag von Fracking, Raffinerie, Lagerung und Transport der fossilen Brennstoffe,
  • nehmen an dass der Strom nur durch Wasser & Kohlestrom besteht,
  • vernachlässigen jegliche CO2-Emissionen des Wasser-Stroms
  • und vernachlässigen den Bau jeglicher Verteilungsnetze.

Was die Daten angeht, werden wir mit den in jenem Artikel gewählten Automodellen rechnen: einem Tesla Model 3 und einem Mercedes C 220 d. Der Referenzwert für den Mercedes beträgt mindestens 0.134 kg CO2 per Kilometer ​[2]​. Dies ist der Wert, auf den wir den Kohleanteil maximieren wollen.

Für das Tesla-Modell 3 wird ein Wirkungsgrad von 0,148 kWh pro Kilometer angegeben ​[3]​. Mit einer Li-ion Batterie Effizienz von 99 % ​[4]​, können wir Lade- und Entladeverluste vernachlässigen. Nehmen wir den globalen Durchschnitt des Stromausfalls durch das Stromnetz von 12% ​[5]​ an, brauchen wir 0.168 kWh produzierten Strom per Kilometer.

Für die CO2-Erzeugung durch Kohlestrom gehen wir vom schlimmsten Fall aus. Das entspricht der höchsten Emissionen durch Anthrazitkohle von 0.354 kg CO2 per kWh (Einheiten umgerechnet) ​[6]​ liegen. Bei einem Anteil von 100% Kohle wäre unser Tesla somit verantwortlich für 0.059 kg CO2 per Kilometer. Dies ist weniger als die Hälfte der Emissionen des Mercedes, für die unrealistische Annahme von 100% des Stroms aus Kohle.

Zusammenfassend lässt sich also sagen, dass eine kurze Berechnung den allgemeinen Eindruck unterstützt, dass Elektroautos tatsächlich weniger Emissionen verursachen. Es muss jedoch angemerkt werden, dass für dieses Resultat einige Annahmen getroffen wurden. Die meisten davon scheinen sich im direkten Vergleich jedoch aufzuheben. Auch wurden nur die Kohlendioxidemissionen berücksichtigt, obwohl dies keineswegs weder der einzige noch ein ausreichender Indikator für Umweltverträglichkeit ist. Was ich in einer weiteren Überarbeitung dieser Berechnungen ausserdem berücksichtigen würde, ist die Herstellung der Batterie des Tesla, da dies der Hauptunterschied in der Herstellung der beiden Autos ist.

Wenn Sie Fehler in meinen Berechnungen finden oder Zweifel an meinen Annahmen haben, zögern Sie nicht, mir eine E-Mail zu schreiben oder einen Kommentar zu hinterlassen.

References

  1. [1]
    C. Buchal, H.-D. Karl, and H.-W. Sinn, “Kohlemotoren, Windmotoren und Dieselmotoren: Was zeigt die CO2-Bilanz?” p. 15.
  2. [2]
    “C-Klasse: T-Modell, Preisliste gültig ab 1. Februar 2019.” Mercedes-Benz Schweiz AG.
  3. [3]
    “Tesla Model 3 Standard Range,” Electric Vehicle Database. [Online]. Available: https://ev-database.org/car/1060/Tesla-Model-3-Standard-Range. [Accessed: 19-Jun-2019]
  4. [4]
    “Battery University,” BU-104a: Comparing the Battery with Other Power Sources, 28-Mar-2019. [Online]. Available: https://batteryuniversity.com/learn/article/comparing_the_battery_with_other_power_sources. [Accessed: 19-Jun-2019]
  5. [5]
    “ 6. Efficiency and Power Grids,” Global CCS Institute. [Online]. Available: https://hub.globalccsinstitute.com/publications/energy-efficiency-technologies-overview-report/6-efficiency-and-power-grids. [Accessed: 16-Jun-2019]
  6. [6]
    “How much carbon dioxide is produced when different fuels are burned?,” U.S. Energy Information Administration, 04-Jun-2019. [Online]. Available: https://www.eia.gov/tools/faqs/faq.php?id=73&t=11. [Accessed: 19-Jun-2019]

Meine Lösung für`0 – Using $this not in object context` in Joomla!

Nach der Migration wurde die Joomla! Seite schlichtweg nicht angezeigt. Stattdessen wurde nur der Fehler “0 - Using $this not in object context” angezeigt. In meinem Fall konnte ich das Problem beheben, indem ich – im Code des Templates – alle JFactory::getMenu() durch $ application->getMenu() ersetzte, wobei $application gesetzt wurde als $application = JFactory::getApplication().

Beachten Sie, dass dies möglicherweise nicht die einzig mögliche Lösung für diesen Fehler ist. Es hängt stark von Ihrem Code ab. Im Allgemeinen weist die Fehlermeldung auf das zugrunde liegende Problem hin: Irgendwo in Joomla!s (oder Ihrem) Code befindet sich ein $this in einer Klasse, die – wohl in Ihrem Code – verwendet wird, ohne dass die Klasse ordnungsgemäss instanziiert wurde. In dem oben erwähnten Fall zum Beispiel wurde die Klasse statisch initialisiert. Dies, weil das anscheinend im älteren Joomla! Versionen eine gängige und mögliche Art war.

Um die Ursache Ihres Problems zu finden, empfehle ich, Joomla! Debugging sowie PHP-Protokollierung zu aktivieren, um den vollständigen Stack-Trace abzurufen und damit den Ursprung der falsch instanziierten Klasse zu ermitteln.

How to Encode an SVG for the `src`-Attribute using PHP

As SVGs should preferably not be base64 encoded when setting them on an -tag src-attribute, the suggested alternative is to URL-encode them. The standard PHP urlencode function unfortunately is not suitable for this task, as the resulting value is not interpreted by any browser as a valid SVG image. Instead, the function rawurlencode has to be used. Took me some time to realize. As soon as you get this, you can also take over some other optimizations; maybe get inspired by Taylor Hunts mini-svg-uri to decode some characters manually to improve the overall size. A final function could possibly look like this:

function svgUrlEncode($svgPath)
{
$data = \file_get_contents($svgPath);
$data = \preg_replace('/\v(?:[\v\h]+)/', ' ', $data);
$data = \str_replace('"', "'", $data);
$data = \rawurlencode($data);
// re-decode a few characters understood by browsers to improve compression
$data = \str_replace('%20', ' ', $data);
$data = \str_replace('%3D', '=', $data);
$data = \str_replace('%3A', ':', $data);
$data = \str_replace('%2F', '/', $data);
return $data;
}

Cortana vs. Siri #4: Verfügbarkeit

Lange hat es gedauert, doch nun scheint dieser Punkt auch an Cortana zu gehen: Seit nicht allzu langer Zeit ist einerseits Cortana auf Windows 10 Geräten auch in der Schweiz standardmässig verfügbar, ohne dass man gross tricksen muss, und andererseits Siri verfügbar auf Desktop-Geräten und Laptops, die mit dem neusten MacOS ausgerüstet sind. Aber den wharen Punkt gibt es, da insbesondere Cortana bald auch auf iOs- und Adroid-Geräten verfügbar, was von Siri umgekehrt wohl nie behauptet werden kann.

Apple Superdrive mit Windows verwenden

Das Apple Superdrive Laufwerk lässt sich problemlos unter Windows verwenden. Allerdings muss dafür der entsprechende Treiber installiert werden.

Das geht folgendermassen: Laden Sie sich die Apple Boot Camp-Support-Software herunter. Die Datei ist eine Zip-Datei, also um einen «Zip-komprimierten Ordner», wie Windows das nennt. Entpacken Sie die Datei und öffnen anschliessend den entpackten Ordner. Gehen Sie darin zum Unterordner /BootCamp/Drivers/Apple. Dort finden Sie eine Datei namens «AppleODDInstaller64.exe» (eventuell ist die Endung «.exe» nicht zu sehen). Installieren Sie mithilfe dieser Datei den Treiber, indem Sie auf sie doppelklicken und dem Installationsassistenten folgen. Das war es schon! Beim nächsten Anhängen des Apple-SuperDrive Laufwerks sollte Ihr Windows dieses nun erkennen und damit arbeiten können.

Dynamic MediaQueries for an image raster with Sass

Ich konnte MediaQueries dynamisch aus Zurb Foundations-Breakpoints für ein Raster mit folgendem Sass-Code genierieren:

$i: 2;
@each $s,
$breakpoint in $breakpoints {
    @media (min-width: $breakpoint) {
        div.grid {
            .element {
                width: calc(100%/#{$i});
            }
        }
    }
    $i: $i+1;
}

In meinem Fall generiert es die Medienabfragen für alle Breakpoints, die für das Zurb Foundation Framework in den Sass-Array $breakpoints definiert sind. Für jeden Haltepunkt erhöht er die Anzahl der in einer Reihe des Gitters angezeigten Elemente, indem er seine Breite einstellt, beginnend mit zwei Elementen für die kleinste Bildschirmbreite. Natürlich muss für das .element die display -Eigenschaft auf inline-block gesetzt sein.

Erkenntnisse fürs Leben

Bei meinem Abenteuer in Moskau und Sankt Petersburg habe ich einiges gelernt. Vieles davon hatte ich eigentlich schon gewusst, doch nicht zu Herzen genommen. Dazu gehört:

  • Bezahlen in einem anderen Land ist trotz Bearbeitungsgebühr günstiger mit einer Kreditkarte als mit der Maestro, während das Abheben von Geld besser mit der Maestro ausgeführt werden sollte
  • Wäschewaschen geht im Notfall problemlos mit Shampoo oder Duschgel, sofern das Produkt nicht zu viel Schaum produziert
  • Eine kleine Geschirrspülmaschine mit Handspülmittel zu füttern kann jedoch zu einer Schaumparty in der Küche führen
  • Dieser Punkt würde die Moral etlicher Disney-Filme wiederholen, weshalb ich ihn durch diesen Text ersetzt habe

Passend noch einige Fun Facts, die mich mehr oder weniger überrascht haben:

  • Laut Gerüchten als Trotzreaktion auf Sanktionen hat Russland die Adoption russischer Kinder für Amerikaner verboten. Das ist jedoch leicht problematisch für die russischen Kinder, da die Amerikaner insbesondere für Kinder mit Erbkrankheiten oder Trisomie-21 die Hauptabnehmer waren.
  • Moskau liegt genau in der Mitte des weissen und des schwarzen Meeres.
  • Trotz Verbot homosexueller Propaganda gibt es in St. Petersburg zwei LGBT-Clubs.
  • Das Überqueren einer Strasse zu Fuss bei rot oder ohne Fussgängerstreifen kann mit einer Busse bestraft werden.
  • Vorne in die Metro wagen es – zumindest in Moskau – weniger Leute einzusteigen, aus Angst vor einem terroristischen Anschlag.
  • Unter der Hermitage gibt es das so genannte ‘Territorium der Katzen’. Dort leben, wahrlich im Keller der Hermitage, eine grosse Anzahl Katzen, deren Aufgabe die Rattenjagd ist. Sponsoren spenden Geld und Katzenfutter für die Haltung dieser Katzen.
  • In gewissen Metrostationen unterscheiden sich die Geschwindigkeit des Handlaufs und der Rolltreppe. Das ist ziemlich beirrend, wenn man alle paar Meter neu greifen muss!
  • Die Menge des All-In-One Dusch-Shampoo-Gels, die Akkulaufzeit meines Rasierers sowie die Menge der Zahnpaste hat die 9-Wochen Probe erfolgreich, wenn auch knapp, bestanden und gehalten.

Cortana in der Schweiz!

Mit dem Anniversary Update von Windows 10 ist es endlich soweit – der Sprachassistent von Microsoft ist endlich auch in der Schweiz verfügbar. Zwar versteht Cortana nur Hochdeutsch, doch das ist verständlich. Um Cortana zu aktivieren, benötigt man als erstes das neuste Update von Windows. Dies ist unterdessen auch für Mobilgeräte verfügbar, und kann in den Einstellungen unter Update und Sicherheit und Windows Update installiert werden.

Anschliessend ist für die Aktivierung noch eine kleine Einstellung notwendig. Durch klicken auf das Lupensymbol öffnet sich ein Fenster, in dem man unten links über dem Feedback-Symbol auf das Zahnrad klicken muss, um die Einstellungen für diese Suche zu öffnen. Dort findet man die Einstellung für die Sprache von Cortana. Man wird darauf hingewiesen, dass Region und Sprache nicht mit einer verfügbaren Cortana Sprache übereinstimmen. Dennoch kann man aus einer Liste die Sprache Deutsch (Deutschland) auswählen. Eine erneute Warnung, dass Region und Sprache nicht mit Cortanas Sprache übereinstimmen, und dass einige Features möglicherweise nicht verfügbar sind, kann man getrost wegklicken. Und yay – das wars! Cortana ist ab sofort auf deinem Gerät aktiviert.

Mich hat es vor allem gefreut, dass nun endlich auch der nervtötende {searchTerms} Bug auf meinem Lumia 930 gelöst und verschwunden ist. Bei diesem Fehler öffnete sich mir immer ein Edge-Tab mit einer Google-Suche nach {searchTerms} wenn ich das Lupensymbol berührte.

Über Essen

Die russische Küche hat einen ganz eigenen Charme. Ganz generell wage ich zu urteilen, dass milde bis leicht säuerliche Geschmäcke überwiegen. Im Vergleich zu Schweizer Küche gibt es definitiv mehr Suppe und weniger Käse. Insbesondere hartem Käse bin ich nicht begegnet. Betreffend Suppe ist insbesondere Borsch zu erwähnen, die als typisch gilt, obschon es sich dabei um eine Ukrainische Suppe handelt. Die Variationen von Suppen sind sehr gross, selten jedoch sind sie cremig wie man es sich aus der Schweiz gewohnt ist. Stattdessen erinnern sie ab und zu eher an einen gemischten Salat, der unter Wasser gesetzt wurde. Die Suppe geniessen die Russen gerne mit Smetana, also Sauerrahm. Dieser findet jedoch nicht nur in der Suppe Verwendung, sondern dient auch als Salatsosse, Milchersatz oder kommt zusammen mit Konfitüre auf ein Stück Brot. Die Beliebtheit von Sauerrahm erkennt man auch beim Besuch eines Ladens; in jedem, den ich bisher war, gab es eine grössere Auswahl als an Joghurt. Gewürze, wie bei uns getrocknete Kräuter, finden praktisch keine Verwendung. Dafür ist frisches Grünzeug wie Dill, Schnittlauch oder Lauchzwiebeln sehr beliebt.

Aufgrund der Sanktionen sind die meisten Produkte in Russland oder einem Land des nahen Ostens. Ausserdem empfinden Russen ihr Essen, das sie in Supermärkten kaufen, als künstlich. Bei einer Stichprobe habe ich tatsächlich keinen Saft gefunden, der weniger als ein halbes Jahr haltbar war. Und die Aufschnitts-Würste, die in Russland scheinbar ebenfalls eine leicht grössere Beliebtheit haben als in der Schweiz, enthalten einen sehr bescheidenen Anteil an echtem Fleisch.

Als sozialer Anlass gilt vor allem die Tee-Pause, die ich zeitlich noch nicht an einen bestimmten Punkt einordnen kann. Tee und Kaffee scheint neben der Suppe die Haupt-Flüssigkeitszufuhr zu sein. Auch hier gilt die Präferenz von saurem; Gerüchten zufolge gibt es auch eine Zahl Leute, die ihren Kaffee mit Zitrone trinken.
Was mir hier im Unterschied zur Schweiz nie begegnete, sind Menschen, die unterwegs essen. Sowohl auf der Strasse, wie auch in Metro und Bus ist mir nicht ein einziges mal jemand begegnet, der etwas gegessen oder getrunken hat. Bis auf der Konsum von Alkohol wäre dies gesetzlich nicht verboten, doch offensichtlich in dieser Gesellschaft nicht üblich.

Der erste Arbeitstag

Nach einigen organisatorischen Schwierigkeiten, habe ich nun doch eine Praktikumsstelle antreten können. Noch dazu an einem sehr tollen Arbeitsplatz: am staatlichen Hermitage-Museum. Dieses ist riesig und beherbergt unzählige wertvolle und berühmte Kunstschätze, darunter Bilder von Picasso, Matisse, Monet und vielen mehr. Dabei beschränkt sich die Sammlung des Museums nicht bloss auf Bilder: von Waffensammlungen über ägyptische Mumien bis altgriechische Vasen ist alles vertreten. Ich habe in diesem Museum zuvor bereits als regulär zahlender Besucher verirrt. Nun kann ich während der Arbeitszeit einen Badge nutzen, der mir den Zugang zum Museum, aber auch zu den Bereichen, die mit “Staff only” beschriftet sind, öffnet. Damit bieten sich für mich viel mehr Möglichkeiten, mich zu verirren!

Obschon das Personal des Volunteer Service des Hermitage Museum nicht wusste, wer ich bin und was ich dort mache, haben sie mich einfach erneut das eine Formular ausfüllen lassen, und schon hatte ich den Job. Mein erster Auftrag bestand darin, während etwas mehr als eineinhalb Stunden Menschen, die das Museum mit einem Rucksack betreten wollten, lächelnd darauf hinzuweisen, dass sie diesen doch bitte in der Garderobe lassen sollten. Etwas später wurden ich mit einigen anderen Praktikanten beauftragt, einige Kisten vom Generalstabsgebäude in unser Büro zu transportieren. Dabei war insbesondere die Genauigkeit bemerkenswert, mit dem der Raustransport überwacht wurde. Zuerst dauerte es eine halbe Stunde, bis alle zuständigen Personen ihren Schlüssel am richtigen Ort zusammengesucht, und etliche Formulare korrekt ausgefüllt waren. Als wir dann die Pakete raustransportieren wollten, blieben wir wieder an der Bürokratie hängen, da eine der zuständigen Personen nachlässigerweise zu faul war, die Kisten zu zählen, und eine 100 notiert hat. In der Tat waren es 104, so dass wir 4 Kisten hätten müssen stehen lassen. Mit ein wenig Geschick konnten wir den Inhalt von 4 Kisten auf die übrigen 100 verteilen, so dass 4 leere Kisten zurückblieben.

Nach einem Mittagessen in der Angestellten-Cafeteria die maximal halb so teuer is wie jene für reguläre Besucher, wurde ich mit dem Auftrag bekannt gemacht, der mich während meinem Aufenthalt hier beschäftigen wird. Eine ältere Website des Volunteer Service muss einer neuen weichen. Neben der Tatsache, dass es sich um eine mehrsprachige Website handelt, ist das übliche Problem zu beobachten, dass zu viele Kundenwünsche den Brei verderben. Während die ursprüngliche Idee der neuen Website war, ein wenig mit der alten Website aufzuräumen, wünscht einer nach dem anderen ein Element der alten Website nach dem anderen zurück auf die neue Seite, bis sie wieder den alten, zugemüllten Stand erreicht. Mal sehen, wie sich meine Überzeugungskraft in den nächsten Tagen entwickelt.