Автор Гілка: латех таблиці  (Прочитано 2240 раз)

Відсутній lpi3

  • Новачок
  • *
  • дописів: 30
  • Карма: +0/-0
латех таблиці
« : 2008-06-16 11:50:33 »
Добрий день, шановні!

Питання наступне - як у латексі зробити таблицю з фіксованими (й заданими) шириною та висотою комірок таблиці. Дуже бажано, щоб це ніяк не залежало від того що у середині комірки.

Дякую за будь-які поради й відповіді.

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: латех таблиці
« Відповідей #1 : 2008-06-16 12:36:20 »
Десь так (зверніть увагу на форматування p{розмір}):
\begin{center}
\Large\bfseries\svfamily Таблиця значень $q = q(\gamma, n)$
\end{center}

\begin{longtable}
{|c|p{37pt}|p{37pt}|p{37pt}|p{30pt}|p{46pt}|p{46pt}|p{46pt}|} a &
a & a & a & a & a & a & a  \kill \hline
\raisebox{-1.50ex}[0cm][0cm]{{} { $n$}{} }&
\multicolumn{3}{|p{113pt}|}{$\gamma$} &
\raisebox{-1.50ex}[0cm][0cm]{{ $n$}{} }&
\multicolumn{3}{|p{138pt}|}{$\gamma$}  \\
\cline{2-4} \cline{6-8}
 &
{ 0,95}& { 0,99}& { 0,999}&
 &
{ 0,95}& { 0,99}&
{ 0,999} \\
\hline { 5}& { 1,37}& { 2,67}& { 5,64}& { 20}& { 0,37}& { 0,58}&
{ 0,88} \\
\hline { 6}& { 1,09}& { 2,01}& { 3,88}& { 25}& { 0,32}& { 0,49}&
{ 0,73} \\
\hline { 7}& { 0,92}& { 1,62}& { 2,98}& { 30}& { 0,28}& { 0,43}&
{ 0,63} \\
\hline { 8}& { 0,80}& { 1,38}& { 2,42}& { 35}& { 0,26}& { 0,38}&
{ 0,56} \\
\hline { 9}& { 0,71}& { 1,20}& { 2,06}& { 40}& { 0,24}& { 0,35}&
{ 0,50} \\
\hline { 10}& { 0,65}& { 1,08}& { 1,80} & { 45}& { 0,22}& { 0,32}&
{ 0,46} \\
\hline { 11}& { 0,59}& { 0,98}& { 1,60}& { 50}& { 0,21}& { 0,30}&
{ 0,43} \\
\hline { 12}& { 0,55}& { 0,90}& { 1,45}& { 60}& { 0,188}& {
0,269}&
{ 0,38} \\
\hline { 13}& { 0,52}& { 0,83}& { 1,33}& { 70}& { 0,174}& {
0,245}&
{ 0,34} \\
\hline { 14}& { 0,48}& { 0,78}& { 1,23}& { 80}& { 0,161}& {
0,226}&
{ 0,31} \\
\hline { 15}& { 0,46}& { 0,73}& { 1,15}& { 90}& { 0,151}& {
0,211}&
{ 0,29} \\
\hline { 16}& { 0,44}& { 0,70}& { 1,07}& { 100}& { 0,143}& {
0,198}&
{ 0,27} \\
\hline { 17}& { 0,42}& { 0,66}& { 1,01}& { 150}& { 0,115}& {
0,160}&
{ 0,211} \\
\hline { 18}& { 0,40}& { 0,63}& { 0,96}& { 200}& { 0,099}& {
0,136}&
{ 0,185} \\
\hline { 19}& { 0,39}& { 0,60}& { 0,92}& { 250}& { 0,089}& {
0,120}&
{ 0,162} \\
\hline
\end{longtable}
« Змінено: 2008-06-16 12:37:34 від yurchor »
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній lpi3

  • Новачок
  • *
  • дописів: 30
  • Карма: +0/-0
Re: латех таблиці
« Відповідей #2 : 2008-06-16 14:45:25 »
Дякую за відповідь, але це не зовсім те що треба. p{dim} у параметрах таблиці я вже пробував, але це дещо не те.

Отже. Я вивчаю іноземну мову. Мені треба картки зі словами. На одному боці - слово, на іншому - переклад. У мене вже є список найвживаніших слів у тхт форматі. Це файл складаєтся з вдух колонок. Я хочу написати скрипта на пітоні, який би з цього файла генерував (ла)тех файл. На одній сторінці буде таблиця зі словами, на іншій - таблиця з перекладами. Але проблема в тому, що я не знаю як зробити таку таблицю. Варіант з p{dim} встановлює горизонтальний розмір, а щодо вертикального? До того ж було б набагато єстетичніше, якщо слова були б центровані відносно комірки.
Тобто:

+==========+==========+==
+                       +                      +
+                       +                      +
+     слово1        +       слово2    +    .......
+                       +                      +
+                       +                      +
+==========+==========+==
+                       +                       +
+                       +                       +
Яле як таке зробити у латех я не знаю.

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: латех таблиці
« Відповідей #3 : 2008-06-16 14:59:51 »
І на що тільки люди не йдуть, щоб не користуватися KWordQuiz! ::)
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній lpi3

  • Новачок
  • *
  • дописів: 30
  • Карма: +0/-0
Re: латех таблиці
« Відповідей #4 : 2008-06-16 15:10:57 »
ну, мені так простіше. я, можно сказати, ортодокс. олдскул і таке інше. консоль рулить.

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: латех таблиці
« Відповідей #5 : 2008-06-16 15:22:51 »
Широкі рядки можна встановити командою на зразок \renewcommand{\arraystretch}{3}, де 3 слід поміняти на бажане значення. Ну або напхати у рядки вертикальних розпорок бажаного розміру. Докладніше можете почитати у Львовського (можна звантажити, наприклад, звідси).
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Михайло Даниленко

  • Гість
Re: латех таблиці
« Відповідей #6 : 2008-06-16 16:10:25 »
Flood:
консоль рулить.
[isbear:~] cat a.pl

my %c;
my ($ma, $mb) = (0,0);

while (<>) {
        chomp;
        my ($a,$b) = split /\t/;
        next if not $b;

        $c{$a} = $b;
        $ma = length($a) if length($a) > $ma;
        $mb = length($b) if length($b) > $mb;
};

$ma = $mb if $mb > $ma;

foreach my $a (sort keys %c) {
        print "+---" . ("-" x $ma) . "---+---" . ("-" x $ma) . "---+\n";
        print "|   " . (" " x $ma) . "   |   " . (" " x $mb) . "   |\n";
        print "|   " . (" " x int(($ma-length($a))/2)) . $a
                . (" " x ($ma - int(($ma-length($a))/2) - length($a)))
                . "   |   " . (" " x int(($ma-length($c{$a}))/2)) . $c{$a}
                . (" " x ($ma - int(($ma - length($c{$a}))/2) - length($c{$a})))
                . "   |\n";
        print "|   " . (" " x $ma) . "   |   " . (" " x $mb) . "   |\n";
}

print "+---" . ("-" x $ma) . "---+---" . ("-" x $ma) . "---+\n";


[isbear:~] cat a.txt
acdsrt  sert
fdsaf   ger
fdsa    saggdagdsaf
feaw    afsd

[isbear:~] perl a.pl a.txt
+-----------------+-----------------+
|                 |                 |
|     acdsrt      |      sert       |
|                 |                 |
+-----------------+-----------------+
|                 |                 |
|      fdsa       |   saggdagdsaf   |
|                 |                 |
+-----------------+-----------------+
|                 |                 |
|      fdsaf      |       ger       |
|                 |                 |
+-----------------+-----------------+
|                 |                 |
|      feaw       |      afsd       |
|                 |                 |
+-----------------+-----------------+
[isbear:~] perl a.pl a.txt | lpr


:D :D

Михайло Даниленко

  • Гість
Re: латех таблиці
« Відповідей #7 : 2008-06-17 00:12:38 »
Flood:
Упс. (це вже традиція)
Недостестував.

[isbear:~] cat a.pl
...
foreach my $a (sort keys %c) {
        print "+---" . ("-" x $ma) . "---+---" . ("-" x $ma) . "---+\n";
        print "|   " . (" " x $ma) . "   |   " . (" " x $ma) . "   |\n";
        print "|   " . (" " x int(($ma-length($a))/2)) . $a
                . (" " x ($ma - int(($ma-length($a))/2) - length($a)))
                . "   |   " . (" " x int(($ma-length($c{$a}))/2)) . $c{$a}
                . (" " x ($ma - int(($ma - length($c{$a}))/2) - length($c{$a})))
                . "   |\n";
        print "|   " . (" " x $ma) . "   |   " . (" " x $ma) . "   |\n";
}
...