Конвертировать таблицы в первую очередь в LaTeX - PullRequest
9 голосов
/ 07 апреля 2010

У меня есть несколько RST-файлов, и я конвертирую их в .tex-файл, используя стандартный конвертер sphinx.

В некоторых .rst у меня есть таблицы с особой шириной, такие как:

.. list-table::  
   :widths: 50 50 

Полученный .tex всегда содержит таблицы вроде:

\begin{tabulary}{\textwidth}{|L|L|}

Итак, ширина столбца потеряна.

Как сохранить ширину столбца при преобразовании первого в латекс?


Я тоже использовал запятую,

.. list-table::  
   :widths: 50 , 50 
   :header-rows: 1 

* - SETTING 
  - DESCRIPTION
* - Enable 
  - Enables or disables internal tracing.
* - Verbose 
  - Enables or disables extended internal tracing. 

но это не работает .. может быть, я использовал плохой конвертер? Какой конвертер вы рекомендуете?

Ответы [ 5 ]

13 голосов
/ 26 мая 2010

собственно команда

.. tabularcolumns:: |p{4.5cm}|p{8.5cm}| 

нужно как раз перед .. list-table ::

http://sphinx.pocoo.org/markup/misc.html?highlight=tabularcolumns#dir-tabularcolumns

1 голос
/ 08 апреля 2010

попробовать:

:widths: 50, 50

с разделителем запятых.

Вывод также зависит от того, как ваша таблица написана на первом.

Я предположил, что вы использовали стандартный синтаксис первой таблицы, а не создавали таблицы из маркированных списков (как это возможно). Для получения дополнительной помощи, попробуйте http://docutils.sourceforge.net/docs/ref/rst/directives.html#tables

Кроме того, если 50, 50 - ширина столбца, ваш латексный код должен выглядеть следующим образом:

\begin{tabulary}{  1\textwidth}{ | p{0.5} | p{0.5} | }

и

\begin{tabulary}{total width of table}{| column width| column width|}
0 голосов
/ 12 ноября 2013

Поскольку у меня огромная документация, я попытался исправить поколение латекса.Кроме того, я считаю, что латексная нотация в первых файлах является недостатком, поскольку она несовместима и требует от редакторов частичного изучения деликатного языка разметки.

Я заменил LaTeXTranslator.depart_table своей собственной версией.Я скопировал исходную исходную_отправку и добавил этот код (сокращенно):

def my_depart_table (self, node):
    totalColwidth = 0
    givenColwidth = []
    hasColwidth = False

    for tgroup in node:
        for tableColspec in tgroup:
            try:
                if tableColspec.has_key('colwidth'):
                    totalColwidth += tableColspec['colwidth']    
                    givenColwidth.append(tableColspec['colwidth'])
                    hasColwidth = True
             except: 
                    print "colspec missing. \n" 
     # original code

     if hasColwidth:
         colspec = ""
         for thisColwidth in givenColwidth:
             colspec += ('>{\RaggedRight}p{%.3f\\linewidth}' % (0.95 * thisColwidth / totalColwidth))                    
             #print "using widths: %.3f %s %s" % ((0.95 * thisColwidth / totalColwidth), thisColwidth, totalColwidth)
             self.body.append('{' + colspec + '}\n')

     # more original code

LaTeXTranslator.depart_table = my_depart_table

Я не владею ни Python, ни Sphinx, поэтому пользуйтесь на свой страх и риск.Я надеюсь, что вы поняли идею или даже можете дать совет.

Если вы используете Python <3.0 и хотите полностью удалить коэффициент 0,95, не забудьте привести одно из целых чисел к плавающей или импортировать деление из __future __. </p>

0 голосов
/ 30 марта 2012

Я могу подтвердить, что это:

.. list-table::
:widths: 10 40 50

* - Module
  - Link
  - Description 

Работает с rst2latex

\setlength{\DUtablewidth}{\linewidth}
\begin{longtable*}[c]{|p{0.104\DUtablewidth}|p{0.375\DUtablewidth}|p{0.465\DUtablewidth}|}
\hline

Module
 & 
Link
 & 
Description
 \\
\hline

Но со сфинксом я получаю то, что положил ОП. Так что я не собираюсь говорить о проблеме rst2latex.

Материал ширины "Авто", о котором говорят документы, также не очень функционален для меня, ссылки имеют тенденцию перетекать.

0 голосов
/ 10 апреля 2010

У писателя documenttils rst2latex есть некоторые проблемы с таблицами: http://docutils.sourceforge.net/docs/dev/todo.html#tables, так что, возможно, ваша проблема связана с этим? Я думаю, что писатель Sphinx основан на rst2latex и может иметь те же проблемы.

...