Cómo editar `plainnat.bst` evitando ordenar por clave

Cómo editar `plainnat.bst` evitando ordenar por clave

Estoy usando natbibpaquete y plainnatestilo para mis citas y referencias. Desafortunadamente, cuando cito diferentes artículos del mismo autor, pero con diferentes coautores, la bibliografía se ordena por clave.

Por ejemplo:

ingrese la descripción de la imagen aquí

La clave para Ho, Meyn es Ho2006, para Ho, Lambling es Ho2011, y para Ho, Dreyfus es Ho2012. Ciertamente, LaTeX está considerando las claves antes del apellido del segundo autor.

¿¿¿Cómo puedo resolverlo???

Respuesta1

Como se mencionó en los comentarios anteriores de su publicación original, el MWE es necesario para que otros descubran qué está tratando de lograr y cómo está tratando de lograrlo. Sin eso, no puedo estar seguro de responder a su pregunta, pero aun así proporcionaré aquí información que puede resultarle útil.

Las entradas en su captura de pantalla parecen ser del articletipo. Si esto es cierto, natbibordenará plainnatestos artículos de la siguiente manera. Nota: Estoy usando la versión 2007 de plainnat.bst, que es la última a partir de esta publicación en 2022.

  1. La presortfunción (que comienza en la línea #1313) aplica la author.sortregla (en la línea #1326).

  2. La author.sortfunción (que comienza en la línea #1248) primero prueba si el authorcampo está vacío. Como el tuyo no lo es, la función pasa tu authorcampo a la sort.format.namesfunción.

  3. Pegué una copia de la sort.format.namesfunción (comenzando en la línea #1207) a continuación para ayudar con esta explicación. Según el ejemplo anterior, parece que sus entradas tienen 6, 4 o 7 autores, respectivamente, considerando el punto y coma como delimitadores y un punto para finalizar el authorbloque. El código aquí parece funcionar como se muestra en la captura de pantalla, ordenado por primer autor y luego por año para cada una de sus entradas. Notarás la función referente al yearcampo, que entra en juego:

    a. Después de ordenar por primer autor Y

    b. Hay más autores para ir además de "otros" Y

    C. Hay más de dos autores en total Y

    d. La función está en el segundo autor (segunda vez a través del whilebucle)

    mi. ENTONCES, ordene por año.

Tenga en cuenta que el idioma del archivo BST implementa una notación de sufijo.

FUNCTION {sort.format.names}
{ 's :=
  #1 'nameptr :=
  ""
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    {
      s nameptr "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=
      nameptr #1 >
        {
          "   "  *
          namesleft #1 = t "others" = and
            { "zzzzz" * }
            { numnames #2 > nameptr #2 = and
                { "zz" * year field.or.null * "   " * }
                'skip$
              if$
              t sortify *
            }
          if$
        }
        { t sortify * }
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

No obstante, hay una respuesta a una publicación de TeX Stack Exchange.aquíque describe cómo personalizar el plainnat.bstarchivo para abordar la clasificación sin autor.

información relacionada