Agregue 'etiquetas' de LaTeX para incluir/excluir secciones de Markdown de la línea de comando

Agregue 'etiquetas' de LaTeX para incluir/excluir secciones de Markdown de la línea de comando

Me gustaría poder "activar/desactivar" ciertas secciones de mis documentos, dependiendo de una declaración de línea de comando.

Estoy convirtiendo un gran grupo de documentos de políticas que son para uso interno y externo, a través de Pandoc, a PDF, usando una plantilla LaTeX, y Pandoc está usando pdfTeX. También tengo un script de PowerShell que los convierte de forma recursiva.

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}

Las versiones externas no necesitan la sección de detalles del documento, que es la primera página después de la tabla de contenido. Probablemente podría eliminar la tercera página, pero hay algunos documentos con ToC largos y otros sin ellos, además, no me parece una solución elegante.

Mi documento típico se parece a este (YAML y contenido reducidos para mayor brevedad):

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

¿Cómo puedo agregar algún tipo de ajuste a la rebaja de cada política, que quizás se trate en la plantilla, de modo que pueda agregar algo como lo siguiente en la línea de comando para omitir/incluir automáticamente el contenido de la etiqueta?

-V Documentdetails:True

¡Gracias de antemano por cualquier ayuda que puede proporcionar!

Respuesta1

Podrías tener un

\iftrue
Document details
\fi

y dígale a su script de PowerShell que reemplace iftrue con iffalse y compile una nueva copia.

Editar: si rodea todo el material interno con \begininternaly \endinternalcomo se muestra a continuación, puede alternar entre si el documento es para una copia interna o externa del pdf reemplazándolo iffalsecon iftrueen la segunda línea. Luego solo necesita que su script diga "si es externo, reemplace iffalse con iftrue y compile" o algo así.

\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}

ingrese la descripción de la imagen aquí

información relacionada