
Tengo un problema menor de composición tipográfica dentro del longtable
entorno.
Estoy escribiendo mi CV y necesito escribir una lista de habilidades dentro de una celda de la tabla. Como me gustaría mantener la longitud del documento en una página, no lo uso itemize
para ahorrar espacio, por lo que escribí la lista manualmente usando guiones ("-").
He notado que, si el guión es el primer carácter en la celda de la tabla, la primera línea tiene una sangría de un espacio, mientras que si hay algo de texto antes de la lista, todo se muestra correctamente.
He notado que comentar \usepackage{microtype}
soluciona el problema, pero me gustaría usar el paquete porque, de lo contrario, el espaciado no se ve tan bien.
Aquí hay una muestra de lo que tengo:
\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}
Como puedes ver en la imagen, si hay algún texto antes del guión ("Universidad y carrera") la lista se muestra correctamente, pero la línea que comienza con "Sistemas operativos" tiene sangría.
Entonces, ¿cómo puedo eliminar el espacio antes del guión sin tener que comentar microtype
?
Editar: descubrí que puedo solucionar el problema manualmente agregando \hspace{-2pt}
antes de la línea sangrada, pero aún así me gustaría encontrar una manera adecuada de hacerlo. ¡Gracias hasta ahora!
Respuesta1
Usar \\
(doble barra invertida) al final de cada fila e insertar &
(separadores de columnas) soluciona el problema que estás encontrando. Por cierto, como @egreg señaló en un comentario, no deberías usar -
; como mínimo, considere usar guiones (creados escribiendo --
).
\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}
Apéndice: Creo que el resultado obtenido anteriormente con un longtable
entorno también se puede obtener con un tabular
entorno. En el siguiente ejemplo, compuse el material primero como longtable
(que está centrado de forma predeterminada) y luego, después de hacer una copia de seguridad y cambiar a un color rojo, con un archivo tabular
.
\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}
Respuesta2
El problema es que microtype
deja que los guiones y guiones sobresalgan en los márgenes. Veamos un par de ejemplos:
\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}
Por lo tanto, no hay espacio adicional en la línea "Sistemas operativos", sino que no hay protuberancias ( longtable
hace algunos trucos con p
las columnas). Los siguientes guiones están un poco hacia la izquierda.
Solución:
\newcommand{\itemdash}{\mbox{\kern0pt--}}
Utilicé un guión en lugar de un guión, lo cual es estilísticamente mejor.
Aquí está el ejemplo completo
\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}
Si lo implementa \itemdash
en su código, estará bien.
Respuesta3
No estoy seguro de qué microtipo hace allí, pero puedes ocultarlo con un cuadro y un espacio cero:
\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}
Respuesta4
Puede utilizar el itemize
entorno, con las opciones wide
y nosep
del enumitem
paquete. Doy dos variantes, para tener en cuenta la protuberancia del tablero:
\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}