Autofill more proper. Use the \autofill{FIELD}{} in body.tex to enable autofill. See the \autofill command in style.sty.
parent
b233c1a0b2
commit
15870ecffe
@ -0,0 +1,74 @@
|
||||
AUTOFILL_TPL = '\\autofill{FIELD}{INFO}'
|
||||
|
||||
def autofill(text, paper):
|
||||
for field, repl in get_autofill_info(paper):
|
||||
text = text.replace(find_autofill_pattern(text, field),
|
||||
autofill_repl(repl, field))
|
||||
return text
|
||||
|
||||
def get_autofill_info(paper):
|
||||
fields = paper.bibentry.fields
|
||||
|
||||
info = []
|
||||
if 'year' in fields:
|
||||
info.append(('YEAR', fields['year']))
|
||||
if 'title' in fields:
|
||||
info.append(('TITLE', fields['title']))
|
||||
if 'abstract' in fields:
|
||||
info.append(('ABSTRACT', fields['abstract']))
|
||||
info.append(('AUTHOR', get_author_as_str(paper)))
|
||||
return info
|
||||
|
||||
|
||||
def get_author_as_str(paper):
|
||||
persons = paper.bibentry.persons
|
||||
authors = []
|
||||
if 'author' in persons:
|
||||
for author in persons['author']:
|
||||
authors.append(format_author(author))
|
||||
return concatenate_authors(authors)
|
||||
|
||||
|
||||
def autofill_template(field):
|
||||
return AUTOFILL_TPL.replace('FIELD', field)
|
||||
|
||||
|
||||
def autofill_repl(repl, field):
|
||||
return autofill_template(field).replace('INFO', repl)
|
||||
|
||||
|
||||
def find_autofill_pattern(text, field):
|
||||
pattern = autofill_template(field).replace('INFO}', '')
|
||||
start = text.find(pattern)
|
||||
after = start + len(pattern)
|
||||
info_length = text[after:].find('}')
|
||||
end = start + len(pattern) + info_length + 1
|
||||
return text[start:end]
|
||||
|
||||
|
||||
##### ugly replace by proper #####
|
||||
def format_author(author):
|
||||
first = author.first()
|
||||
middle = author.middle()
|
||||
last = author.last()
|
||||
formatted = ''
|
||||
if first:
|
||||
formatted += first[0]
|
||||
if middle:
|
||||
formatted += ' ' + middle[0] + '.'
|
||||
if last:
|
||||
formatted += ' ' + last[0]
|
||||
return formatted
|
||||
|
||||
|
||||
def concatenate_authors(authors):
|
||||
concatenated = ''
|
||||
for a in range(len(authors)):
|
||||
if len(authors) > 1 and a > 0:
|
||||
if a == len(authors) - 1:
|
||||
concatenated += ' and '
|
||||
else:
|
||||
concatenated += ', '
|
||||
concatenated += authors[a]
|
||||
return concatenated
|
||||
#####
|
@ -1,26 +1,29 @@
|
||||
%DO_NOT_MODIFY{
|
||||
%This file is the starting point for all notes
|
||||
%TITLE, AUTHOR, YEAR, ABSTRACT will be automatyically replaced with respect to the associated bibfile
|
||||
%All texnote much share the same style so that we can compile them all together without problem
|
||||
%You can edit the style file using: papers texnote edit_template -S
|
||||
%TITLE, AUTHOR, YEAR, ABSTRACT will be automatyically replaced with respect to the associated bibfile thanks to the \autofill{*FIELD*}{} marker.
|
||||
\documentclass{article}
|
||||
%All texnote much share the same style so that we can compile them all together without problem
|
||||
\usepackage{template/style}
|
||||
%You are free to edit the style file using: papers texnote edit_template -S
|
||||
\begin{document}
|
||||
%You can edit the template of this file using: papers texnote edit_template -B
|
||||
%}
|
||||
|
||||
\begin{center}
|
||||
\Large{\textbf{TITLE}} \\ [0.2cm]
|
||||
\small{\textsc{AUTHOR}} \\ [0.2cm]
|
||||
\normalsize{\textsc{YEAR}} \\ [1cm]
|
||||
\Large{\textbf{\autofill{TITLE}{The title}}} \\ [0.2cm]
|
||||
\small{\textsc{\autofill{AUTHOR}{The authors}}} \\ [0.2cm]
|
||||
\normalsize{\textsc{\autofill{YEAR}{The year}}} \\ [1cm]
|
||||
\end{center}
|
||||
|
||||
\begin{abstract}
|
||||
ABSTRACT
|
||||
\autofill{ABSTRACT}{The abstract}
|
||||
\end{abstract}
|
||||
%You can edit the following of this file using: papers texnote edit_template -B
|
||||
%}
|
||||
|
||||
%WRITE YOUR NOTES FROM HERE
|
||||
%\section{Notes}
|
||||
% Write your notes here
|
||||
|
||||
%DO_NOT_MODIFY{
|
||||
%You can only cite papers added in you repo.
|
||||
%To update the bib file with latest papers info: papers texnote generate_bib
|
||||
\bibliographystyle{IEEE}
|
||||
\bibliography{template/bib}
|
||||
\end{document}
|
||||
%}
|
||||
|
@ -1,16 +1,4 @@
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amsfonts}
|
||||
\usepackage{amssymb}
|
||||
|
||||
\usepackage{algorithm}
|
||||
\usepackage{algorithmic}
|
||||
|
||||
\usepackage{graphics}
|
||||
\usepackage{graphicx}
|
||||
|
||||
\usepackage{hyperref}
|
||||
\usepackage{verbatim}
|
||||
\usepackage{url}
|
||||
|
||||
\usepackage{caption}
|
||||
\usepackage{subcaption}
|
||||
%DO_NOT_MODIFY{
|
||||
%Dummy command used as marker for the autofill
|
||||
\newcommand{\autofill}[2]{#2}
|
||||
%}
|
||||
|
Loading…
Reference in new issue