2009-03-30 23 views
13

¿Cómo se agrega espaciado después de una \ hline en una tabla? Puedo agregar espacios antes de usar \ vspace, sin embargo, si trato de agregar espacio después de la \ hline, el espacio vendrá después de la siguiente línea de texto. Aquí es lo que tengo hasta ahora:Latex hline spacing

\multicolumn{2}{Hello!} \vspace{4pt} \\ 
\hline \textit{Hi!} & \textit{Ho!} 

no quiero añadir un salto de línea después de la \ hline y hacer algo como \ vspace {} -xxpt o utilizar \ regla porque el documento HTML generado a partir de la Hevea será feo

Respuesta

16

crear una nueva fila con \hline y recortarla con un espaciado negativo:

\multicolumn{2}{c}{Hello!} \\\ 

\hline \\\ [-1.5ex] 

\textit{Hi!} & \textit{Ho!} 
+0

También utiliza% COMENZAR LATEX .. .% END LATEX para excluir el '\\' del HTML generado según lo sugerido por Jouni K. Seppänen a continuación. – Verhogen

+0

El mayor problema con esta solución es que la he usado y termino con líneas superpuestas (ya que el pdflatex parece dibujar las líneas de cada celda por separado). Esto es solo un problema debido al suavizado/alisado, que hace que esa sección de la línea sea "más fuerte" que el resto de la línea de la columna. – crazy2be

+4

Olvidó el '&' antes de '\\ [- 1.5ex]' (Personalmente uso '\\ [- 1.0em]', da muy buenos resultados), esta es una ** línea nueva completa **, entonces necesitas _n-1_ ampersands para _n_ celdas. – yannis

0

No estoy seguro de si esto funciona dentro de entornos tabular, pero se podría intentar una \ minipágina alrededor del \ hline:

\begin{minipage}{ <width> } 
... \hline \vspace{4pt} 
\end{minipage} 
3

Si le preocupa la salida de algún otro programa que no sea TeX, el enfoque correcto sería definir un comando o entorno de nivel superior para hacer lo que quiera, usar los hacks sucios dentro de las definiciones para hacer que la salida TeX se vea bien, y define su HTML m yendo por separado (no sé cómo hacer esto en Hevea, pero me imagino que cualquier procesador TeX razonable tendría este tipo de facilidad).

Quizás esto ya se haya resuelto para usted: por ej. booktabs produce el tipo de tablas en LaTeX que te gusta? ¿Hevea maneja muy bien los comandos de las listas de libros? Si booktabs no hace lo que desea, su código fuente puede ser interesante de mirar, se trata de establecer el ancho y el espacio de las líneas para que las tablas se vean presentables.

+0

Buen punto en el primer párrafo. Me impulsó a consultar la documentación de Hevea en lugar de consultar la documentación de Latex. – Verhogen

8

Creo que su problema es que el copo de la línea vertical en las tablas no es lo suficientemente grande cuando hlines están entre cada fila. La solución es agregar

\usepackage{tabularx} 

\setlength{\extrarowheight}{3pt} 

en su preámbulo.

+0

Gracias. Esta solución está funcionando bien para mí. El que tenía \\ [-1.5ex] parecía estar algo tapado en mi documento. –

+1

Yo recomendaría usar el paquete 'booktabs' hoy en día, que no tiene el problema para empezar. – Svante

4

Al tratar de responder a esta pregunta para mí, me encontré con este truco de https://www.msu.edu/~harris41/latex_tablespacing.html

que estaba usando la solución mencionada anteriormente mediante M456, pero esto no se juega muy bien con reglas verticales en el entorno tabular, y así que creo que esta es una mala elección como solución predeterminada (generalmente no incluyo reglas verticales, pero una de mis tablas realmente las necesitaba para mayor claridad).

La idea es definir un puntal que debe incluirse en una de las celdas de una fila que está inmediatamente antes o después de una línea. es decir

en el preámbulo:
\ newcommand \ tstrut {\ regla {0pt} {}} 2.4ex
\ newcommand \ bstrut {\ regla [-1.0EX] {0pt} {0pt}}

\ begin {tabular} {ccc}
\ hline \ hline
Cabeza 1 & Head 2 Head & 3 \ tstrut \ bstrut \\
\ hline
a1 & a2 a3 & \ tstrut \\
b1 b2 & & b3 \\
c1 c2 & & c3 \\
d1 d2 & & d3 \ bstru t \\
\ hline \ hline
\ end {tabular}

(I ajustar el tamaño puntal algo de la página Web - ajustar para adaptarse a su gusto)

Puede haber mejores maneras de hacer esto, pero esto parece lo suficientemente limpio, y es fácilmente personalizable.

2

Esto podría ayudar:

\newcommand{\hlinee}{\begin{tabular}{p{\textwidth}}\hline\ \\\end{tabular}} 

También aquí hay otra:

\newcommand{\hlineee}{\begin{tabular}{p{\textwidth}}\hline\ \end{tabular} \\[-2.5ex] } 

A continuación, utilice por ejemplo:

foo\\ 
\hlineee 
foo2 

Ntg