Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
it-tricks [2021/10/01 17:55] popel [LaTeX, pdf] |
it-tricks [2024/05/23 09:58] (current) stepanek [Editors] |
* **vim**: Ondřej Bojar, Ruda Rosa, Milan Straka (C++ completion, Python completion, asynchronous make), ... | * **vim**: Ondřej Bojar, Ruda Rosa, Milan Straka (C++ completion, Python completion, asynchronous make), ... |
* to start learning vim, run the ''vimtutor'' command | * to start learning vim, run the ''vimtutor'' command |
* **emacs**: ? | * **emacs**: Jan Štěpánek |
* **nano**: | * **nano**: |
* **atom**: Martin Popel | |
* **IntelliJ IDEA**: Jonáš Vidra | * **IntelliJ IDEA**: Jonáš Vidra |
* **Kate**: Jonáš Vidra | * **Kate**: Jonáš Vidra |
* **Kile** (offline TeX editing): Anša Vernerová | * **PyCharm**: |
* **PyCharm**: Petr Bělohlávek | |
* **VS Code** (remote access, IDE - Python, C++, etc. completion, terminals): Peter Polák | * **VS Code** (remote access, IDE - Python, C++, etc. completion, terminals): Peter Polák |
| |
| |
===== LaTeX, pdf ===== | ===== LaTeX, pdf ===== |
* see also [[tex::triky]] and [[internal:publikace#collaborative-writing]] | * see also [[tex::triky]], [[internal:publikace#collaborative-writing]] and [[internal:thesis]] |
* [[http://mg.readthedocs.io/latexmk.html|latexmk]] can be used with ''-pdf -pvc'', so whenever you save a ''tex'' file, the corresponding ''pdf'' will be regenerated (and your pdf viewer will refresh). Other useful options are ''-interaction=nonstopmode -synctex=1'', see e.g. [[https://tex.stackexchange.com/questions/118489/what-exactly-is-synctex|synctex]] | * [[http://mg.readthedocs.io/latexmk.html|latexmk]] can be used with ''-pdf -pvc'', so whenever you save a ''tex'' file, the corresponding ''pdf'' will be regenerated (and your pdf viewer will refresh). Other useful options are ''-interaction=nonstopmode -synctex=1'', see e.g. [[https://tex.stackexchange.com/questions/118489/what-exactly-is-synctex|synctex]] |
* [[https://www.pdflabs.com/docs/pdftk-cli-examples/|pdftk]] for merging and splitting pdf files (and much more) from the command line | * [[https://www.pdflabs.com/docs/pdftk-cli-examples/|pdftk]] for merging and splitting pdf files (and much more) from the command line |
* If you need a pdf-a validator (e.g. for your thesis), you can use `/lnet/ms/projects/verapdf/checkpdf` in the ufal internal network, which is a wrapper for the verapdf tool. New versions of the specification of exact requirements for submitting theses at the Charles university (called a "profile") appear regularly at https://cuni.cz/UK-7987.html; by default, the tool uses version UK-7987-version1-custom8.xml . | * If you need a pdf-a validator (e.g. for your thesis), you can use `/lnet/ms/projects/verapdf/checkpdf` in the ufal internal network, which is a wrapper for the verapdf tool. New versions of the specification of exact requirements for submitting theses at the Charles university (called a "profile") appear regularly at https://cuni.cz/UK-7987.html; by default, the tool uses version UK-7987-version1-custom8.xml . |
| |
| ==== Faster LaTeX compilation ==== |
| * You should delete the packages you don't need from the preambule (not only for speed reasons). |
| * Include just the chapter (or section) you are currently working on, i.e. comment out the inclusion of other chapters or use ''\includeonly''. |
| * When separating e.g. each chapter into a separate file and each chapter starts on a new page, you can use ''\include{chapter.tex}'' instead of ''\input{chapter.tex}'', so the auxiliary files of the unchanged chapters from the previous compilation can speedup the compilation (see [[https://tex.stackexchange.com/questions/246/when-should-i-use-input-vs-include|details]]). |
| * You can use ''\includegraphics[draft]{...}'', which turns off rendering of images (which is usually a too high price for the speed). |
| * If you are using complex tikz pictures you can convert them first to pdf manually and include the pdfs, so they are not compiled again and again (or you can try the externalization library to do this automatically). |
| * And when compiling locally, you can use latexmk -pvc to automatically compile a given file whenever it is saved. This does not really speedup the compilation, but it allows you to have a screen split into the editor and pdf viewer (so you can simulate Overleaf GUI, possibly including the forward/inverse search using [[https://tex.stackexchange.com/questions/118489/what-exactly-is-synctex|synctex]]), so that you can continue working, while the compilation runs on background. |
===== TAR archive mounting ===== | ===== TAR archive mounting ===== |
If you work with data consisting of many small files, you **should** store them in tar archives to save inodes. There is a way to mount a tar archive to a specific directory in the simmilar way you mount ISO image. You can use the following wrapper script to //mount// (read-only) ARCHIVE to DIRECTORY: | If you work with data consisting of many small files, you **should** store them in tar archives to save inodes and use LUSTRE filesystem efficiently. There is a way to mount a tar archive to a specific directory in a similar way you would mount an ISO image. You can use this command to //mount// (read-only) ARCHIVE (possibly compressed) to DIRECTORY: |
| |
/opt/bin/tarmount -a ARCHIVE DIRECTORY | /opt/bin/tarmount ARCHIVE DIRECTORY |
| |
and //umount// when you finish your work: | and //umount// when you finish your work: |
| |
/opt/bin/tarmount DIRECTORY | /opt/bin/tarmount -u DIRECTORY |
| |
| If you mount your data in this way, there is only one //open// operation instead of thousands or millions of such operations when opening each file separately. This will positively affect runtime when your data is stored on the LUSTRE filesystem. |
| |
| Run the command with //--help// option to see instructions for more advanced usage. The original tool can be obtained [[https://github.com/mxmlnkn/ratarmount | here]]. |
| It can be installed as [[https://appimage.org | AppImage]]. |
| |
| ==== Practical usage notes ==== |
| - ''tarmount'' is based on FUSE. You need to do call the ''tarmount'' command on every node where you need to access the tarfile contents. If two jobs are running on the same node both of them will see the mounted content. |
| - if you finish your work you should always call ''tarmount -u DIRECTORY''. If you don't the directory will not become blocked for any subsequent attempts to ''tarmount'' anything on them and may be in a weird state indicated by many '?'s in output of the ''ls -al'' command. This can be solved by calling simple ''umount DIRECTORY'' |
| - The ''tarmount'' command creates a database in the directory where the ''ARCHIVE'' is stored. The database is not automatically deleted by ''tarmount -u''. It is however reused by any subsequent ''tarmount'' command called on the same ''ARCHIVE''. This may speed up access for all jobs using the same ''tarmount''ed archive across the cluster. |
| |
| |
You can also use the original tool called [[https://github.com/mxmlnkn/ratarmount | ratarmount]] directly through the link: | |
| |
/opt/bin/tarmounter | |
| |
===== Other ===== | ===== Other ===== |