Coder Social home page Coder Social logo

mihaiconstantin / paperer Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 536 KB

`paperer` is a lightweight tool that simplifies the creation of new LaTeX manuscripts by scaffolding projects based on pre-defined or custom templates. No need to manually copy files, just start writing in seconds!

Home Page: https://paperer.mihaiconstantin.com

License: MIT License

Shell 57.09% TeX 42.91%
academic-writing apa automation latex latex-template manuscript scaffolding

paperer's Introduction

paperer logo

Start Writing That Paper
...in seconds

Repository status GitHub version GitHub issues

paperer is a lightweight executable to quickly scaffold LaTeX projects. Starting a new manuscript can be a tedious process, and often requires copying files from previous projects, or searching for templates online. paperer aims to simplify this process by providing a simple executable that can be used to scaffold a new version-controlled manuscript in LaTeX based on a given template. A template is simply a collection of files that make up a manuscript. Currently, paperer provides a mainly APA template, but more templates are welcomed as contributions (i.e., see the Contributing section). Alternatively, you can use your own templates by specifying the source directory where to look for the template files (i.e., see the Usage section). In a nutshell, the idea behind paperer is that any bit of friction is too much friction—therefore, just install it once and run it anytime you want to start writing a new manuscript.

paperer is build for macOS and other Unix-based operating systems. However, support for Windows may be added based on user demand.

Installation

Prerequisites

While you can install paperer and scaffold a manuscript without any prerequisites, you will need a LaTeX distribution installed on your system to compile the manuscript. Please check tug.org/texlive for more information on how to install LaTeX on your system.

Installing

To install paperer, simply run the following command:

curl https://raw.githubusercontent.com/mihaiconstantin/paperer/main/install.sh | sudo bash

The command above will perform the following steps:

  1. Clone the mihaiconstantin/paperer repository to /usr/local/paperer.
  2. Adjust permissions and create paperer executable from /usr/local/paperer/paperer.sh
  3. Create symbolic link in /usr/local/bin for paperer -> /usr/local/paperer.

Uninstalling

To uninstall paperer simply run:

paperer --uninstall

The --uninstall flag will reverse the installation steps described above.

Updating

To update paperer you can run:

paperer --update

This --update flag will pull the latest changes from GitHub into your local copy of the repository available at /usr/local/paperer.

Usage

You can start by print the help message using the --help or -h options:

paperer --help

The help message will look as follows:

Usage: paperer [option]

Options:
   -d, --directory=DIR    The directory DIR where to prepare the paper without the trailing slash.
   -t, --template=TPL     The template TPL to use for scaffolding. The default is 'apa'.
                          Currently included templates with 'paperer' are: 'apa'.
                          However, custom templates can be used by specifying the source folder.
   -s, --source=DIR       Source directory where to look for the template TPL for scaffolding.
                          The default is the 'templates' folder of the 'paperer' installation.
                          This option is useful if you want to use your own templates.
   --update               Update 'paperer' from GitHub.
   --uninstall            Uninstall 'paperer'.
   --help                 Display this help message.

Description:
   - Repository: https://github.com/mihaiconstantin/paperer
   - Mihai Constantin ([email protected])

Then, to prepare a new manuscript at path /path/to/manuscript, simply run:

paperer --directory=/path/to/manuscript

This option will create a new directory at /path/to/manuscript and scaffold the LaTeX files associated with the default apa template. The scaffolding process for the apa template will result in the following structure:

manuscript
├── README.md
├── archive
├── build
├── graphics
├── library.bib
├── manuscript.code-workspace
├── manuscript.tex
└── sections
    ├── _footnotes.tex
    ├── _outline.tex
    ├── _sections.tex
    ├── abstract.tex
    ├── introduction.tex
    └── section-one.tex

Check out the document apa-sample.pdf in samples/ directory for an example of the resulting manuscript. Also, check out the --template and --source flags to specify your own local templates.

Release Notes

See the CHANGELOG file.

Contributing

Any contributions, suggestions, or bug reports are welcome and greatly appreciated. Please open an issue or submit a pull request.

One way to contribute is to provide a new template for a different style of manuscript. To do so, please open a pull request as follows:

  1. Create a new directory in the templates/.
  2. Add a sample of the resulting document in the samples/ directory, following the naming convention <template-name>-sample.pdf.
  3. Adjust the the function display_help in paperer.sh to include the new template in the help message.

Another way to contribute is by helping with translating the bash scripts install.sh and paperer.sh to other PowerShell or Batch scripts for Windows.

License

paperer is licensed under the MIT license.

paperer's People

Contributors

mihaiconstantin avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

paperer's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.