Combine diferentes tipos de comandos de cita usando los paquetes cite y multibib (actualización del 28 de abril)

Combine diferentes tipos de comandos de cita usando los paquetes cite y multibib (actualización del 28 de abril)

Estoy usando el paquete multibib para diferenciar entre diferentes tipos de referencias. Además, \cite{}he definido el comando \citemine{}.

Citar funciona perfectamente bien, pero a veces me gustaría tener referencias de ambos tipos dentro de un paréntesis. Es decir, en lugar de \cite{RefA}\citemine{RefB}dar como resultado [1][2], me gustaría tener [1,2].

Actualización del 28 de abril: Llegué a una solución (desagradable) a la que solo le faltan algunos detalles menores. Mi MWE actualizado da como resultado [1, 2], pero, por supuesto, me gusta tener [1, 2]. Estoy bastante confundido porque no tengo idea de dónde podría provenir este espacio adicional. ¡Cualquier ayuda es apreciada!

\documentclass[]{scrbook}

% bibstlye

\usepackage{cite}
\usepackage{multibib}

\newcites{mine}{my stuff}

\newcommand{\citeBoth}[2]{
    \renewcommand{\citeleft}{}
    \renewcommand{\citeright}{}
    [#1,#2]
    \renewcommand{\citeleft}{[}
    \renewcommand{\citeright}{]}
    }


\begin{document}

Two cite examples:

\cite{foo}
\cite{foo2}
\citemine{bar}

\citeBoth{\cite{foo, foo2}}{\citemine{bar}}

\bibliographystylemine{plain}
\bibliographymine{bibfile}

\bibliographystyle{plain} 
\bibliography{bibfile}

\end{document}

y el bibfile correspondiente:

@Article{foo,
  author={foo},
  title={foo},
  journal={foo},
  year={200},
  volume={60},
  number={23},
  pages={6641--8},
}

@Article{bar,
    author={foo},
    title={foo},
    journal={foo},
    year={200},
    volume={60},
    number={23},
    pages={6641--8},
}

@Article{foo2,
    author={foo2},
    title={foo2},
    journal={foo2},
    year={200},
    volume={60},
    number={23},
    pages={6641--8},
}

Respuesta1

Convirtiendo mi comentario en una respuesta...

El espacio superfluo se debe a que la implementación de \citeemite un espacio antes del corchete izquierdo de la cita, de modo que una cita aparece como my citation [1]. Dado que el OP usa \citecomo argumento dentro de \citeBoth, se necesita un medio para eliminar ese espacio emitido, que ahora ocurre dentro los corchetes de \citeBoth.

La forma de lograr esto es redefinirla \citeleftno simplemente como una macro vacía {}, sino redefinirla para que no omita el espacio previamente asignado. Por lo tanto, emplear \renewcommand{\citeleft}{\unskip}en la definición de \citeBothdebería resolver el problema.

Tenga en cuenta que también publiqué la cita dentro de \citeBothas [#1,\,#2]para insertar un pequeño espacio después de la coma.

\newcommand{\citeBoth}[2]{
    \renewcommand{\citeleft}{\unskip}
    \renewcommand{\citeright}{}
    [#1,\,#2]
    \renewcommand{\citeleft}{[}
    \renewcommand{\citeright}{]}
    }

No sé lo suficiente como multibibpara saber por qué \citemineno funciona correctamente (no funcionó antes ni después de mi solución); sin embargo, se resuelve el problema de espaciado citado por el OP.

\documentclass[]{scrbook}
\usepackage{filecontents}
\begin{filecontents}{bibfile.bib}
@Article{foo,
  author={foo},
  title={foo},
  journal={foo},
  year={200},
  volume={60},
  number={23},
  pages={6641--8},
}

@Article{bar,
    author={foo},
    title={foo},
    journal={foo},
    year={200},
    volume={60},
    number={23},
    pages={6641--8},
}

@Article{foo2,
    author={foo2},
    title={foo2},
    journal={foo2},
    year={200},
    volume={60},
    number={23},
    pages={6641--8},
}
\end{filecontents}
% bibstlye

\usepackage{cite}
\usepackage{multibib}

\newcites{mine}{my stuff}

\newcommand{\citeBoth}[2]{
    \renewcommand{\citeleft}{\unskip}
    \renewcommand{\citeright}{}
    [#1,\,#2]
    \renewcommand{\citeleft}{[}
    \renewcommand{\citeright}{]}
    }


\begin{document}

Two cite examples:
\cite{foo}
\cite{foo2}
\citemine{bar}

\citeBoth{\cite{foo, foo2}}{\citemine{bar}}

\bibliographystylemine{plain}
\bibliographymine{bibfile}

\bibliographystyle{plain} 
\bibliography{bibfile}

\end{document}

ingrese la descripción de la imagen aquí

información relacionada