Activar y desactivar el contenido del comando \chapter

Activar y desactivar el contenido del comando \chapter

Tengo un gran conjunto de contenidos para el usuario. Para un usuario diferente me gustaría mostrar contenidos diferentes. Para esto, me gustaría producir resultados diferentes mostrando y no mostrando algunos de los contenidos (por ejemplo, subsección de secciones de capítulos) del documento.

Mi idea es: mientras escribo un capítulo/sección, lo declaro para permitir mostrarlo a un usuario específico estableciendo el argumento en verdadero o falso. Por ejemplo,

si (usuario1 == verdadero) entonces debería estar ahí enuser1.pdf

Más específicamente, algo como:

Macro es: \chapter <chapterName1> [bool arg1][bool arg2][bool arg3]

\chapter <chapterName1> [user1==true][user2==false][user3==false] 

\chapter <chapterName2> [user1==true][user2==true][user3==false]

\section <sectionName1> [user1==true][user2==true][user3==true]

Si paso user1y user3como 'Verdadero', entonces mi salida debería contener

comando (ej.):\def\arg1=true, arg2=false, arg1=true \input{myfile}

chapterName1

sectionName1

¿Cómo puedo hacer esto?

Respuesta1

Puedes empezar desde aquí. Los métodos siguientes incluyen el environpaquete para omitir contenido, pero también puede intentar utilizar el commentpaquete para este propósito.

\documentclass[openany]{scrbook}

\usepackage{environ}
\usepackage{pdftexcmds}

\newcommand{\username}{user1}

\makeatletter
\NewEnviron{condchapter}[2][user]{
    \ifnum\pdf@strcmp{#1}{\username}=\z@
        \chapter{#2}
        \BODY
    \else
    \fi
}
\makeatother

\begin{document}

\begin{condchapter}[user1]{Title-1}

Some text.

\end{condchapter}

\begin{condchapter}[user2]{Title-2}

Some text.

\end{condchapter}

\renewcommand{\username}{user2}

\begin{condchapter}[user2]{Title-3}

Some text.

\end{condchapter}

\end{document}

Otra posibilidad con la lista de usuarios habilitados:

\documentclass[openany]{scrbook}

\usepackage{environ}
\usepackage{xstring}

\newcommand{\username}{user1}

\makeatletter
\NewEnviron{condchapter}[2][user]{
    \IfSubStr{#1}{\username}{%
        \chapter{#2}
        \BODY
    }{}
    %\else
    %\fi
}
\makeatother

\begin{document}

\begin{condchapter}[user1]{Title-1}

Some text.

\end{condchapter}

\begin{condchapter}[user2]{Title-2}

Some text.

\end{condchapter}

\renewcommand{\username}{user2}

\begin{condchapter}[user2, user3]{Title-3}

Some text.

\end{condchapter}

\end{document}

PD: para crear todos los archivos a la vez puedes comenzar desde las respuestasaquí


Otra posibilidad es utilizar sólo elcommentpaquetepara este propósito sin las modificaciones al chaptercomando.

información relacionada