Comando de localização múltipla para apacite

Comando de localização múltipla para apacite

Estou tentando construir uma função para estender \cite{}a fim de oferecer suporte a citações com vários pontos (ainda usando o apacitepacote). Estou tentando ter um documento LaTeX marcado para baixo que possa renderizar um PDF organizado no ShareLaTex, que também possa ser analisado sem um emaranhado de \citeNPcomandos dentro do documento

A sintaxe padrão para \cite{}é:

\cite<preliminarytext>[pinpoint]{bibtexref1,bibtexref2,...}

Estou tentando criar este comando:

\myapacite[pinpoint1,pinpoint2,...][additionaloptions]{bibtexref1,bibtexref2,...}

Onde:

  • Se o número de parâmetros "pinpoint" separados por vírgula \myapacitenão for igual ao número de parâmetros "bibtexref" separados por vírgula, ignore-os e insira um \cite{}comando regular

  • Se o número de parâmetros "pinpoint" e "bibtexref" separados por vírgula for o mesmo, faça um loop e insira-os como:

    (\citeNP[pinpoint1]{bibtexref1}; \citeNP[pinpoint2]{bibtexref2}; ...)
    

Este é o layout básico do que estou tentando alcançar, embora haja vários problemas com o TeX (como muitos, venho de uma experiência em programação e estou aprendendo lentamente o TeX/LaTeX). Qualquer conselho seria muito apreciado.

\documentclass[apacite]{apa6}
\usepackage{xparse,expl3}

\NewDocumentCommand\myapacite{O{}O{}m}{%
\if\equals{\clist_count:n {#1}}{\clist_count:n {#3}}%
    \cite[#1]{#3}%
    \else%
    \if\equals{1}{\clist_count:n {#3}}%
    \cite[#1]{#3}%
        \else%
        \if\equals{2}{\clist_count:n {#3}}%
        (\citeNP[\clist_item:Nn {1} {#2}]{\clist_item:Nn {1} {#3}}; \citeNP[\clist_item:Nn {2} {#2}]{\clist_item:Nn {2} {#3}})\fi\fi\fi%
}

\begin{document}

Single cite with no pinpoints: \myapacite{goossens93}
\\
\\
Double cite with both pinpoints: \myapacite[p.123,p.456]{greenwade93,goossens93}
\\
\\
Double cite with no pinpoints: \myapacite{greenwade93,goossens93}
\\
\\
\bibliography{ testbib }
\end{document}

Este é o testbib.bibarquivo (não consegui descobrir como usar o conteúdo do arquivo no ShareLaTeX):

@article{greenwade93,
    author  = "George D. Greenwade",
    title   = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
    year    = "1993",
    journal = "TUGBoat",
    volume  = "14",
    number  = "3",
    pages   = "342--351"
}
@book{goossens93,
    author    = "Michel Goossens and Frank Mittelbach and Alexander Samarin",
    title     = "The LaTeX Companion",
    year      = "1993",
    publisher = "Addison-Wesley",
    address   = "Reading, Massachusetts"
}

informação relacionada