cronograma de cronosys, "mes día, año" en lugar de "día mes año" y preguntas de fecha numérica completa

cronograma de cronosys, "mes día, año" en lugar de "día mes año" y preguntas de fecha numérica completa

Para el siguiente:

\documentclass{article}
\usepackage{chronosys}
\catcode`\@=11
\def\chron@selectmonth#1{\ifcase#1\or January\or February\or March\or April\or%
 May\or June\or July\or August\or September\or October\or November\or December\fi}

\begin{document}

    \startchronology[startyear=15,stopyear=16]

\chronoevent{15/03/15}{Assassination of Caesar} 

     \stopchronology 

\end{document}

Produce:

ingrese la descripción de la imagen aquí

¿Es posible que el evento de la línea de tiempo esté en formato de mes, día y año, por ejemplo, 15 de marzo de 2015?

Además, no pude lograr que esta línea de tiempo reflejara el período de 2015 a 2016. En cambio, parezco estancado con "15" en un extremo y "16" en el otro.

Cuando lo intenté usando:

    \startchronology[startyear=2015,stopyear=2016]

el programa no reflejaba ninguna fecha en la cronología.

Eldocumentación del paquete cronosys, para mí, no pareció ayudar.

Gracias, si estoy atascado con los formatos de fecha que tengo actualmente en virtud del paquete en sí, agradecería esa información.

Respuesta1

No comentaré sobre tu primer problema, ya que @JP-Ellis ya respondió perfectamente. Pero parchear el código para cambiar el formato de fecha no es tan difícil, aunque el código chronosyses un poco complicado. @JP-Ellis ya descubrió el archivo y la línea correctos, así que aquí hay un parche para cambiar el formato de fecha.

\documentclass{article}
\usepackage{chronosys}
\usepackage{etoolbox}

\makeatletter\catcode`\!=11
\def\chron@selectmonth#1{\ifcase#1\or January\or February\or March\or April\or%
 May\or June\or July\or August\or September\or October\or November\or December\fi}

\patchcmd{\dochronoevent}{%
\if!chreventdate\hbox to\z@{%
  \hss \if!chreventifcolorbox \expandafter\!chreventcolorbox\fi
  {\!chr@eventdatestyle{%
    \if!chreventspecifiedday %
      {\!chr@eventdatesstyle{\!chreventday}}\!chr@eventdatesseparation
    \fi
  {\!chr@eventdatesstyle{%
    \if!chreventspecifiedmonth 
      \if!chreventconversionmonth\expandafter \chron@selectmonth
      \fi 
      \!chreventmonth
    \fi
    }%
  }%
  \if!chreventspecifiedmonth\if!chreventyear \!chr@eventdatesseparation\fi\fi 
  \if!chreventyear{\!chr@eventdatesstyle{\!chreventyear}}\fi%
  }}%
  \hss
}%
\fi
}{%
\if!chreventdate\hbox to\z@{%
  \hss \if!chreventifcolorbox \expandafter\!chreventcolorbox\fi
  {\!chr@eventdatesstyle{%
    \if!chreventspecifiedmonth 
      \if!chreventconversionmonth\expandafter\chron@selectmonth
      \fi 
      \!chreventmonth\!chr@eventdatesseparation%
    \fi
    }%
  {\!chr@eventdatestyle{%
    \if!chreventspecifiedday%
      {\!chr@eventdatesstyle{\!chreventday}},%
    \fi%
  }%
  \if!chreventspecifiedmonth\if!chreventyear\!chr@eventdatesseparation\fi\fi 
  \if!chreventyear{\!chr@eventdatesstyle{\!chreventyear}}\fi%
  }}%
  \hss
}%
\fi
}{%
\message{Patching chronosys successful.}%
}{%
\message{Patching chronosys failed.}%
}
\makeatother


\begin{document}

\startchronology[startyear=2015,stopyear=2016]
\chronoevent{15/03/2015}{Assassination of Caesar} 
\stopchronology 

\end{document}

Producción:

cronosis

Respuesta2

Como mencioné en el comentario anterior, parece que modificar la fecha será difícil ya que chronosysno parece ofrecer ninguna forma de hacerlo. Como resultado, la única forma de hacerlo sería modificar parte del paquete en sí (por lo que pude ver, la impresión de la fecha comienza alrededor de la línea 513 de chronosyschr.tex, aunque me parece innecesariamente complicado).

Ahora con respecto a los eventos que no aparecen, parece ser simplemente porque el paquete espera un año completo, es decir, espera que 15/03/2015de lo contrario registre la fecha como el año 15:

\documentclass{article}
\usepackage{chronosys}

\makeatletter
\def\chron@selectmonth#1{\ifcase#1\or January\or February\or March\or April\or%
  May\or June\or July\or August\or September\or October\or November\or December\fi}

\begin{document}
\startchronology[startyear=2010,stopyear=2016]
  \chronoevent{4/7/2012}{Discovery of the Higgs boson}
\stopchronology
\startchronology[startyear=10,stopyear=16]
  \chronoevent{19/8/14}{Augustus, the first Roman emperor, dies and is declared to be a god}
\stopchronology 
\end{document}

producción

Respuesta3

Más información sobre chronosse puede encontrar enesta respuesta.

La versión actual de cronos está disponible en:
https://tex.stackexchange.com/a/342699/ (2016-12-06)

Por si sirve de algo, chronosahora permite que esto se haga con mayor facilidad:

      date format={ B d, Y},

Cada carácter del formato se traduce a un elemento del formato de fecha o se pasa tal cual. Esto incluye puntuación y espacios. (Tenga en cuenta que las macros, etc. no funcionarán aquí porque la macro se descompondrá y se "traducirá" token por token).

Los códigos de formato son en su mayoría un subconjunto de los códigos de formato proporcionados por el comando de GNU date, con algunos extras que no son relevantes para GNU.

  • anombre corto del día de la semana, por ejemploMon
  • Anombre completo del día de la semana, por ejemploMonday
  • bnombre de mes corto, por ejemploJan
  • Bnombre del mes completo, por ejemploJanuary
  • ddía del mes por ej.23
  • Eera, por ejemplo BCEoCE
  • mnúmero de mes, por ejemplo01
  • qmenos si el año es BCE
  • Qmenos si el año es BCE;
  • yúltimos dos dígitos del año, por ejemplo66
  • Yaño por ejemplo1066

Básicamente, esto personaliza el código utilizado para componer las fechas de los eventos. También está disponible una versión simplificada de este formato para personalizar la apariencia de las etiquetas de los años en la propia línea de tiempo. Alternativamente, se pueden agregar etiquetas de época en cada extremo de la línea de tiempo para evitar el desorden de incluir CEo BCEcon cada año.

Entonces la línea de tiempo se puede componer de la siguiente manera:

\begin{tikzpicture}
  [
    chronos={%
      start date=2015-01-01,
      end date=2016-01-01,
      timeline height=2.5mm,
      timeline width=100mm,
      timeline line={shorten >=-10mm, -{Triangle Cap[length=10mm]}},
      timeline years=above,
      date format={ B d, Y},
    }
  ]
  \chronosevent{2015-03-15}{Assassination of Caesar}
\end{tikzpicture}

produce

línea de tiempo

Ya no existe un año cero de forma predeterminada, pero se puede restablecer si es necesario usando year zero.

información relacionada