linha do tempo do chronosys, "mês dia, ano" em vez de "dia mês ano" e perguntas numéricas completas sobre data

linha do tempo do chronosys, "mês dia, ano" em vez de "dia mês ano" e perguntas numéricas completas sobre data

Para o seguinte:

\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}

Produz:

insira a descrição da imagem aqui

É possível que o evento da linha do tempo esteja no formato mês, dia e ano, por exemplo, 15 de março de 2015?

Além disso, não consegui fazer com que esse cronograma refletisse de 2015 a 2016. Em vez disso, pareço preso com "15" em uma extremidade e "16" na outra.

Quando tentei usar:

    \startchronology[startyear=2015,stopyear=2016]

o programa não refletia nenhuma data na cronologia.

Odocumentação do pacote chronosys, para mim, não pareceu ajudar.

Obrigado, se eu estiver preso ao(s) formato(s) de data que possuo atualmente em virtude do próprio pacote, agradeceria essa informação.

Responder1

Não vou comentar sua primeira questão, pois @JP-Ellis já respondeu perfeitamente. Mas corrigir o código para alterar o formato da data não é tão difícil, embora o código chronosysseja um pouco confuso. @JP-Ellis já descobriu o arquivo e a linha corretos, então aqui está um patch para alterar o formato da data.

\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}

Saída:

cronosys

Responder2

Como mencionei no comentário acima, modificar a data parece ser difícil, pois chronosysnão parece oferecer nenhuma maneira de fazê-lo. Como resultado, a única maneira de fazer isso seria modificar parte do próprio pacote (pelo que pude perceber, a impressão da data começa por volta da linha 513 do chronosyschr.tex, embora pareça desnecessariamente complicado para mim).

Agora em relação aos eventos não aparecerem, parece ser simplesmente porque o pacote espera um ano completo, ou seja, espera 15/03/2015caso contrário registra a data como sendo o ano 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}

saída

Responder3

Mais informações sobre chronospodem ser encontradas emesta resposta.

A versão atual do chronos está disponível em:
https://tex.stackexchange.com/a/342699/ (06/12/2016)

Pelo que vale a pena, chronosagora permite que isso seja feito com mais facilidade:

      date format={ B d, Y},

Cada caractere no formato é traduzido em um elemento do formato de data ou transmitido como está. Isso inclui pontuação e espaços. (Observe que macros etc. não funcionarão aqui porque a macro será dividida e 'traduzida' token por token.)

Os códigos de formato são principalmente um subconjunto dos códigos de formato fornecidos pelo datecomando do GNU, com alguns extras não relevantes para o GNU.

  • anome curto do dia da semana, por exemploMon
  • Anome completo do dia da semana, por exemploMonday
  • bnome curto do mês, por exemploJan
  • Bnome completo do mês, por exemploJanuary
  • ddia do mês, por exemplo23
  • Eera, por exemplo BCE, ouCE
  • mnúmero do mês, por exemplo01
  • qmenos se o ano for AEC
  • Qmenos se o ano for AEC;
  • yúltimos dois dígitos do ano, por exemplo66
  • Yano, por exemplo1066

Basicamente, isso personaliza o código usado para compor datas de eventos. Uma versão simplificada deste formato também está disponível para personalizar a aparência dos rótulos anuais na própria linha do tempo. Alternativamente, os rótulos de Era podem ser adicionados em cada extremidade da linha do tempo para evitar a confusão de incluir CEou BCEcom todos os anos.

Portanto, a linha do tempo pode ser composta da seguinte forma:

\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}

produz

Linha do tempo

Não há mais um ano zero por padrão, mas isso pode ser restabelecido se necessário usando year zero.

informação relacionada