sbu-thesis-template

The latex template for Stony Brook University Ph.D. and MS Thesis

https://github.com/urfdvw/sbu-thesis-template

Science Score: 31.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.4%) to scientific vocabulary

Keywords

ms-thesis phd-thesis stony-brook thesis
Last synced: 6 months ago · JSON representation ·

Repository

The latex template for Stony Brook University Ph.D. and MS Thesis

Basic Info
  • Host: GitHub
  • Owner: urfdvw
  • License: other
  • Language: TeX
  • Default Branch: main
  • Homepage:
  • Size: 65.4 KB
Statistics
  • Stars: 25
  • Watchers: 1
  • Forks: 4
  • Open Issues: 0
  • Releases: 0
Topics
ms-thesis phd-thesis stony-brook thesis
Created over 5 years ago · Last pushed over 3 years ago
Metadata Files
Readme License Citation

README.md

The latex template for Stony Brook University Ph.D. and MS Thesis

Motivation

I am shocked by the lack of proper LaTeX templates for the Ph.D. thesis at Stony Brook graduate school page.

This template is modified from the thesis of Avi Srivastava. Thank him.

How to use

Get started

  1. Download this repository from GitHub website as a .zip file.
  2. Go to Overleaf website and log in.
  3. When clicking on New Project button, choose Upload Project.
  4. Upload the downloaded .zip file
  5. (optional but suggested) Connect this Overleaf document to a new Github repository. See This page

Start to write

  • The main.tex file
    • (The line numbers mentioned here are line numbers in the template. They might change once you fill in your content.)
    • Head directly to line 80 and fill in THESIS INFORMATION
    • In TITLE PAGE, you might only want to change line 138, the date.
    • THESIS CONTENT - CHAPTERS at line 280 is the main body
      • NEVER write any content here
      • Write your main body in separated .tex files and \input them here.
    • Appendixes should be \inputed in THESIS CONTENT - APPENDICES at line 297
    • If you need any extra packages, \usepackage them in Your Packages at line 55
    • For any other parts of the main.tex file, you need to modify them at your own risk.
  • The Chapters folder
    • All the text parts should be in this folder.
    • You can divide the text by \chapter or \section
      • The rule of thumb is a file should not exceed 500 lines. If so, break it
    • You can also create subfolders for each Chapter for a better organization.
  • The Figures folder
    • All the Figure files should be in this folder.
    • If you have figures created by LaTex code (Highly not suggested), put them here as separated .tex files.
  • The Tables folder
    • If you have tables, put them here as separated .tex files.
    • If you generated your tables from tablesgenerator.com (Highly suggested), put the source file of the table here as well.
  • The Appendices folder
    • If you have appendices, put them here as separated .tex files.
  • The main.bib file
    • All citations should be here,

Additional tools

  • Bib file merge tool
    • In case you never used any citation management software and you have many .bib files from previous papers, you can use to merge them into one.
  • CiatationChecker.py file
    • This Python script locates at the root directory of this repository.
    • It will count how many times you cited each paper by scaning your .tex and .bib files.
      • This will be helpful to identify un-cited papers in the .bib file
    • How to use:
      • You need to download your Overleaf project to local and unzip.
      • You also need to have a python distribution installed
      • By running the script, it will generate a .csv table showing the countings.
  • LaTex table generator

Warnings and Tricks (From the most important to the least)

  • The ONLY reason that you want to use LaTeX is that there are off-the-shelf templates available such as a conference paper template from the conference website and this thesis template. NEVER, EVER, EVER, start a LaTeX document from scratch!
  • It is highly recommended that any LaTeX users head to Overleaf. Avoid using any offline distributions anytime possible.
  • Never define your own command if you don't want to confuse your co-author or yourself-years-later.
  • Use \begin{align} instead of \begin{equation}. They are basically the same, but align will allow you to add additional lines to existing equations whenever needed with ease.
  • When editing equations, put the equations' latex code into multiple lines, with indention.
    • The rule of thumb is to never let the equation auto wrapped to a new line
    • Indention rules are flexible since indention is for easier reading, not a part of the syntax.
      • It is suggested to follow the indention rule of programming languages, such as the {} rules of C++.
  • If a paragraph contains many in-line equations, make each equation a new line in the latex code, so that you can relocate them easily by double clicking on the preview.

Owner

  • Name: River Wang
  • Login: urfdvw
  • Kind: user

Software Engineer and Former STEAM Teacher. Microcontroller hobbyist.

Citation (CitationChecker.py)

import os

# get the citations in the .tex files

# acquire the path of all files
tex_paths = []
for path, subdirs, files in os.walk('.'):
    for name in files:
        if name[-4:] == '.tex':
            tex_paths.append(os.path.join(path, name))
# acquire all mentioned ciation identifiers
cites = []
for path in tex_paths:
    file = open(path)
    text = file.read()
    pieces = text.split('\cite{')[1:] # ignore the first piece
    for p in pieces:
        cites += [s.strip() for s in p[:p.index('}')].split(',')]

        
# acquire all citations in .bib file
file = open('main.bib', encoding="utf-8")
text = file.read()
pieces = text.split('@')[1:] # ignore the first piece
papers = [p[p.index('{')+1 : p.index(',')].strip() for p in pieces]

# count
counts = dict()
for p in papers:
    counts[p] = 0
    
for c in cites:
    if c: # avoid empty strings
        counts[c] += 1
    
counts = {k: v for k, v in sorted(counts.items(), key=lambda item: item[1])} # sort by counts
# https://stackoverflow.com/a/613218/7037749

# output
out = open('CitationCounts.csv', 'w')
# count citations in tex, for double check
out.write('total' + ',' + str(sum([1 for k, v in counts.items() if v > 0])) + '/' + str(len(counts)) + '\n') 

for paper in counts:
    out.write(paper + ',' + str(counts[paper]) + '\n')
    

GitHub Events

Total
  • Watch event: 10
Last Year
  • Watch event: 10

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 15
  • Total Committers: 1
  • Avg Commits per committer: 15.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
术生何 u****w@g****m 15

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels