논문을 작성 중인데 여러 곳에 과거 사건의 월과 연도를 삽입하고 싶습니다! 그렇게하는 방법? 누구든지 나에게 가장 간단한 방법을 제안할 수 있습니까? 저는 LaTeX의 초보자입니다. 그리고 제 영어 실력도 용서해주세요.
이러한 이벤트가 텍스트 파일에 나열되어 있습니다. 예를 들어 초전도성은 1991년 4월 Heike Kamerlingh Onnes에 의해 발견되었습니다.
나는 다음과 같은 형식의 출력을 기대하고 있습니다.
1991년 4월
답변1
\newcommand\questionDay{Monday}
관련 데이터를 저장하는 매크로를 간단히 정의할 수 있습니다. 예를 들어 이 질문을 한 날짜를 저장하는 데 사용할 수 있습니다 . 그런 다음 \questionDay
오늘 언급하고 싶은 곳 어디든 단락에서 사용할 수 있습니다 . 그러나 매크로 이름 뒤의 공백은 무시되므로 뒤에 공백이 필요한 경우 대신 \questionDay
사용할 수 있습니다 \questionDay{}
.
또 다른 접근 방식은 데이터를 일부 데이터 구조에 저장하고 검색하는 것입니다. 다음은 매크로 이름과 key=value
이 매크로 이름에 대한 속성을 저장하는 쌍 목록을 제공하여 초기화할 수 있는 데이터 구조를 구현합니다 . 그런 다음 매크로를 사용하면 이전에 저장된 속성 중 하나인 하나의 인수를 받아들이고 해당 속성의 값을 조판합니다.
이 예에서는 두 가지 방법을 모두 보여줍니다.
\documentclass[]{article}
% basic approach
\newcommand\questionday{9th}
\newcommand\questionDay{Monday}
\newcommand\questionyear{2020}
\newcommand\questionmonth{November}
\usepackage{xparse}
% property list based approach
\ExplSyntaxOn
\msg_new:nnn { Bhargav } { already-defined }
{ #1 ~ `#2' ~ is ~ already ~ defined. }
\msg_new:nnn { Bhargav } { unknown~property }
{ The ~ property ~ `#2' ~ isn't ~ found ~ for ~ `#1'. }
\tl_new:N \l_Bhargav_tmp_tl
\NewDocumentCommand \newevent { m m }
{
\prop_if_exist:cTF { c_Bhargav_event_ \token_to_str:N #1 _prop }
{
\msg_error:nnxx { Bhargav } { already-defined }
{ The ~ property ~ list ~ for } { \token_to_str:N #1 }
}
{
\NewDocumentCommand #1 { m }
{
\group_begin:
\prop_get:cnN
{ c_Bhargav_event_ \token_to_str:N #1 _prop }
{ ##1 }
\l_Bhargav_tmp_tl
\quark_if_no_value:NTF \l_Bhargav_tmp_tl
{
\msg_error:nnxx { Bhargav } { unknown~property }
{ \token_to_str:N #1 } { \exp_not:n {##1} }
}
{ \l_Bhargav_tmp_tl }
\group_end:
}
\prop_const_from_keyval:cn
{ c_Bhargav_event_ \token_to_str:N #1 _prop }
{#2}
}
}
\ExplSyntaxOff
% defining a new property list
\newevent\deathfreddie
{%
year=1991,
month=11,
day=24,
Month=November,
}
\begin{document}
Bhargav Rajyaguru asked a question on \questionDay{} the \questionday{} of
\questionmonth, \questionyear.
It was very sad that Freddie Mercury died on
\deathfreddie{year}-\deathfreddie{month}-\deathfreddie{day}. That was the
saddest \deathfreddie{Month} in \deathfreddie{year}.
\end{document}