• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

cmhughes/latexindent.pl: Perl script to add indentation (leading horizontal spac ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

cmhughes/latexindent.pl

开源软件地址(OpenSource Url):

https://github.com/cmhughes/latexindent.pl

开源编程语言(OpenSource Language):

TeX 85.2%

开源软件介绍(OpenSource Introduction):

latexindent.pl

Build Status Build status Documentation Status pre-commit

latexindent logo

latexindent.pl is a perl script to indent (add horizontal leading space to) code within environments, commands, after headings and within special code blocks.

It has the ability to align delimiters in environments and commands, and can modify line breaks.

version

latexindent.pl, version 3.18, 2022-06-12

author

Chris Hughes (cmhughes)

example

A simple example follows; there are many more features available, detailed in full within the documentation.

Before:

\begin{one}
latexindent.pl adds leading
space to code blocks.
\begin{two}
It aims to beautify .tex, .sty
and .cls files. It is customisable
via its YAML interface.
\end{two}
\end{one}

After running

latexindent.pl myfile.tex

then you receive:

\begin{one}
	latexindent.pl adds leading
	space to code blocks.
	\begin{two}
		It aims to beautify .tex, .sty
		and .cls files. It is customisable
		via its YAML interface.
	\end{two}
\end{one}

tl;dr, a quick-start section is available for those short of time.

documentation

For complete details, please see:

getting started

perl users

You'll need

latexindent.pl
LatexIndent/*.pm
defaultSettings.yaml

in the same directory.

You'll need a few readily-available perl modules. Full details are given within the Appendix of the documentation; you might also like to see .travis.yml for Linux/MacOS users, and .appveyor.yml for Strawberry perl users.

Windows users without perl Windows users who do not have a perl installation might prefer to get
latexindent.exe
defaultSettings.yaml

latexindent.exe is a standalone executable file which does not require a perl installation. It is available at releases page of this repository and also from https://ctan.org/tex-archive/support/latexindent.

conda users If you use conda you'll only need
conda install latexindent.pl -c conda-forge

this will install the executable and all its dependencies (including perl) in the activate environment. You don't even have to worry about defaultSettings.yaml as it included too.

Important: the executable name is latexindent.pl (not latexindent).

Conda Version

docker users If you use latexindent via docker you'll only need
docker pull ghcr.io/cmhughes/latexindent.pl
docker run -v /path/to/local/myfile.tex:/myfile.tex --rm -it ghcr.io/cmhughes/latexindent.pl -s -w myfile.tex

pre-commit

You can use latexindent with the pre-commit framework by adding this to your .pre-commit-config.yaml:

  - repo: https://github.com/cmhughes/latexindent.pl.git
    rev: V3.18
    hooks:
      - id: latexindent

You can add a .latexindent.yaml to the root of the git repo to customize the behavior.

testing

A nice way to test the script is to navigate to the test-cases directory, and then run the command (on Linux/Mac -- sorry, a Windows test-case version is not available):

./test-cases.sh

important

This script may not work for your style of formatting; I highly recommend comparing the outputfile.tex to make sure that nothing has been changed (or removed) in a way that will damage your file.

I recommend using each of the following:

  • a visual check, at the very least, make sure that each file has the same number of lines
  • a check using latexdiff inputfile.tex outputfile.tex
  • git status myfile.tex

feature requests

I'm happy to review feature requests, but I make no promises as to if they will be implemented; if they can be implemented, I make no promises as to how long it will take to implement them, and in which order I do so -- some features are more difficult than others! Feel free to post on the issues page of this repository, but please do use the given issue template!

development model

I follow the development model given here: http://nvie.com/posts/a-successful-git-branching-model/ which means that latexindent.pl always has (at least) two branches:

main
develop

The main branch always contains the released version and develop contains the development version. When developing a new feature or bug fix, I typically use:

git checkout develop
git checkout -b feature/name-of-feature

and then I merge it into the develop branch using

git checkout develop
git merge feature/name-of-feature --no-ff

perl version

I develop latexindent.pl on Ubuntu Linux, using perlbrew; I currently develop on perl version v5.34.1

related projects

You might like to checkout the following related projects on github.

arara: GitHub stars

atom-beautify: GitHub stars

LaTeX-Workshop: GitHub stars

Neelfrost/dotfiles: GitHub stars

thank you

Thank you to the contributors to the project!

quotes

I find that the following quotes resonate with me with regards to my approach to latexindent.pl:

  • I want people to use Perl. I want to be a positive ingredient of the world and make my American history. So, whatever it takes to give away my software and get it used, that's great. Larry Wall
  • A common, brute-force approach to parsing documents where newlines are not significant is to read ... the entire file as one string ... and then extract tokens one by one, Christiansen & Torkington, Perl Cookbook, Section 6.16
  • Once you understand the power that regular expressions provide, the small amount of work spent learning them will feel trivial indeed Friedl, Mastering Regular Expressions, end of Chapter 1.
  • a problem speaks to them, and they have to solve it...and it becomes a hobby. But they keep coming back to it every now and then. They keep tinkering. It will never be finished...that's the point of a hobby, Westwood to Reacher in 'Make Me', Lee Child
  • Do the best you can until you know better. Then when you know better, do better. Maya Angelou

GitHub Actions

latexindent.exe is created and released by GitHub Actions; the file that controls this is available within the github/workflows directory of this repository, and you can track the actions on the actions page of this repository.

Batch latexindent.pl check Publish latexindent.exe Publish docker image

build status

I use both travis-ci (Linux) and AppVeyor (Windows) as continuous integration services to test latexindent.pl for a small selection of test cases for every commit (I use git to track changes in the many test cases listed in the test-cases directory); you can see which versions of perl are tested by travis-ci within .travis.yml. Additionally, GitHub actions performs checks on a selection of test cases on every commit.

Build Status Build status

changelog

changelog.md provides details of the history of the project.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap