
поэтому я использую популярныйШаблон Eisvogelдля моей личной работы. Я в основном печатаю все в markdown и использую pandoc, чтобы конвертировать в симпатичный pdf.
Использование кавычек ( > text ) приводит к созданию симпатичной панели. Однако я столкнулся с желанием добавить больше вариантов стилей. Допустим, я хочу использовать эти кавычки не только для настоящих цитат, но и для «информационных панелей» или «панелей оповещений». Мне бы хотелось иметь возможность каким-то образом задать префикс или команду custom-tex в моем файле markdown и отображать соответствующее поле.
Допустим, вместо того, > text
чтобы получить красиво выглядящий серый блок с чертой слева, я бы хотел, \alert > text
чтобы блок отображался красным цветом, а не в исходном цвете цитаты.
Конечно, синтаксис может выглядеть совершенно иначе, но мне просто нужно найти способ немного больше настроить этот крутой pandoc-latex, желательно с помощью пользовательских команд. Я немного знаком с написанием чистого LaTeX, но использование pandoc просто работает намного быстрее, поскольку я также делаю заметки в своих файлах markdown.
Есть у кого-нибудь идеи?
ваше здоровье
решение1
Ну, если взглянуть на шаблон eisvogel, то похоже, что он набирает цитаты внутри специальной customblockquote
среды, определенной с помощью пакета mdframed: см.его документация.
Вы можете определить новые команды LaTeX для использования с pandoc с помощью header-includes:
параметра yaml. (Или в отдельном файле, включенном в -H
флаг командной строки.) Я полагаю, что одним из вариантов было бы использование такой команды для переопределения этой среды. Вам пришлось бы переопределить ее обратно так, как определяет шаблон, если вы хотите вернуться к нормальному состоянию
---
title: My Document
author: Someone
date: 7 May 2022
header-includes: |
\definecolor{myred}{RGB}{245,20,20}
\newcommand{\normalquote}{
\definecolor{blockquote-text}{RGB}{119,119,119}
\renewmdenv[rightline=false,
bottomline=false,
topline=false,
linewidth=3pt,
linecolor=blockquote-border,
skipabove=\parskip]{customblockquote}
}
\newcommand{\redalert}{
\definecolor{blockquote-text}{RGB}{240,240,240}
\renewmdenv[
linewidth=2pt,
linecolor=black,
leftmargin=10pt,
rightmargin=10pt,
backgroundcolor=myred,
fontcolor=white,
shadow=true,
skipabove=\parskip]{customblockquote}
}
...
This is some regular text.
> This is a regular quote.
\redalert
> This is a *very* red box with a shadow and light text.
\normalquote
> This is a normal blockquote again.
Конечно, вы можете определить столько стилей, сколько захотите.
Скорее всего, если бы я знал больше о фильтрах и шаблонах pandoc, то нашел бы более простой способ, но для ваших целей этот может подойти достаточно хорошо.
решение2
Рассмотрите возможность перехода на кварто, который призван стать эволюционным скачком разметки R. Возможно, это не очень хорошая идея, если вы привязаны к пользовательскому шаблону (я не проверял, можно ли его использовать как sis в кварто, после некоторых/многих изменений или вообще не использовать), но в противном случае кварто включает несколько простых в использовании предопределенных «выносок»:
Источник ( mwe.qmd
):
---
format: pdf
---
## Callouts in Quarto
In Quarto (next generation of R markdown) you can use "callouts"
to show predefined alert boxes. For PDF output, \LaTeX\
`tcolorbox` package is used in the background automatically.
::: callout-note
There are five types of callouts:
`note`, `tip`, `warning`, `caution` and `important`.
:::
::: callout-tip
## Tip with custom caption
This is an example of a tip with custom caption.
:::
::: callout-warning
foo
:::
::: {.callout-caution}
## Take care !
foo
:::
::: callout-important
foo
:::
Обратите внимание, что в «классической» разметке R вы также можете использоватьпользовательские блокидля создания различных сред LaTeX. Например, простое tcolorbox
может быть:
::: {.tcolorbox data-latex="[title=Warning]"}
foo
:::
Но как вы видите, синтаксис немного сложнее даже для стандартного блока, и вы отвечаете за включение необходимых пакетов в шаблон или или около header-includes
того, и создание более сложных блоков потребует некоторой дополнительной работы (см. ссылку), в то время как в Quarto просто набираются простые блоки выносок. Более того, эти блоки нельзя экспортировать в другие форматы, в то время как выноски Quarto экспортируются в таблицы HTML и DOCX, которые очень хорошо имитируют es tcolorbox
.
решение3
Поскольку обсуждение, похоже, склоняется к блокировкам предостережений, я бы предложил взглянуть на Awesome Boxes:
https://www.nic.funet.fi/pub/TeX/CTAN/graphics/awesomebox/awesomebox.pdf
Прост в использовании, хорошо работает с markdown и pandoc.