Adicione um comando látex personalizado para ser usado com pandoc/markdown

Adicione um comando látex personalizado para ser usado com pandoc/markdown

então estou usando o popularModelo Eisvogelpara meu trabalho pessoal. Basicamente, digito tudo no markdown e uso o pandoc para convertê-lo em um belo PDF.

Usar blockquotes ( > text ) resulta em uma barra bonita. Porém me deparei com o desejo de adicionar mais opções de estilos. Digamos que eu não queira usar essas cotações em bloco apenas para cotações reais, mas também para "painéis de informações" ou "painéis de alerta". Eu adoraria ter a opção de fornecer de alguma forma um prefixo ou comando custom-tex em meu arquivo markdown e exibir a caixa apropriada.

Digamos que, em vez de ter: > texto que resulta em uma caixa cinza bonita, com um traço no lado esquerdo, eu gostaria de ter algo assim, para que \alert > texta caixa fosse renderizada em vermelho, em vez da cor original da citação.

Claro, a sintaxe pode parecer totalmente diferente, mas eu só preciso encontrar uma maneira de personalizar um pouco mais esse material legal do pandoc-latex, de preferência com comandos personalizados. Estou um pouco familiarizado com a escrita de LaTeX puro, mas usar o pandoc é muito mais rápido, já que também estou fazendo anotações em meus arquivos markdown.

Alguém tem uma ideia?

saúde

Responder1

Bem, olhando para o modelo eisvogel, parece que ele digita aspas dentro de um customblockquoteambiente especial definido usando o pacote mdframed: vejasua documentação.

Você pode definir novos comandos LaTeX para uso com pandoc com uma header-includes:opção yaml. (Ou em um arquivo separado incluído no -Hsinalizador de linha de comando.) Suponho que uma opção seria usar esse comando para redefinir esse ambiente. Você teria que redefini-lo de volta à forma como o modelo o define se quisesse voltar ao normal

---
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.

exemplo de redefinição de cotação pandoc

É claro que você pode definir quantos estilos desejar.

Provavelmente, se eu soubesse mais sobre filtros e modelos pandoc, haveria uma maneira mais direta, mas isso pode funcionar bem o suficiente para seus propósitos.

Responder2

Considere a mudança para quarto, que pretende ser um salto evolutivo da redução de R. Talvez isso não seja uma boa ideia se você estiver preso a um modelo personalizado (não testei se ele poderia ser usado como está no quarto, depois de algumas/muitas alterações ou não usado), mas caso contrário, o quarto inclui alguns predefinidos fáceis de usar "chamadas":

eu


A fonte ( 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
:::

Observe que na marcação R "clássica" você também pode usarblocos personalizadospara produzir diferentes ambientes LaTeX. Por exemplo, um simples tcolorboxpoderia ser:

::: {.tcolorbox data-latex="[title=Warning]"}
foo 
:::

Mas como você pode ver, a sintaxe é um pouco mais complexa mesmo para uma caixa padrão, e você é responsável por incluir os pacotes necessários no modelo, ou algo header-includesassim, e fazer caixas mais elaboradas exigirá algum trabalho extra (veja o link), enquanto no Quarto é apenas digitar os blocos de texto explicativo simples. Além disso, esses blocos não podem ser exportados para outros formatos, enquanto os callouts do Quarto são exportados para tabelas HTML e DOCX que imitam muito bem os tcolorboxes.

Responder3

Como a discussão parece inclinar-se para blocos de advertência, sugiro dar uma olhada em Awesome Boxes:

https://www.nic.funet.fi/pub/TeX/CTAN/graphics/awesomebox/awesomebox.pdf

Fácil de usar, funciona bem com markdown e pandoc.

informação relacionada