Comments (17)
Hi Karl (and Harish),
Many thanks indeed for writing, and thanks for providing such a clear example of what you would like.
This kind of enhancement has been on my mind for a while, and your proposal makes a lot of sense. I'll do some experimentation, and let you know if I hit any test cases that cause confusion. I'll label this as an enhancement, and report back as and when I have questions.
Best
Chris
from latexindent.pl.
Thanks Chris for taking my request into account.
BTW this time Harish is not involved :-)
Best,
Karl
from latexindent.pl.
No problem :) I included Harish as he wrote to me in a separate email and
referenced this request :) I'll be back in touch about this.
On Sunday, 27 March 2016, karlkoeller [email protected] wrote:
Thanks Chris for taking my request into account.
BTW this time Harish is not involved :-)
Best,
Karl—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#44 (comment)
from latexindent.pl.
Dear Karl and Chris,
I didn't find a favourite button or something similar to support the
feature request in git hub. Since I didn't want to clutter the main thread,
I wrote a separate email to Chris requesting him to put priority to the
feature. :) That feature is really more wanted IMHO. Hope you guys don't
mind me nagging here :)
On Mon, Mar 28, 2016 at 1:03 AM, Chris Hughes [email protected]
wrote:
No problem :) I included Harish as he wrote to me in a separate email and
referenced this request :) I'll be back in touch about this.On Sunday, 27 March 2016, karlkoeller [email protected] wrote:
Thanks Chris for taking my request into account.
BTW this time Harish is not involved :-)
Best,
Karl—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
<
#44 (comment)—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
#44 (comment)
with regards
Dr. Harish Kumar
Dept. of Physics
Pondicherry Engineering College
Puducherry 605 014
Ph: 0413 2655281-286 (Extn: 646)
Residence:
Dr. Harish Kumar
29 (New No.) I Main Cluny Road
Avvai Nagar, Lawspet
Puducherry 605 008
Ph: 0413 2253652, 9443052957
from latexindent.pl.
Hi Karl,
Thanks again for raising this issue, and apologies for the delay -- I've spent the last year developing v3.0, which is released now (hoorah!) and hope to tackle your issue as one of the next priorities.
Can I just check/confirm: in situations where a multicolumn
statement exists, you'd like the option to be able to group columns in alignment with it. Does the following YAML switch make sense?
lookForAlignDelims:
tabular:
delims: 1
alignDoubleBackSlash: 1
spacesBeforeDoubleBackSlash: 2
multicolumnGrouping: 1 %<!---------------- new bit!
Best
Chris
from latexindent.pl.
from latexindent.pl.
Hi both,
For reference, development of this feature is happening on https://github.com/cmhughes/latexindent.pl/tree/feature/multicolumnGrouping
I've made some progress, but a few issues remain. I'll post once it's ready to test at your end.
Best
Chris
from latexindent.pl.
Hi @karlkoeller and @harishkumarholla ,
I believe I've got a working version on the branch: https://github.com/cmhughes/latexindent.pl/tree/feature/multicolumnGrouping and I believe it's ready for your review.
I've put a few demonstrations below, and would be very grateful indeed for your feedback! Do let me know if this sounds similar to what you were hoping for, and of course, do let me know if I've misunderstood!
Best
Chris
PS: my apologies for the delay on this one -- Version 3.0 took a long time to develop; hopefully, in the future, these types of things will take less time to resolve/implement. Thanks for your patience!
The starting point for each of the following demonstrations is the file containing Karl's original table:
\begin{table}[h]
\caption{Muuntajan nimellisarvot ja ylajannitepuolelta mitatut arvot}
\centering
\begin{tabular}{r@{\hspace{2pt}}c@{\hspace{2pt}}lr@{\hspace{2pt}}c@{\hspace{2pt}}lr@{\hspace{2pt}}c@{\hspace{2pt}}l}
\toprule
\multicolumn{3}{l}{Nimellisarvot}&\multicolumn{3}{l}{Tyhjakayntikoe}&\multicolumn{3}{l}{Oikosulkukoe}\\ % & \multicolumn{40}{1}{something}
\midrule
$S_N$&$=$&$\SI{1000}{\kV\A}$&$U_0$&$=$&$U_{N1}$&$U_k$&$=$&$\SI{360}{\V}$\\
$U_{N1}$&$=$&$\SI{6000}{V}$&$I_0$&$=$&$\SI{1.67}{\ampere}$&$I_k$&$=$&$I_{N1}$\\
$U_{N2}$&$=$&$\SI{400}{\volt}$&$P_0$&$=$&$\SI{1550}{\watt}$&$P_k$&$=$&$\SI{8200}{\W}$\\
$f_N$&$=$&$\SI{50}{\hertz}$&&\\
\bottomrule
\multicolumn{6}{l}{Nimellisarvot}&\multicolumn{3}{l}{Oikosulkukoe}\\ % & \multicolumn{40}{1}{something}
\multicolumn{3}{l}{Nimellisarvot}&\multicolumn{3}{l}{Tyhjakayntikoe}&\multicolumn{3}{l}{Oikosulkukoe}\\ % & \multicolumn{40}{1}{something}
\multicolumn{6}{l}{Nimellisarvot}&more&text&here\\ % & \multicolumn{40}{1}{something}
\end{tabular}
\end{table}
demonstration 1
Using
lookForAlignDelims:
tabular:
multiColumnGrouping: 1
alignRowsWithoutMaxDelims: 1
then the following output is obtained; note that the multicolumn
grouping is in effect, and also that the row that does not contain the maximum number of ampersands has been aligned.
\begin{table}[h]
\caption{Muuntajan nimellisarvot ja ylajannitepuolelta mitatut arvot}
\centering
\begin{tabular}{r@{\hspace{2pt}}c@{\hspace{2pt}}lr@{\hspace{2pt}}c@{\hspace{2pt}}lr@{\hspace{2pt}}c@{\hspace{2pt}}l}
\toprule
\multicolumn{3}{l}{Nimellisarvot} & \multicolumn{3}{l}{Tyhjakayntikoe} & \multicolumn{3}{l}{Oikosulkukoe} \\ % & \multicolumn{40}{1}{something}
\midrule
$S_N$ & $=$ & $\SI{1000}{\kV\A}$ & $U_0$ & $=$ & $U_{N1}$ & $U_k$ & $=$ & $\SI{360}{\V}$ \\
$U_{N1}$ & $=$ & $\SI{6000}{V}$ & $I_0$ & $=$ & $\SI{1.67}{\ampere}$ & $I_k$ & $=$ & $I_{N1}$ \\
$U_{N2}$ & $=$ & $\SI{400}{\volt}$ & $P_0$ & $=$ & $\SI{1550}{\watt}$ & $P_k$ & $=$ & $\SI{8200}{\W}$ \\
$f_N$ & $=$ & $\SI{50}{\hertz}$ & & \\
\bottomrule
\multicolumn{6}{l}{Nimellisarvot} & \multicolumn{3}{l}{Oikosulkukoe} \\ % & \multicolumn{40}{1}{something}
\multicolumn{3}{l}{Nimellisarvot} & \multicolumn{3}{l}{Tyhjakayntikoe} & \multicolumn{3}{l}{Oikosulkukoe} \\ % & \multicolumn{40}{1}{something}
\multicolumn{6}{l}{Nimellisarvot} & more & text & here \\ % & \multicolumn{40}{1}{something}
\end{tabular}
\end{table}
demonstration 2
Using
lookForAlignDelims:
tabular:
alignDoubleBackSlash: 0
spacesBeforeDoubleBackSlash: 0
multiColumnGrouping: 1
alignRowsWithoutMaxDelims: 1
we obtain the following; it's the same as in demonstration 1, except \\
have not been aligned:
\begin{table}[h]
\caption{Muuntajan nimellisarvot ja ylajannitepuolelta mitatut arvot}
\centering
\begin{tabular}{r@{\hspace{2pt}}c@{\hspace{2pt}}lr@{\hspace{2pt}}c@{\hspace{2pt}}lr@{\hspace{2pt}}c@{\hspace{2pt}}l}
\toprule
\multicolumn{3}{l}{Nimellisarvot} & \multicolumn{3}{l}{Tyhjakayntikoe} & \multicolumn{3}{l}{Oikosulkukoe}\\ % & \multicolumn{40}{1}{something}
\midrule
$S_N$ & $=$ & $\SI{1000}{\kV\A}$ & $U_0$ & $=$ & $U_{N1}$ & $U_k$ & $=$ & $\SI{360}{\V}$\\
$U_{N1}$ & $=$ & $\SI{6000}{V}$ & $I_0$ & $=$ & $\SI{1.67}{\ampere}$ & $I_k$ & $=$ & $I_{N1}$\\
$U_{N2}$ & $=$ & $\SI{400}{\volt}$ & $P_0$ & $=$ & $\SI{1550}{\watt}$ & $P_k$ & $=$ & $\SI{8200}{\W}$\\
$f_N$ & $=$ & $\SI{50}{\hertz}$ & &\\
\bottomrule
\multicolumn{6}{l}{Nimellisarvot} & \multicolumn{3}{l}{Oikosulkukoe}\\ % & \multicolumn{40}{1}{something}
\multicolumn{3}{l}{Nimellisarvot} & \multicolumn{3}{l}{Tyhjakayntikoe} & \multicolumn{3}{l}{Oikosulkukoe}\\ % & \multicolumn{40}{1}{something}
\multicolumn{6}{l}{Nimellisarvot} & more & text & here\\ % & \multicolumn{40}{1}{something}
\end{tabular}
\end{table}
demonstration 3
Using
lookForAlignDelims:
tabular:
alignDoubleBackSlash: 0
spacesBeforeDoubleBackSlash: 3
multiColumnGrouping: 1
alignRowsWithoutMaxDelims: 1
the following output is obtained; it's similar to demonstration 2, except 3 spaces have been added before \\
\begin{table}[h]
\caption{Muuntajan nimellisarvot ja ylajannitepuolelta mitatut arvot}
\centering
\begin{tabular}{r@{\hspace{2pt}}c@{\hspace{2pt}}lr@{\hspace{2pt}}c@{\hspace{2pt}}lr@{\hspace{2pt}}c@{\hspace{2pt}}l}
\toprule
\multicolumn{3}{l}{Nimellisarvot} & \multicolumn{3}{l}{Tyhjakayntikoe} & \multicolumn{3}{l}{Oikosulkukoe} \\ % & \multicolumn{40}{1}{something}
\midrule
$S_N$ & $=$ & $\SI{1000}{\kV\A}$ & $U_0$ & $=$ & $U_{N1}$ & $U_k$ & $=$ & $\SI{360}{\V}$ \\
$U_{N1}$ & $=$ & $\SI{6000}{V}$ & $I_0$ & $=$ & $\SI{1.67}{\ampere}$ & $I_k$ & $=$ & $I_{N1}$ \\
$U_{N2}$ & $=$ & $\SI{400}{\volt}$ & $P_0$ & $=$ & $\SI{1550}{\watt}$ & $P_k$ & $=$ & $\SI{8200}{\W}$ \\
$f_N$ & $=$ & $\SI{50}{\hertz}$ & & \\
\bottomrule
\multicolumn{6}{l}{Nimellisarvot} & \multicolumn{3}{l}{Oikosulkukoe} \\ % & \multicolumn{40}{1}{something}
\multicolumn{3}{l}{Nimellisarvot} & \multicolumn{3}{l}{Tyhjakayntikoe} & \multicolumn{3}{l}{Oikosulkukoe} \\ % & \multicolumn{40}{1}{something}
\multicolumn{6}{l}{Nimellisarvot} & more & text & here \\ % & \multicolumn{40}{1}{something}
\end{tabular}
\end{table}
demonstration 4
Using
lookForAlignDelims:
tabular:
multiColumnGrouping: 0
alignRowsWithoutMaxDelims: 1
then the output is as follows; note that the &
have been aligned, even in the multicolumn
rows, but that the cells have not been 'grouped' underneath the multicolumn
commands:
\begin{table}[h]
\caption{Muuntajan nimellisarvot ja ylajannitepuolelta mitatut arvot}
\centering
\begin{tabular}{r@{\hspace{2pt}}c@{\hspace{2pt}}lr@{\hspace{2pt}}c@{\hspace{2pt}}lr@{\hspace{2pt}}c@{\hspace{2pt}}l}
\toprule
\multicolumn{3}{l}{Nimellisarvot} & \multicolumn{3}{l}{Tyhjakayntikoe} & \multicolumn{3}{l}{Oikosulkukoe} \\ % & \multicolumn{40}{1}{something}
\midrule
$S_N$ & $=$ & $\SI{1000}{\kV\A}$ & $U_0$ & $=$ & $U_{N1}$ & $U_k$ & $=$ & $\SI{360}{\V}$ \\
$U_{N1}$ & $=$ & $\SI{6000}{V}$ & $I_0$ & $=$ & $\SI{1.67}{\ampere}$ & $I_k$ & $=$ & $I_{N1}$ \\
$U_{N2}$ & $=$ & $\SI{400}{\volt}$ & $P_0$ & $=$ & $\SI{1550}{\watt}$ & $P_k$ & $=$ & $\SI{8200}{\W}$ \\
$f_N$ & $=$ & $\SI{50}{\hertz}$ & & \\
\bottomrule
\multicolumn{6}{l}{Nimellisarvot} & \multicolumn{3}{l}{Oikosulkukoe} \\ % & \multicolumn{40}{1}{something}
\multicolumn{3}{l}{Nimellisarvot} & \multicolumn{3}{l}{Tyhjakayntikoe} & \multicolumn{3}{l}{Oikosulkukoe} \\ % & \multicolumn{40}{1}{something}
\multicolumn{6}{l}{Nimellisarvot} & more & text & here \\ % & \multicolumn{40}{1}{something}
\end{tabular}
\end{table}
demonstration 5
Using
lookForAlignDelims:
tabular:
multiColumnGrouping: 0
alignRowsWithoutMaxDelims: 0
then the following output is obtained, which is pretty much 'the old way'!
\begin{table}[h]
\caption{Muuntajan nimellisarvot ja ylajannitepuolelta mitatut arvot}
\centering
\begin{tabular}{r@{\hspace{2pt}}c@{\hspace{2pt}}lr@{\hspace{2pt}}c@{\hspace{2pt}}lr@{\hspace{2pt}}c@{\hspace{2pt}}l}
\toprule
\multicolumn{3}{l}{Nimellisarvot}&\multicolumn{3}{l}{Tyhjakayntikoe}&\multicolumn{3}{l}{Oikosulkukoe}\\ % & \multicolumn{40}{1}{something}
\midrule
$S_N$ & $=$ & $\SI{1000}{\kV\A}$ & $U_0$ & $=$ & $U_{N1}$ & $U_k$ & $=$ & $\SI{360}{\V}$ \\
$U_{N1}$ & $=$ & $\SI{6000}{V}$ & $I_0$ & $=$ & $\SI{1.67}{\ampere}$ & $I_k$ & $=$ & $I_{N1}$ \\
$U_{N2}$ & $=$ & $\SI{400}{\volt}$ & $P_0$ & $=$ & $\SI{1550}{\watt}$ & $P_k$ & $=$ & $\SI{8200}{\W}$ \\
$f_N$&$=$&$\SI{50}{\hertz}$&&\\
\bottomrule
\multicolumn{6}{l}{Nimellisarvot}&\multicolumn{3}{l}{Oikosulkukoe}\\ % & \multicolumn{40}{1}{something}
\multicolumn{3}{l}{Nimellisarvot}&\multicolumn{3}{l}{Tyhjakayntikoe}&\multicolumn{3}{l}{Oikosulkukoe}\\ % & \multicolumn{40}{1}{something}
\multicolumn{6}{l}{Nimellisarvot}&more&text&here\\ % & \multicolumn{40}{1}{something}
\end{tabular}
\end{table}
from latexindent.pl.
You've got it, Chris!
Demonstration 1 is exactly what I asked for. Can this be put in the defaults?
Thanks again for your great work,
Karl
from latexindent.pl.
Many thanks, Karl :) I've got a fair bit more testing to do, with some interesting test cases from the tex exchange. Will post back with an update, hopefully soon.
Best
Chris
from latexindent.pl.
Hi Karl,
Thanks again for your feedback :)
I believe that this feature is nearly ready to go, I've put it through quite a few tests, and it seems to be working as expected.
I've got defaultSettings.yaml
set up so that
multiColumnGrouping: 0
alignRowsWithoutMaxDelims: 1
which means that the default output would be as in demonstration 4
from the above. Each user can, of course specify multiColumnGrouping
for each of the code blocks that they detail in lookForAlignDelims
, for example:
lookForAlignDelims:
tabular:
delims: 1
alignDoubleBackSlash: 1
spacesBeforeDoubleBackSlash: 2
multiColumnGrouping: 1
alignRowsWithoutMaxDelims: 1
Does this sound ok?
Best wishes
Chris
from latexindent.pl.
I would prefer demonstration 1
to go into the default defaultSettings.yaml
, since in my opinion it makes more sense.
But even if you don't change your mind, this is a great improvement!
Thanks, my friend
Karl
from latexindent.pl.
Just to touch base, Karl: am still working on this -- I'm pulling quite a few examples from the tex exchange, some of which are highlighting different, subtle issues.
I won't be able to work on it this week, but will pick it up from next weekend. It is my top latexindent priority :)
Best
Chris
from latexindent.pl.
Thanks again for this suggestion, Karl! As of #68, it is released as Version 3.2.
I have also uploaded it to ctan today (19th June, 2017).
Best wishes
Chris
from latexindent.pl.
Great !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Thank you very much.
Best,
Karl
from latexindent.pl.
Hi @cmhughes,
Thank you for a very useful program! This is what I've been missing all these years doing Latex and that exists in most other coding languages. Your latexindex.exe works like a charm together with TeXstudio and you have excellent documentation!
However, I encountered an issue, whenever my table headings becomes longer then the table items their Ampersand aligns with huge spaces in between my table items like this:
\begin{table}[htbp]
\centering
\caption{Add caption}
\begin{tabular}{rrrrrrr}
\toprule
\multicolumn{1}{c}{Expiry} & Tenor & \multicolumn{1}{c}{$\Delta_{\text{call},10}$} & \multicolumn{1}{c}{$\Delta_{\text{call},25}$} & \multicolumn{1}{c}{$\Delta_{\text{call},50}$} & \multicolumn{1}{c}{$\Delta_{\text{call},75}$} & \multicolumn{1}{c}{$\Delta_{\text{call},90}$} \\
\midrule
30-03-2016 & 1D & -2E-14 & -2E-14 & 3E-14 & -8E-14 & -7E-14 \\
05-04-2016 & 1W & -4E-15 & -1E-14 & 1E-14 & -6E-15 & -1E-14 \\
12-04-2016 & 2W & 3E-15 & 1E-14 & 1E-14 & -3E-14 & -2E-14 \\
27-04-2016 & 1M & -2E-16 & -2E-15 & -1E-14 & -7E-15 & -2E-15 \\
27-05-2016 & 2M & 2E-15 & 7E-15 & 2E-15 & -4E-15 & 4E-15 \\
28-06-2016 & 3M & -4E-15 & 3E-16 & -4E-15 & -2E-15 & -8E-15 \\
28-09-2016 & 6M & 1E-16 & 3E-16 & 0 & -2E-15 & -5E-15 \\
28-12-2016 & 9M & 1E-16 & 1E-15 & 2E-15 & 8E-15 & -3E-15 \\
29-03-2017 & 1Y & 2E-16 & 2E-15 & 5E-15 & 1E-14 & 2E-14 \\
27-03-2018 & 2Y & 1E-15 & 7E-16 & -2E-15 & 3E-16 & 5E-15 \\
27-03-2019 & 3Y & -2E-16 & 1E-15 & -6E-16 & -2E-15 & -4E-15 \\
27-03-2020 & 4Y & -2E-16 & 1E-16 & 5E-16 & -2E-16 & -8E-15 \\
29-03-2021 & 5Y & 2E-16 & -4E-16 & 0 & -2E-15 & -2E-15 \\
\bottomrule
\end{tabular}%
\label{tab:addlabel}%
\end{table}%
The settings in the .yaml is:
lookForAlignDelims:
tabular:
delims: 1
alignDoubleBackSlash: 1
spacesBeforeDoubleBackSlash: 1
multiColumnGrouping: 0
alignRowsWithoutMaxDelims: 0
spacesBeforeAmpersand: 1
spacesAfterAmpersand: 1
justification: "right"
Is it possible for latexindent to ignore table headings? Then it would be very nice like this:
\begin{tabular}{rrrrrrr}
\toprule
30-03-2016 & 1D & -2E-14 & -3E-14 & 1E-14 & -8E-14 & -1E-14 \\
05-04-2016 & 1W & -0E-15 & -4E-14 & 2E-14 & -5E-15 & -5E-14 \\
12-04-2016 & 2W & 9E-15 & 5E-14 & 3E-14 & -3E-14 & -6E-14 \\
27-04-2016 & 1M & -8E-16 & -6E-15 & -4E-14 & -4E-15 & -7E-15 \\
27-05-2016 & 2M & 7E-15 & 7E-15 & 5E-15 & -4E-15 & 8E-15 \\
28-06-2016 & 3M & -6E-15 & 8E-16 & -6E-15 & -3E-15 & -1E-15 \\
28-09-2016 & 6M & 5E-16 & 9E-16 & 0 & -2E-15 & -2E-15 \\
28-12-2016 & 9M & 4E-16 & 2E-15 & 7E-15 & 8E-15 & -3E-15 \\
29-03-2017 & 1Y & 3E-16 & 1E-15 & 8E-15 & 2E-14 & 4E-14 \\
27-03-2018 & 2Y & 2E-15 & 4E-16 & -9E-15 & 3E-16 & 5E-15 \\
27-03-2019 & 3Y & -1E-16 & 5E-15 & -1E-16 & -2E-15 & -6E-15 \\
27-03-2020 & 4Y & -9E-16 & 6E-16 & 3E-16 & -2E-16 & -7E-15 \\
29-03-2021 & 5Y & 8E-16 & -7E-16 & 0 & -2E-15 & -9E-15 \\
\bottomrule
\end{tabular}%
Best wishes,
Yang.
from latexindent.pl.
from latexindent.pl.
Related Issues (20)
- itemNames with figures HOT 9
- Indenting doesn't happen, on the opposite it !indents. HOT 4
- `CommaFinishesWithLineBreaks` in nested environments HOT 4
- Erroneous Indentation at Paragraph Start and Failure to Wrap First Sentence after `\item` HOT 3
- Add linebreak after `\par` HOT 2
- Could latexindent.pl provide appropriate spaces and text wraps before or after math operators? (sounds like many formatters doing for Python or C language) HOT 3
- Indentation in tabular* HOT 3
- Contextual `sentencesBeginWith`, semicolons, lowercase and `\paragraph` HOT 2
- Unknown error "���" HOT 21
- [Feature] More friendly support for CJK words (characters) HOT 18
- [latexindent.exe] -GCString switch cannot run normally HOT 2
- Exclude `table` and `tabular` from indentation HOT 3
- Feature Request: Support spreadtab block HOT 4
- can't run it, neither after `tlmgr` nor as a Perl script HOT 4
- Error "Can't open file" when using `-g` key with nontrivial path HOT 3
- [windows] conda installation fail due to perl version HOT 6
- Format tabular for fullwidth fonts HOT 2
- [Bug] Incorrect indentation amount when have a long config with tabualrray package HOT 4
- Can't find string terminator '"' error - bug? HOT 7
- the future of multirows in _tabularray_ package would let latexindent format the code incorrectly HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from latexindent.pl.