1

I have an excel table with several entries describing documents in an archive. Then I wanted to convert the whole table into formatted paragraphs in which every row appears as a unit. I then produced a command with 14 arguments. From here: How to define a command that takes more than 9 arguments Until now, I am satisfied with the result. Now I want to introduce a condition: When some specific field is empty then the whole field should not appear. In this case: Some Notes are empty. How Can I eliminate the Notes in this instance (exemple: 1st one). I tried with \IfNoValue and with \ifblank, but did not work. Also, I have read in different posts that this is not the way to go. Do you have any other way I can represent the table into paragraphs?

\documentclass{article}
\usepackage{xparse}
\usepackage{etoolbox}
\ExplSyntaxOn
\NewDocumentCommand{\NewWeirdCommand}{mmm}
 {% #1 = command to define, #2 = number of arguments, #3 = replacement text
  \cs_new:Npn #1
   {
    \tl_set:Nn \l__simon_parse_args_tl { #3 }
    \__simon_parse_args:n { #2 }
   }
 }
\NewDocumentCommand{\Arg}{m}
 {
  \seq_item:Nn \l__simon_parse_args_seq { #1 }
 }

\tl_new:N \l__simon_parse_args_tl \seq_new:N \l__simon_parse_args_seq \int_new:N \l__simon_parse_args_int

\cs_new_protected:Nn __simon_parse_args:n { \seq_clear:N \l__simon_parse_args_seq \int_zero:N \l__simon_parse_args_int __simon_parse_arg:n { #1 } } \cs_new_protected:Nn __simon_parse_arg:n { \int_incr:N \l__simon_parse_args_int \int_compare:nNnTF { \l__simon_parse_args_int } > { #1 } { \tl_use:N \l__simon_parse_args_tl } { __simon_parse_arg_aux:nn { #1 } } } \cs_new_protected:Nn __simon_parse_arg_aux:nn { \seq_put_right:Nn \l__simon_parse_args_seq { #2 } __simon_parse_arg:n { #1 } } \ExplSyntaxOff

\NewWeirdCommand{\donnee}{14}{% \noindent\textbf{Carton:} \Arg{11}\hfill \textbf{Numero:} \Arg{1}\hfill \textbf{Image:} \Arg{12} \hfill \textbf{Année:} {\bf\Arg{6}}\% \textbf{Type:} \Arg{2}: ``{\it \Arg{3}}'' \ % \textbf{Auteur:} \Arg{7} \ \textbf{Défense:} \Arg{9} \ %(\Arg{8}) \textbf{Origine:} \Arg{4} \hspace{1cm} \textbf{Recours:} \Arg{5} \% \textbf{Notes:} \Arg{13} }

\begin{document}

\donnee{31}{Crime}{Escravizar pessoa livre}{Ville}{NI}{1856}{João António de Sousa Moranha}{H}{António Joaquim Monteiro}{H}{1}{3128}{}{} \

\donnee{32}{Crime}{Furto}{Ville}{NI}{1856}{Ministério Público; Feleno José neto Alberto}{H}{Sanango, escravo de António Joaquim Monteiro}{H}{1}{3129}{Furto praticado pelos escravos de Antonio Joaquim Monteiro, no distrito da Catumbela}{} \

\donnee{33}{Crime}{Autos crime}{Ville}{NI}{1856}{Ministério Público}{NI}{Paisano João Pilartes da Silva}{H}{1}{3130}{Auto de notícia do paisano João Pilarte da Silva implicado na guerra que ultimamente invadiu o distrito de Quilengues}{} \

\donnee{34}{Cível}{Justificação}{Ville}{NI}{1856}{António Martins Bastos}{H}{NI}{NI}{1}{3131}{}{} \

\donnee{35}{Cível}{Execução}{Ville}{NI}{1856}{Ministério Público}{NI}{António Macedo Moreira de Campos}{H}{1}{3132}{Execução por décimas}{} \

\donnee{57}{Cível}{Execução}{Ville}{NI}{1856}{Ministério Público}{NI}{Bernardino Fernandes Silva}{H}{1}{3154}{Sem capa, informações obtidas da petição; execução fiscal; réu passou letra inconclusa}{} \

\donnee{87}{Cível}{Reivindicação}{Ville}{NI}{1856}{Cabinda Fernando da Costa Carmo}{H}{Dona da escrava - Dona Anna Martins de Sant Anna}{M}{1}{3184}{}{} \

\donnee{36}{Crime}{Furto de escravos}{Ville}{Ville}{1857}{Ministério Público}{NI}{Jose Rodrigues Suame; Semamba Dom Cosme; Fernando da Cunha; José Macombo; todos pretos Cabindas}{H}{1}{3133}{Recurso por furto de três escravos pertencentes a Dona Maria Dias de Jesus}{} \

\donnee{37}{Crime}{Mandar amarrar um preto livre}{Ville}{NI}{1857}{Ministério Público}{NI}{André Velasco Galiano; Guilhermino Jozé Jeremias}{H}{1}{3134}{Autos de busca e corpo de delito contra André Vellasco Galiano pelo crime de mandar amarrar um preto sertanejo, livre, de nome Cacumba}{} \

\end{document}

yacine
  • 144
  • 1
    why have so many arguments? You can have a single argument with a comma separated list. You are using expl3 anyway and \clist_item:nn{a,b,c,d}{3} will return c the third item. – David Carlisle May 06 '21 at 16:33
  • Thank you for pointing me to that. I will look into it. – yacine May 06 '21 at 18:23

1 Answers1

2

For example:

\newcount\argnum
\def\argsdef#1#2{\def#1{\argnum=1\def\useargs{#2}\inargs}}
\def\inargs{\futurelet\next\inargsA}
\def\inargsA{\ifx\next\bgroup \expandafter\inargsB \else \expandafter\useargs \fi}
\def\inargsB#1{\expandafter\def\csname Arg:\the\argnum\endcsname{#1}%
   \advance\argnum by1 
   \inargs}
\def\arg#1{\csname Arg:#1\endcsname}

\argsdef\donnee{% \noindent {\bf Carton:} \arg{11}\hfill {\bf Numero:} \arg{1}\hfill {\bf Image:} \arg{12} \hfill {\bf Année:} {\bf\arg{6}} \hfil\break {\bf Type:} \arg{2}: ``{\it \arg{3}}'' \hfil\break {\bf Auteur:} \arg{7} \hfil\break {\bf Défense:} \arg{9} \hfil\break %(\Arg{8}) {\bf Origine:} \arg{4} \hskip 1cm {\bf Recours:} \arg{5} \hfil\break \if\relax\arg{13}\relax \null \else {\bf Notes:} \arg{13}\fi % test if arg13 is empty }

\donnee{31}{Crime}{Escravizar pessoa livre}{Ville}{NI}{1856}{João António de Sousa Moranha}{H}{António Joaquim Monteiro}{H}{1}{3128}{}{}

\donnee{32}{Crime}{Furto}{Ville}{NI}{1856}{Ministério Público; Feleno José neto Alberto}{H}{Sanango, escravo de António Joaquim Monteiro}{H}{1}{3129}{Furto praticado pelos escravos de Antonio Joaquim Monteiro, no distrito da Catumbela}{}

\donnee{33}{Crime}{Autos crime}{Ville}{NI}{1856}{Ministério Público}{NI}{Paisano João Pilartes da Silva}{H}{1}{3130}{Auto de notícia do paisano João Pilarte da Silva implicado na guerra que ultimamente invadiu o distrito de Quilengues}{}

\donnee{34}{Cível}{Justificação}{Ville}{NI}{1856}{António Martins Bastos}{H}{NI}{NI}{1}{3131}{}{}

\donnee{35}{Cível}{Execução}{Ville}{NI}{1856}{Ministério Público}{NI}{António Macedo Moreira de Campos}{H}{1}{3132}{Execução por décimas}{}

\donnee{57}{Cível}{Execução}{Ville}{NI}{1856}{Ministério Público}{NI}{Bernardino Fernandes Silva}{H}{1}{3154}{Sem capa, informações obtidas da petição; execução fiscal; réu passou letra inconclusa}{}

\donnee{87}{Cível}{Reivindicação}{Ville}{NI}{1856}{Cabinda Fernando da Costa Carmo}{H}{Dona da escrava - Dona Anna Martins de Sant Anna}{M}{1}{3184}{}{}

\donnee{36}{Crime}{Furto de escravos}{Ville}{Ville}{1857}{Ministério Público}{NI}{Jose Rodrigues Suame; Semamba Dom Cosme; Fernando da Cunha; José Macombo; todos pretos Cabindas}{H}{1}{3133}{Recurso por furto de três escravos pertencentes a Dona Maria Dias de Jesus}{}

\donnee{37}{Crime}{Mandar amarrar um preto livre}{Ville}{NI}{1857}{Ministério Público}{NI}{André Velasco Galiano; Guilhermino Jozé Jeremias}{H}{1}{3134}{Autos de busca e corpo de delito contra André Vellasco Galiano pelo crime de mandar amarrar um preto sertanejo, livre, de nome Cacumba}{}

wipet
  • 74,238