Вы можете сделать это с Pandoc. Но это требует немного больше усилий.
Вы должны воспользоваться следующими фактами:
Pandoc может распознавать необработанные фрагменты LaTeX, встроенные в Markdown [1]. Если целевой формат вывода — LaTeX или PDF, он передаст эти фрагменты без изменений в целевой документ.
Поэтому, если вы знаете, как написать красивую таблицу в LaTeX, вставьте ее с помощью Markdown.
Однако для вывода HTML этот код таблицы LaTeX будет игнорироваться. Это не проблема, потому что...
Pandoc может распознавать фрагменты необработанного HTML, встроенные в Markdown [1]. Если целевой формат вывода — HTML, эти фрагменты будут переданы без изменений в целевой документ.
Поэтому, если вы знаете, как написать красивую таблицу в HML, вставьте ее с помощью Markdown.
Однако для вывода LaTeX/PDF этот код таблицы HTML будет игнорироваться. Это не проблема, потому что...
Pandoc может распознавать фрагменты raw LaTeX, встроенные в Markdown [1].... (ааааа!, у нас это уже было. См. № 1.
< /strong> выше... :)
Уловка: используйте pandoc
в интерактивном режиме в окне терминала
Вот еще одна хитрость.
Если вы не знаете, с чего начать изучение LaTeX, Pandoc может научить вас кое-чему. Потому что вы можете использовать Pandoc интерактивно.
Для вывода LaTeX:
Это выглядит так:
- Введите в терминале:
pandoc -t latex
.
- Нажмите
[RETURN]
.
- Ничего не произошло.
- Начните вводить фрагмент Markdown в терминал (как если бы вы вводили его в текстовом редакторе). Скажем, вы печатаете таблицу.
- Когда ваша таблица будет готова, нажмите
[RETURN]
еще раз, чтобы перейти на новую строку.
- Затем нажмите
[CTRL]+[D]
.
- Вуаля!, в окне терминала появляется код LaTeX...
Глянь сюда:
$ pandoc -t latex [RETURN]
Right Left Center Default
------- ------ ---------- -------
12 12 12 12
123 123 123 123
1 1 1 1
Table: Demonstration of simple table syntax.
^D
Чтобы быть очень честным с вами: я не печатал таблицу Markdown. Я сжульничал. Я скопировал его из вашего вопроса и вставил в терминал. Последнее [^D]
, которое вы видите, это когда я нажимаю [CTRL]+[D]
.
Вот что тогда появилось в окне терминала:
\begin{longtable}[c]{@{}rlcl@{}}
\caption{Demonstration of simple table syntax.}\tabularnewline
\toprule
Right & Left & Center & Default\tabularnewline
\midrule
\endfirsthead
\toprule
Right & Left & Center & Default\tabularnewline
\midrule
\endhead
12 & 12 & 12 & 12\tabularnewline
123 & 123 & 123 & 123\tabularnewline
1 & 1 & 1 & 1\tabularnewline
\bottomrule
\end{longtable}
Это код таблицы LaTeX по умолчанию, сгенерированный LaTeX из ввода Markdown.
Теперь вы можете поискать в Google некоторые методы, (если вы еще не эксперт LaTeX), чтобы улучшить этот код, чтобы таблица выглядела лучше. Тяжелая работа уже сделана. (И если вы являетесь экспертом по LaTeX: все равно приятно не делать тяжелую работу самостоятельно, не так ли?)
Для вывода HTML:
Конечно, вы можете сделать то же самое для вывода HTML-кода таблицы в том виде, в каком его сгенерирует Pandoc. Смотреть:
$ pandoc -t html [RETURN]
Right Left Center Default
------- ------ ---------- -------
12 12 12 12
123 123 123 123
1 1 1 1
Table: Demonstration of simple table syntax.
^D
<table>
<caption>Demonstration of simple table syntax.</caption>
<thead>
<tr class="header">
<th align="right">Right</th>
<th align="left">Left</th>
<th align="center">Center</th>
<th align="left">Default</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td align="right">12</td>
<td align="left">12</td>
<td align="center">12</td>
<td align="left">12</td>
</tr>
<tr class="even">
<td align="right">123</td>
<td align="left">123</td>
<td align="center">123</td>
<td align="left">123</td>
</tr>
<tr class="odd">
<td align="right">1</td>
<td align="left">1</td>
<td align="center">1</td>
<td align="left">1</td>
</tr>
</tbody>
</table>
Разве это не мило?
[1] Возможно, вам придется сообщить Pandoc, что вы хотите использовать некоторые из его расширений при обработке входных данных Markdown: pandoc --from=markdown+raw_html+raw_tex+...
, на случай, если он не будет работать с настройками по умолчанию. .)
person
Kurt Pfeifle
schedule
20.04.2015