Sloupce tabulky s pevnoušířkou a centrovaným obsahem

Jaromir Kuben kuben at scova.vabo.cz
Tue Dec 11 13:39:10 CET 2001



Stepan Kasal píše:
> 
> On Sat, 8 Dec 2001 15:55:12 +0100, Jan Trmal <afrox at centrum.cz> wrote:
> > Zdravím,
> 
> I ja Vas!
> 
> > mam takovy mozna trvivialni problem. Vytvoril jsem tuto tabulku:
> ...
> > 3& 2& 3& 1\\
> > \hline
> > 1& 7& 1& 10\\
> ...
> > Kdyz z toho udelam dvi, tak ta tabulka vypada silne nepekne, protoze ten
> > posledni sloupec tabulky je roztazen podle cisla deset ve ctvrte radce.
> 
> Muzete misto "10" napsat "\llap1\rlap0", to je objekt se sirkou nula, ze
> ktereho deleva couha kresba cislice 1 a doprava kresba cislice 0.
> Tehoz lze docilit pomoci "\hbox to0pt{\hss10\hss}".
> Nebo to lze vysadit trochu excentricky, protoze 1 ma stejnou sirku jako
> ostatni cislice, ac je jeji kresba jen uprostred (vizte priklad v pripojenem
> souboru).
> 
> Dale se mi nelibi, ze mate cislice prilis nalepene k hornimu okraji poli.
> I to resim v pripojenem prikladu, makro \tabstrut
> 
> > 1) Jde nejak specifikovat zarovnavani i ve formatu tabulky p{}?
> 
> Nevim, jen bych rad podotkl, ze p{} je tu od toho, aby se v prislusnem
> sloupci v kazdem policku objevil text, zarovnany do odstavce zadane sirky.
> Takze chtit po nem, aby centroval mi nepripada moc prirozene.
> 
> > 2) Jak zjistim delku nejakeho vysazeneho textu, napr. delku "10" v bodech. To
> > abych tam nemusel psat to p{1.5em}?
> 
> V plainu takto:
> 
> \newdimen \sirka
> \setbox0 = \hbox{10}
> \sirka = \wd0
> 
> V LaTeXu to samozrejme funguje taky.
> Je mozne, ze v LaTeXu jsou jeste nejake jine zpusoby.

Ano, \settowidth a pod.
Jaromir Kuben

> 
> ======
> Jinak, ja bych tento priklad povazoval za jeden z peknych prikladu situace,
> kdy se nehodi pouzivat prostredi tabular.
> Resil bych to jednoduse pomoci primitivu \hbox a \vbox, jak vidno z druhe
> casti pripojeneho souboru.
> V tomto druhem prikladu jsem se take polepsil, co se tyce excentricity
> te desitky, uz to neni v absolutnich jednotkach, ale v jednotce "em," coz
> je sirka ctverciku aktualniho fontu.
> 
> Preji prijemne studium.
> Pokud se Vam neco nepovede rozlousknout, ozvete se.
> 
> > Moc dekuji
> >   Honza
> 
> S pozdravem,
>         Stepan Kasal
> 
> \documentclass{article}
> \begin{document}
> 
> \newcommand\tabstrut{\vrule height10pt width0pt}
> \noindent
> %
> \begin{tabular}{|c|c|c|c|}
> \hline
> \tabstrut
> 5& 7& 2& 6\\
> \hline
> \tabstrut
> 1& 8& 9& 6\\
> \hline
> \tabstrut
> 3& 2& 3& 1\\
> \hline
> \tabstrut
> 1& 7& 1& \hbox to 0pt{\hss\kern-1pt 10\hss}\\
> \hline
> \tabstrut
> 9& 9& 8& 7\\
> \hline
> \end{tabular}
> 
> \kern 2cm
> 
> \newbox \tabstrutbox
> \setbox \tabstrutbox = \hbox{\vrule height11pt depth4.5pt width0pt}
> \def\tabstrut{\unhcopy\tabstrutbox}
> \newdimen \velikostpole
> \velikostpole = \ht\tabstrutbox
> \advance\velikostpole by \dp\tabstrutbox
> \def\pole#1{\hbox to \velikostpole {\hfil #1\hfil}}
> \def\radka #1 #2 #3 #4 {
>         \hbox{%
>                 \tabstrut \vrule
>                 \pole{#1}\vrule
>                 \pole{#2}\vrule
>                 \pole{#3}\vrule
>                 \pole{#4}\vrule
>         }
>         \hrule
> }
> 
> \newdimen \jednicka
> \setbox0 = \hbox{1}
> \jednicka = \wd0
> 
> \vbox {
> \hrule
> \radka 5 7 2 6
> \radka 1 8 9 6
> \radka 3 2 3 1
> \radka 1 7 1 \kern-.1\jednicka10
> \radka 9 9 8 7
> }
> 
> \end{document}




More information about the csTeX mailing list