In einer Tabelle soll in einigen Zellen eine andere Sprache verwendet werden als im Rest des Dokuments. Die Sprachauswahl mit Hilfe eines selectlanguage-Befehls führt dazu, dass am Beginn der Zelle ein vertikaler Abstand von ca. einer halben Zeile eingefügt wird. Wie kann dies verhindert werden?

Open in Online-Editor
\documentclass{article}
\usepackage[english,ngerman]{babel}

\begin{document}

\begin{tabular}{|p{5cm}|p{5cm}|}
\hline
\selectlanguage{english} This is English text. This is English text. This is English text. \today &
Dies ist deutscher Text. Dies ist deutscher Text. Dies ist deutscher Text. \today \\
\hline
\end{tabular}

\end{document}

gefragt 07 Apr '15, 12:47

Cletus's gravatar image

Cletus
995126
Akzeptiert: 71%


Das dürfte ähnlich zu diesem Problem sein. Auch wenn ich den genauen Grund für das Verhalten nicht kenne, lässt es sich auch hier verhindern, wenn man sich vor dem \selectlanguage schon im horizontalen Modus befindet. Das kann man durch ein vorangestelltes \leavevmode oder \hspace{0pt} oder \mbox{} erreichen. Zusätzlich muss man darauf achten, dass kein ungewünschtes Leerzeichen eingefügt wird.

Open in Online-Editor
\documentclass{article}
\usepackage[english,ngerman]{babel}
\begin{document}
\begin{tabular}{|p{5cm}|p{5cm}|}
\hline
\mbox{}\selectlanguage{english}This is English text.
  This is English text. This is English text. \today &
Dies ist deutscher Text. Dies ist deutscher Text.
  Dies ist deutscher Text. \today \\
\hline
\end{tabular}
\end{document}

alt text


Update

@Clemens hat in seinem Kommentar einen weiteren Lösungsvorschlag gemacht. Man kann auch den Befehl \foreignlanguage{english}{...} für die andere Sprache verwenden. Allerdings werden dabei Datumskonventionen und sprachspezifische Texte nicht geändert. Wegen des Datums ist dann in diesem Beispiel noch ein \selectlanguage{english} im Argument nötig. Wäre in dem Beispiel keine Datumsangabe enthalten, würde ich diese Variante bevorzugen.

Open in Online-Editor
\documentclass{article}
\usepackage[english,ngerman]{babel}
\begin{document}
\begin{tabular}{|p{5cm}|p{5cm}|}
\hline
\foreignlanguage{english}{This is English text.
  This is English text. This is English text. \selectlanguage{english}\today} &
Dies ist deutscher Text. Dies ist deutscher Text.
  Dies ist deutscher Text. \today \\
\hline
\end{tabular}
\end{document}
Permanenter link

beantwortet 07 Apr '15, 14:33

esdd's gravatar image

esdd
14.2k53251

bearbeitet 08 Apr '15, 04:25

Danke, das hilft. Ich wäre auf eine logische Erklärung dieses Phänomens neugierig, aber die scheint ja nicht ganz trivial zu sein. Mit ist allerdings nicht ganz klar, welche Auswirkungen ein ungewünschtes Leerzeichen (Zeilenumbruch?) haben kann.

(07 Apr '15, 15:43) Cletus

@cletus Setz einfach mal hinter die mbox oder den Sprachschalter ein Leerzeichen. Das wird dann in der Tabellenzeile als erstes ausgegeben.

(07 Apr '15, 16:58) Johannes
2

\foreignlanguage{english}{This is ...} geht alternativ auch

(08 Apr '15, 03:39) Clemens

@Clemens Danke für den Hinweis. Ich habe das jetzt ergänzt, allerdings wird bei Verwendung von \foreignlanguage{english}{...} die Ausgabe des Datums nicht mit angepasst.

(08 Apr '15, 04:27) esdd

Den today-Befehl brauche ich eigentlich nicht. Der dient hier nur dazu, um zu überprüfen, ob die Sprache wirklich umgeschaltet wurde. Kann man denn irgendwie überprüfen, welche Trennregeln gerade aktiv sind? Anhand eines zufälligen Textes mit einer zufälligen Trennstelle kann man das kaum erkennen, da sich die Trennregeln verschiedener Sprachen nicht allzu sehr unterscheiden.

(08 Apr '15, 12:55) Cletus
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×185
×8

Frage gestellt: 07 Apr '15, 12:47

Frage wurde angeschaut: 1,682 Mal

Zuletzt aktualisiert: 08 Apr '15, 12:55