
Tenho um pequeno problema de composição dentro do longtable
ambiente.
Estou escrevendo meu currículo e preciso escrever uma lista de habilidades dentro de uma célula da tabela. Como gostaria de manter o comprimento do documento em uma página, não estou usando itemize
para economizar espaço, então escrevi a lista manualmente usando hífens ("-").
Percebi que, se o hífen for o primeiro caractere da célula da tabela, a primeira linha será recuada por um espaço, enquanto que se houver algum texto antes da lista tudo será exibido corretamente.
Percebi que comentar \usepackage{microtype}
resolve o problema, mas gostaria de usar o pacote porque, caso contrário, o espaçamento não parece tão bom.
Aqui está uma amostra do que tenho:
\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 você pode ver na imagem, se houver algum texto antes do hífen (“Universidade e grau”) a lista é exibida corretamente, mas a linha que começa com “Sistemas operacionais” é recuada.
Então, como faço para me livrar do espaço antes do hífen sem precisar comentar microtype
?
Editar: descobri que posso corrigir o problema manualmente adicionando \hspace{-2pt}
antes da linha recuada, mas ainda gostaria de encontrar uma maneira adequada de fazer isso. Obrigado até agora!
Responder1
Usar \\
(barra invertida dupla) no final de cada linha e inserir &
(separadores de coluna) corrige o problema que você está enfrentando. Aliás, como @egreg observou em um comentário, você não deveria usar -
; no mínimo, considere usar travessões (criados digitando --
).
\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}
Termo aditivo: Acredito que o resultado obtido acima com um longtable
ambiente também pode ser obtido com um tabular
ambiente. No exemplo abaixo, eu digitei o material primeiro como a longtable
(que é centralizado por padrão) e depois, depois de fazer backup e mudar para a cor vermelha, com a 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}
Responder2
O problema é que microtype
permite que hífens e travessões se projetem nas margens. Vejamos alguns exemplos:
\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}
Assim, não há espaço adicional na linha “Sistemas operacionais”, mas sim não há saliência ( longtable
faz alguns truques com p
colunas). Os hífens a seguir estão um pouco à esquerda.
Solução:
\newcommand{\itemdash}{\mbox{\kern0pt--}}
Usei um travessão em vez de um hífen, o que é estilisticamente melhor.
Aqui está o exemplo 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}
Se você implementar \itemdash
em seu código, você ficará bem.
Responder3
Não tenho certeza do que o microtipo está fazendo ali, mas você pode ocultá-lo com uma caixa e um espaço zero:
\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}
Responder4
Você pode usar o itemize
ambiente, com as opções wide
e nosep
do enumitem
pacote. Apresento duas variantes, para levar em conta a protuberância do painel:
\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}