Unerwünschtes Leerzeichen vor dem Bindestrich in der Longtable

Unerwünschtes Leerzeichen vor dem Bindestrich in der Longtable

Ich habe ein kleines Satzproblem innerhalb der longtableUmgebung.

Ich schreibe meinen Lebenslauf und muss in eine Tabellenzelle eine Liste meiner Fähigkeiten schreiben. Da ich die Länge des Dokuments auf eine Seite beschränken möchte, habe ich keinen itemizePlatz gespart, also habe ich die Liste manuell mit Bindestrichen ("-") geschrieben.

Mir ist aufgefallen, dass, wenn der Bindestrich das erste Zeichen in der Tabellenzelle ist, die erste Zeile um ein Leerzeichen eingerückt wird, während, wenn vor der Liste noch Text steht, alles richtig angezeigt wird.

Ich habe festgestellt, dass das Auskommentieren \usepackage{microtype}das Problem behebt, aber ich würde das Paket gerne verwenden, weil die Abstände sonst nicht so gut aussehen.

Hier ist ein Beispiel dessen, was ich habe:

\documentclass[a4paper,12pt,]{report}
\usepackage[swedish, italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{pslatex}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage[round]{natbib}
\usepackage{microtype}
\usepackage{longtable}
\usepackage[top=2cm, bottom=2cm, left=2.5cm, right=2.5cm]{geometry}
\usepackage{array}
\renewcommand{\baselinestretch}{1.05} 
\renewcommand*{\familydefault}{\sfdefault}
%----------------------------------------
\begin{document}
\pagenumbering{gobble}
\newcolumntype{R}{>{\raggedleft\arraybackslash}p{3.5cm}}

\begin{longtable}{Rp{11cm}}
\textbf{Education}&\\
2010 - 2014 &\textbf{University and degree} 

- One course

- Another course

- Some interesting seminar\\
\textbf{Computer skills}&\\
&- Operating systems: Windows, Linux

- Other software

- Other software
\end{longtable}
\end{document}

Ausgabe mit <code>microtype</code>

Wie Sie im Bild sehen können, wird die Liste zwar korrekt angezeigt, wenn vor dem Bindestrich noch Text steht („Universität und Abschluss“), die Zeile, die mit „Betriebssysteme“ beginnt, wird jedoch eingerückt.

Wie kann ich also das Leerzeichen vor dem Bindestrich entfernen, ohne es auskommentieren zu müssen microtype?


Bearbeiten: Ich habe herausgefunden, dass ich das Problem manuell beheben kann, indem ich \hspace{-2pt}vor der eingerückten Zeile hinzufüge, aber ich würde trotzdem gerne einen richtigen Weg finden, dies zu tun. Vielen Dank bisher!

Antwort1

Die Verwendung von \\(doppeltem Backslash) am Ende jeder Zeile und das Einfügen von &(Spaltentrennzeichen) behebt das Problem, auf das Sie stoßen. Übrigens sollten Sie, wie @egreg in einem Kommentar angemerkt hat, nicht verwenden -; ziehen Sie zumindest die Verwendung von Halbgeviertstrichen in Betracht (erstellt durch die Eingabe --von ).

Bildbeschreibung hier eingeben

\documentclass[a4paper,12pt]{report}
\usepackage[swedish, italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{pslatex}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage[round]{natbib}
\usepackage{microtype}
\usepackage{longtable}
\usepackage[vmargin=2cm,hmargin=2.5cm]{geometry}
\usepackage{array}
\renewcommand{\baselinestretch}{1.05} 
\renewcommand{\familydefault}{\sfdefault}

\begin{document}
\pagenumbering{gobble}
\newcolumntype{R}{>{\raggedleft\arraybackslash}p{3.5cm}}

\begin{longtable}{Rp{11cm}}
\textbf{Education}&\\
2010--2014 &\textbf{University and degree} \\
&-- One course\\
&-- Another course\\
&-- Some interesting seminar\\[1ex]
\textbf{Computer skills}\\
&-- Operating systems: Windows, Linux\\
&-- Other software\\
&-- Other software\\
\end{longtable}
\end{document}

Nachtrag: Ich glaube, dass das oben mit einer longtableUmgebung erzielte Ergebnis auch mit einer Umgebung erzielt werden kann tabular. Im folgenden Beispiel setze ich das Material zuerst als longtable(das standardmäßig zentriert ist) und dann, nach dem Sichern und Wechseln zu einer roten Farbe, mit einem tabular.

Bildbeschreibung hier eingeben

\documentclass[a4paper,12pt]{report}
\usepackage[swedish, italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{xcolor} % load this package so that "tabular" env. can be typeset in red
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage[round]{natbib}
\usepackage{microtype}
\usepackage{longtable}
\usepackage[vmargin=2cm,hmargin=2.5cm]{geometry}
\usepackage{array}
\renewcommand{\baselinestretch}{1.05} 
\renewcommand{\familydefault}{\sfdefault}

\begin{document}
\pagenumbering{gobble}
\newcolumntype{R}{>{\raggedleft\arraybackslash}p{3.5cm}}

\begin{longtable}{Rp{11cm}}
\textbf{Education}&\\
2010--2014 &\textbf{University and degree} \\
&-- One course\\
&-- Another course\\
&-- Some interesting seminar\\[1ex]
\textbf{Computer skills}\\
&-- Operating systems: Windows, Linux\\
&-- Other software\\
&-- Other software\\
\end{longtable}

\centering
\vspace{-5.46cm} % vertical adjustment, to overlayed the tabular on the longtable
\color{red}
\begin{tabular}{Rp{11cm}}
\textbf{Education}&\\
2010--2014 &\textbf{University and degree} \\
&-- One course\\
&-- Another course\\
&-- Some interesting seminar\\[1ex]
\textbf{Computer skills}\\
&-- Operating systems: Windows, Linux\\
&-- Other software\\
&-- Other software\\
\end{tabular}
\end{document}

Antwort2

Das Problem besteht darin, dass microtypeBindestriche und Gedankenstriche in die Ränder hineinragen. Sehen wir uns ein paar Beispiele an:

\documentclass{article}
\usepackage{microtype,longtable}
\begin{document}
\setlength{\tabcolsep}{0pt} % no intercolumn space to show the problem

\begin{longtable}{l|p{3cm}}
xxx &- abc

- abc\\
\end{longtable}

\centering % longtable centers!

\begin{tabular}{l|p{3cm}}
xxx &- abc

- abc\\
\end{tabular}
\end{document}

Bildbeschreibung hier eingeben

Somit entsteht in Deiner Zeile „Betriebssysteme“ kein zusätzlicher Platz, sondern es entsteht kein Überstand ( longtablemacht ein paar Tricks mit pSpalten). Die folgenden Bindestriche stehen etwas nach links.

Lösung:

\newcommand{\itemdash}{\mbox{\kern0pt--}}

Ich habe anstelle eines Bindestrichs einen Halbgeviertstrich verwendet, was stilistisch besser ist.

Hier ist das vollständige Beispiel

\documentclass{article}
\usepackage{microtype,longtable}

\newcommand{\itemdash}{\mbox{\hspace{0pt}--}}

\begin{document}
\setlength{\tabcolsep}{0pt} % no intercolumn space to show the problem

\begin{longtable}{l|p{3cm}}
xxx &\itemdash\ abc

\itemdash\ abc\\
\end{longtable}

\centering % longtable centers!

\begin{tabular}{l|p{3cm}}
xxx &\itemdash\ abc

\itemdash\ abc\\
\end{tabular}
\end{document}

Bildbeschreibung hier eingeben

Wenn Sie es \itemdashin Ihrem Code implementieren, ist alles in Ordnung.

Antwort3

Ich bin nicht sicher, was Microtype dort macht, aber Sie können es mit einem Kästchen und einem Leerzeichen (null) verbergen:

Bildbeschreibung hier eingeben

\documentclass[a4paper,12pt,]{report}
\usepackage[swedish, italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{pslatex}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage[round]{natbib}
\usepackage{microtype}
\usepackage{longtable}
\usepackage[top=2cm, bottom=2cm, left=2.5cm, right=2.5cm]{geometry}
\usepackage{array}
\renewcommand{\baselinestretch}{1.05} 
\renewcommand*{\familydefault}{\sfdefault}
%----------------------------------------
\begin{document}
\pagenumbering{gobble}
\newcolumntype{R}{>{\raggedleft\arraybackslash}p{3.5cm}}

\begin{longtable}{Rp{11cm}}
\textbf{Education}&\\
2010 -- 2014 &\textbf{University and degree} 

\hskip0pt-- One course

\hskip0pt-- Another course

\hskip0pt-- Some interesting seminar\\
\textbf{Computer skills}&\\
&\hskip0pt-- Operating systems: Windows, Linux

\hskip0pt-- Other software

\hskip0pt-- Other software
\end{longtable}
\end{document}

Antwort4

itemizeSie können die Umgebung mit den Optionen wideund nosepdes Pakets verwenden enumitem. Ich gebe zwei Varianten an, um den Strichvorsprung zu berücksichtigen:

\documentclass[a4paper,12pt,]{report}
\usepackage[italian]{babel}%swedish,
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage[round]{natbib}
\usepackage{microtype}
\usepackage{longtable}
\usepackage[vmargin=2cm, hmargin=2.5cm]{geometry}
\usepackage{array}
\newcolumntype{R}{>{\raggedleft\arraybackslash}p{3.5cm}}

\usepackage{enumitem}

\usepackage{setspace}
\setstretch{1.05}
\renewcommand*{\familydefault}{\sfdefault}
%----------------------------------------
\begin{document}

\pagenumbering{gobble}
{\setlist[itemize,1]{label=\textendash, wide =0.6em, nosep}
\begin{longtable}{R p{11cm}}
\textbf{Education}&\\
2010 - 2014 &\textbf{University and degree}
    \begin{itemize}
    \item One course
    \item Another course
    \item Some interesting seminar
    \end{itemize}\\[-\topsep]
\textbf{Computer skills}
& \leavevmode\vspace{-\baselineskip}
\begin{itemize}
    \item Operating systems: Windows, Linux
    \item Other software
    \item Other software
    \end{itemize}
\end{longtable}}

{\setlist[itemize,1]{label = \,\textendash, wide, nosep}
\begin{longtable}{R p{11cm}}
\textbf{Education}&\\
2010 - 2014 &\textbf{University and degree}
    \begin{itemize}
    \item One course
    \item Another course
    \item Some interesting seminar
    \end{itemize}\\[-\topsep]
\textbf{Computer skills}
& \leavevmode\vspace{-\baselineskip}
\begin{itemize}
    \item Operating systems: Windows, Linux
    \item Other software
    \item Other software
    \end{itemize}
\end{longtable}}
\end{document} 

Bildbeschreibung hier eingeben

verwandte Informationen