A Python package to speed up the writing of papers by automating various aspects of research writing
Copy the manage.py file into the directory above where you will write the paper
From the directory where you want the project folder to be created (or already exists)
For new paper run: .. code:: bash
$ python manage.py paper <paper name> <optional: initials>
For new chapter run: .. code:: bash
$ python manage.py chapter <paper name> <optional: initials>
Follow the prompts.
run: .. code:: bash
$ short-bib <latex file path> <large bibtex path> <optional: new bibtex path>
- root_dir/
manage.py: This is provides the command-line tools for generate new figures, tables, bibtex files
- settings.py: This contains you research project settings (e.g. publication file type)
- Note: all parameters should by written in UPPER_CASE_WITH_UNDERSCORES
all_paths.py: This contains you paths to different folders that are specific to the project
user_paths.py: This contains paths that are specific to the user's computer
requirements.txt: A list of python packages used in the research
.gitignore: A list of files and folders that should not be tracked by git
- data/: This folder contains data specific to the project
- Note: Only include small non-binary files here that can be easily tracked with git,
for large data files use another storage (e.g. Google Drive/Dropbox/OneDrive) and link the folder using
user_paths.py
- <initials>_scripts/: This folder contains all the python files used for research, and generating outputs
- outputs/:
- figure_<name-of-figure>.py: This file is used to build a figure for your research paper
- table_<name-of-figure>.py: This file is used to build a table for your research paper
- tools/: This folder contains scripts and functions that are specific to your project but used in many files
- research/: This folder contains scripts that used to generate data for your research
- <initials>_paper/: This folder contains the research paper as a latex document
- <initials>-paper.tex/: The main latex document
- <initials>-figures/: Figures that are data generated, the
PUBLICATION_FIGURE_PATH
inall_paths.py
- <initials>-images/: Non-data generated files, e.g. drawings
- papers_dir:
- The folder that contains your research papers.
- short_research_name:
- This should be a two word name describing your research using hyphens "-" instead of spaces " ".
- initials:
- This should be the initials of the research name (usually two characters).
- project_root_folder_name:
- The name of the root folder of your new research paper "<short_research_name>-paper"
- main_bibtex_file:
- The bibtex file that contains all of your references.
1. Install pypaper .. code:: bash
$ pip install pypaper
- Create a new repository called
<project_root_folder_name>
on Bitbucket or Github with a README file.
3. Clone the folder to your papers directory .. code:: bash
$ cd <papers_dir> $ git clone <clone-url>
4. Change the current directory to <project_root_folder_name>
.
.. code:: bash
$ cd <project_root_folder_name>
5. Add the pypaper manager.py file to your project .. code:: bash
$ python -m pypaper.init_project
6. Create the project folders .. code:: bash
$ python manage.py init <initials>
7. Add new folders to git repository .. code:: bash
$ git add . $ git commit -m "Added pypaper project files" $ git push
- Copy the
figure_template.py
and rename it the name of your new figure with the prefix "figure_"
e.g. "figure_beam_deflections_under_load.py" # TODO: add clt
9. Replace the code for plotting a figure subplot.plot([0], [0], label="", c=cbox(0))
. Note that cbox
is a line
colour iterator, where you specific an integer and it returns a colour. Useful for plotting two lines in the same colour.
You can learn more about it here: https://github.com/eng-tools/bwplot
10. Update the publication settings PUBLICATION_FILE_TYPE
and PUBLICATION_DPI
, which correspond to the image
type and the dots-per-inch as specified by the conference/journal/book.
11. When run the new figure script you will generate a new figure in the images folder call the same as the figure script name, e.g. "beam_deflections_under_load.eps".
- Add to the script to generate_all.py
- copy a table template file
- Load the object with the parameters
- Pass to XXXXX
- Generate a new python virtual environment and activate it
- Install dependencies
pip install -r requirements.txt
3. Check that you can re-build all of your research, run python generate_all.py
, otherwise continue to add to
requirements.txt, until you have all the required packages.
- View the versions of the dependencies
pip freeze
- Copy the output back into requirements.txt with the exact version numbers.
- Commit and push the project.