Coder Social home page Coder Social logo

sebbrudzinski / open-latex-studio Goto Github PK

View Code? Open in Web Editor NEW
187.0 28.0 76.0 12.44 MB

Open Source LaTeX editor that supports remote collaboration

Home Page: http://sebbrudzinski.github.io/Open-LaTeX-Studio/

License: MIT License

Java 76.90% TeX 17.67% Common Workflow Language 5.43%
java latex-editor netbeans-platform tex

open-latex-studio's Introduction

Open LaTeX Studio

Open LaTeX Studio is an open source initiative, to create LaTeX editor, that supports remote collaboration between users. Unlike other dedicated services that allow project sharing, there will be no need to purchase any plans in order to obtain the space or allow more people to work on a document, since users will be able to store their projects on any, free cloud storage solution (for example Dropbox, Google drive). The GUI of the editor will be built using the NetBeans Platform framework, which will make the usage of the editor very simple and intuitive.

Application screenshot

Get in touch

If you are having any problems with the application or want to raise any question, connected with the project, you are welcome to contact us via our mailing list.

Latest version

The release versions, in form of binary distributions, are available on the release page.

Running application

Navigate to the release tab and pick the latest stable release. We provide binary distribution for each release (packed as .zip). For Windows, there's also an installation wizard. When the application is unpacked, on Windows simply double click the application icon, located in the bin folder. Linux users will have to navigate to the bin folder and run the shell script located there.

Contribute

If you would like to contribute, you are welcome to take a look at the Issues section and grab any open, unassigned ticket. We have marked the issues that are friendly for the new contributors with the green label "community friendly". There are of course many other ways to help, if you are not interested in coding. You may test the application and submit bug reports or ideas for improvements. You can also contribute by expanding our wiki or advertising the project. Please also take a look at our contribute section, to get more information.

Keywords

LaTeX, Open Source, Java, NetBeans Platform, remote collaboration

open-latex-studio's People

Contributors

andyzen619 avatar aqatl avatar gabofdc avatar glandre avatar greghnz avatar hudsongeovane avatar jinhubs avatar kalkolberg avatar klhes avatar labelpm avatar sabbir044 avatar sebbrudzinski avatar stefansbv avatar whitehsu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

open-latex-studio's Issues

Appliction splash screen design

Currently, the application uses default NetBeans platform splash screen. We should design our own splash screen and show them to the users while the editor is loading.

Add ability to set path to LaTeX distribution

Currently application assumes, that the path to the pdflatex will be set as environment variable. That is OK, however we should also provide users with an ability to set custom path. If no custom path is selected, we can use the old approach as default.

Open last file upon application startup

When user opens the application, the last file that was worked on could get automatically opened. If the file does not exist anymore or if it's the first run, simply do not display anything.

PDF preview

The editor should allow side-by-side preview of the currently edited document. A PDF file should be displayed and updated as the changes to the file are made. Optionally, add the ability to hide the preview.

Auto-sync files to Dropbox

Currently to save files to Dropbox, user has got to manually trigger the action, by selecting "Save progress" action in menu. We could add an ability to enable auto-sync file every specified amount of time.

Overwrite File feature

The Open-LaTeX Studio doesn't have an overwrite feature for the pdf files generated by the user. Overwrite feature must have a pop-up warning to warn users that saving the file with the same File name in the directory will overwrite the existing pdf. This pop-up warning will also help users from accidentally overwriting their files.

Incorrect labels for Open file window

Description:
The Open file window does not have the correct labels. It can be mistaken for Save file window thus it can confuse the user.

Steps to Recreate:

  1. Open LaTex Studio
  2. Navigate to menu bar File > Open File

Expected Result:
The Open File window have the correct labels

Actual Result:
The Open File window have incorrect labels

Screenshot:
Windows 7
image

Linux - Ubuntu 14.04.2
image

The title of the document in the Text Editor doesn't update when changes are made and saved

Description:
The title of the document in the Text editor window doesn't update when the working file is saved or updated in a new document.

Steps to Recreate:

  1. Open LaTex Studio
  2. Open an Existing Document
  3. Make Changes to the Document
  4. Save the updated document using a new name

Expected Result:
The title of the document in the Text editor window reflects the file name of the document saved

Actual Result:
The title of the document in the Text editor window does not reflect the file name of the document saved

Screenshot:
Windows 7 and Linux - Ubuntu 14.04.2
image
Make changes to the document and save the document
image
image
The title in the Text editor window of the new document saved does not reflect the correct file name
image

Add some LaTeX templates and ability to use them in Open LaTeX Studio

As a part of this ticket we should first create some sample LaTeX templates - for example for articles, letters, books, CVs and add them to the code repository. We should then allow to load such templates in the Open LaTeX Studio. This should be exposed as an option in the File menu (perhaps named Open template).

Syntax highlight

The editor should recognise LaTeX syntax and highlight the code

Notify about unsaved changes

In case the user is working on some certain file, we should display an information about whether the file is in a dirty state or no (ie. if it has been saved since last edit). In case the file has been edited, but not saved, we might either make the file name in the editr tab bold or add an asterix sign to the file name (this seems to be current convention in most text / code editors).

Customization: Add ability to pick colors for syntax highlight

Open LaTeX Studio currently uses default color scheme for syntax highlight. We should make it possible for users to change that scheme to their preference. This should be exposed in the Tools -> Options window and should make it possible to use color picker for certain types of tokens - comments, keywords, etc...

Able to browse to pages that do not exist

In the PDF preview, it is possible to browse to the pages that do not exists. This should not be posssible and ideally, the buttons should get deactivated, when the next/previous page does not exist.

Add "Save As" to the file menu

Currently the save button always works as "save as", meaning that the user is forced to pick a location each time they want to save their changes. We should adjust this, so the save button saves the file that is currently worked on and the new "save as" option works as current "save".

The Math symbol-Integral sign is not being displayed in the pdf preview window

Description:
The PDF preview window doesn't display the integral sign. When the tex file generates a PDF, the integral sign is displayed.

Steps to Recreate:

  1. Open LaTex Studio
  2. Open Existing Document
  3. type \usepackage{amsmath} in the preamble section of the document
  4. At the body of the document type
    \begin{equation_}
    x = \int^0_5 y^2 +7
    \end{equation_}

Expected Result:
The pdf preview window will display the whole equation including the integral sign

Actual Result:
The pdf preview window did not display the integral sign to complete the equation

Screenshot:
Windows 7
image
In the generated PDF the integral sign is displayed.
image

New File feature

New File feature allows the user to create a new file to work on.

@sebbrudzinski I would like to know your thoughts regarding this feature and when a user creates a new file where would this file be opened, will it be opened on the current working document or a new tab in the text editor will be added?

Add ability to wrap lines

Wrapping lines in the editor should be optional and disabled by default. It should be surfaced as an option in some general settings.

Undo and Redo Button Feature

The Open-LaTeX-Studio has a Undo and Redo features but these feature only works between the code changes in the working document. An improve Undo and Redo feature will allow the user to undo/redo changes within the application. For example, User opens "Document A", then the user opens another document named "Document B". The current working document is the "Document B" when the user clicks the Undo button the current working document must revert back to "Document A". While clicking the redo button will revert the current working document to "Document B"

PDF preview window doesn't update after clicking the Undo/Redo button

Description:
PDF preview window doesn't update after clicking the Undo/Redo button

Steps to Recreate:

  1. Open LaTex Studio
  2. Open a document to edit
  3. Make changes to the document
  4. Click the undo button

Expected Result:
The PDF preview window must be identical on the text displayed or written in the text editor window after clicking the Undo/Redo button

Actual Result:
The PDF preview window isn't identical on the text displayed or written in the text editor window after clicking the Undo/Redo button

Affected Environment:
Windows 7
Linux - Ubuntu 14.04.2

Screenshot:
Use welcome.tex to demonstrate the functionality of the undo button and make changes to the word "Welcome"
image
Delete the "come" in "Welcome"
image
After clicking the undo button, the word "Wel" changed into "Welcome" which is the working as expected. While in the pdf preview window the word "Wel" didn't change
image

Unable to Save file

Description:
The user is unable to save a new file from the application. A dialog box with the message "File not found" is displayed.

Steps to Recreate:

  1. Open Open-LaTeX-Studio
  2. Save the Welcome.tex document
  3. Give a new file name to the file (Name which still doesn't used in the current directory)
  4. Click save button

Expected Result:
The file is saved inside the directory selected

Actual Result:
A dialog box appears informing the user that the file name specified can't be found, thus saving the file is unsuccessful

Affected Environment:
Windows 7
Linux - Ubuntu 14.04

Screenshots:
11

22

Comment out selected part of tex code

Add a new menu option in the "Edit" section, that will allow to comment/uncomment currently selected part of the tex source code. A keyboard shortcut should be created to allow these operations as well.

Better UI for Dropbox revisions

When opening a file from the Dropbox account, a new window will become available at the bottom of the application, containing a list of dropbox revision. Currently the revision is represented as a long String, containing basic information about revision: id, date modified, size... it would be preferable to present the data in some kind of a table and make it more obvious, that double click will open a window with that revision.

Auto discovery of LaTeX distribution

On Windows it is currently required to point the application to the LaTeX distribution directory in the application settings. This can be improved by adding some basic auto discovery of installed LaTeX distribution, in case nothing has been set in the application settings. The user settings should of course always have priority over auto-discovery.

Adjust save/save as icon to look alike

The save and save as options should have icons that look similar to each other. Preferably, it should tbe the same icon, but with some small mark added to distinguish one from another (eg. adding a pen in front or a green plus sign).

PDF preview window does not match the text in the Text Editor window

Description:
The pdf preview windows does not match the text in the Text Editor window.

Steps to Recreate:

  1. Open LaTex Studio
  2. Open a document to edit or update
  3. Type "<" and ">" without the quotation marks

Expected Result:
The pdf preview window should display both "<" and ">" correctly

Actual Result:
The pdf preview windows displayed and inverted "!" and "?"

Screenshot:
Windows 7
image

Linux - Ubuntu 14.04.2
image

Remember last path

When a path is chosen one time (e.g., when saving a .tex file, or changing the LaTeX distribution directory) it could be remembered for the next time, so that the user saves time if he/she wants to save a new document in the directory previously used.

Elegant compilation failures logging

The editor should provide a tab, where compilation logs could be displayed. In case there was a compilation failure, editor should provide a link that brings user to the line, where the error was found.

Fix checkstyle errors

Checkstyle plugin has already been integrated with the build. We should now fix the issues that it is currently reporting. The checkstyle plugin can be run using the ant target, called "checkstyle". In NetBeans, this can be achieved right-clicking on the Important Files -> Build Script and selecting Run target -> checkstyle. The report will be generated in the Project directory and will be called "checkstyle-result"

Improve setting LaTeX distribution path, by verifying whether pdflatex is present in the given directory

Open LaTeX Studio makes extensive use of the pdflatex tool. This means that the usage of the editor is only possible if Open LateX Studio has got access to this tool. It is possible to set the path to the LaTeX distrubution (Tools -> options -> LaTeX), but this path is not verified in any way. We should verify the path pointed by the user and notify them, if the selected path does not contain pdflatex tool.

Add timestamps to logs

Currently the editor logs do not provide any time or date with the entries. We should add a simple timestamp, that would preceed every entry in the logs.

Compile and build projects

The editor should allow to compile and build projects, using the TeX version, to which user has pointed the application. The build status should be logged in a separate tab.

Add "View revision" button to dropbox revisions table

Currently, the only way to view a dropbox revision is to double-click on the revision we want to view. It may not be clear for the users, that double click will show them the revision, therefore as an additional option we should expose a button, that says "view revision". A single click on the button should open the revision.

Support different encodings e.g. UTF-8

When I open tex file on Windows, I see bad char encoding. File is saved in UTF-8, but Open-LaTeX-Studio use another encoding.
It should be possible to change encoding.

P.S. My first line in tex file look like this:

% !TeX encoding = UTF-8

Application GUI

GUI should be built using the NetBeans Platform framework. The main screen should be split into 3 parts: project structure tree, editing space and live preview. The most often used options should be surfaced somewhere on the main screen. The GUI should be simple and intuitive, so even less experienced users can use the editor without bigger problems.

User is able to open a file that doesn't exist

Description:
User is able to open a file that doesn't exist.

Steps to Recreate:

  1. Open Open-LaTex-Studio
  2. Navigate to File>Open File
  3. Open a file that doesn't exist

Expected Result:
A pop up warning to tell the user that the specified file doesn't exist and returns the user to the Open file window

Actual Result:
The user is able to open a file that doesn't exist.

Affected Environment:
Windows 7
Linux - Ubuntu 14.04.2

Screenshots:
Update File is the only .tex file in this folder and Test File is being opened even though it doesn't exist
image
FileNotFoundException
image
After Clicking the cancel button from the FileNotFoundException, the non-existing file is opened and ready to use
image

Integrate checkstyle plugin with the build

Since more and more contributors are eager to join the project, it is a good time to start thinking about the code standards in the Open LaTeX Studio. Checkstyle plugin is a perfect tool to enforce some coding rules within the project. More references:
http://checkstyle.sourceforge.net/
http://checkstyle.sourceforge.net/anttask.html

The plugin should scan all the java classes within the project and fail the build, in case any checkstyle rule fails (this is the default behaviour for checkstyle).

We may consider adjusting the rules at the later point of time - this is not a part of this ticket. The only thing to do is to integrate the project build with the checkstyle plugin.

Occasional IOException having unbuildable code in editor

The editor randomly shows IOException, when the code cannot be built. The stracktrace is shown below. We should handle this somehow.

java.io.IOException: Error: End-of-File, expected line at org.apache.pdfbox.pdfparser.BaseParser.readLine(BaseParser.java:1535) at org.apache.pdfbox.pdfparser.PDFParser.parseHeader(PDFParser.java:320) at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:177) at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1214) at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1181) at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1152) [catch] at latexstudio.editor.pdf.PDFService.getPDFPage(PDFService.java:27) at latexstudio.editor.pdf.PDFDisplay.drawPreviewOnJPanel(PDFDisplay.java:24) at latexstudio.editor.pdf.PDFPreviewRefresher.drawPreview(PDFPreviewRefresher.java:48) at latexstudio.editor.pdf.PDFPreviewRefresher.run(PDFPreviewRefresher.java:35) at java.lang.Thread.run(Thread.java:745)

Code completion

The editor should allow auto code-completion, similar to what is present in various IDEs. A list of matching commands should be displayed as the user types the code. When no matches are found or the command has been finished, the list should dissapear.

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.