Adicione 'tags' LaTeX para incluir/excluir seções do Markdown da linha de comando

Adicione 'tags' LaTeX para incluir/excluir seções do Markdown da linha de comando

Gostaria de poder "ligar/desligar" certas seções dos meus documentos, dependendo de uma declaração de linha de comando.

Estou convertendo um grande grupo de documentos de política que são para uso interno e externo, via Pandoc, para PDF, usando um modelo LaTeX, e Pandoc está usando pdfTeX. Também tenho um script do PowerShell que os converte recursivamente.

gci -r -i *.md | foreach{$pdf=$_.directoryname+"\"+$_.basename+".pdf"; pandoc -f markdown --template template.latex -V geometry:margin=1.5cm -V fontfamily:lato -V fontfamilyoptions:default -V fontfamilyoptions:defaultsans -s $_.name -o $pdf}

As versões externas não precisam da seção de detalhes do documento, que é a primeira página após o índice. Provavelmente eu poderia remover a terceira página, mas há alguns documentos com ToCs longos e outros sem, além disso, não me parece uma solução elegante.

Meu documento típico é mais ou menos assim (YAML e conteúdo reduzidos por questões de brevidade):

---
title: "A policy"
documentdetails: True/false % I could add something here for the default?
...

Table of contents:

\documentdetailstart % A tag looking like this for instance

# Document Details

#### Document Details

| Description | Status/Version | Reference Code | Control |
| --- |---|---|---|
|A Policy | Final / 1.0 | LaTeX | All |

\documentdetailend % A tag looking like this for instance

Begin Document

Como posso adicionar algum tipo de empacotamento à marcação de cada política, talvez tratada no modelo, para que eu possa adicionar algo como o abaixo na linha de comando para omitir/incluir automaticamente o conteúdo da tag.

-V Documentdetails:True

Agradeço antecipadamente por qualquer assistência que você possa fornecer!

Responder1

Você poderia ter um

\iftrue
Document details
\fi

e diga ao seu script do PowerShell para substituir iftrue por iffalse e compilar uma nova cópia.

Editar: se você cercar todo o material interno com \begininternale \endinternalconforme abaixo, poderá alternar entre se o documento é para uma cópia interna ou externa do PDF, substituindo iffalsepor iftruena segunda linha. Então você só precisa fazer com que seu script diga "se externo, substitua iffalse por iftrue e compile" ou algo assim.

\documentclass{article}
\let\begininternal\iffalse
\let\endinternal\fi

\begin{document}
Stuff everyone gets

\begininternal
Internal  only stuff
\endinternal

More stuff everyone gets

\begininternal
More internal only stuff
\endinternal

The end.
\end{document}

insira a descrição da imagem aqui

informação relacionada