Math & ScienceEquations on two columns

Information and discussion about LaTeX's math and science related features (e.g. formulas, graphs).
User avatar
Cham
Posts: 937
Joined: Sat Apr 02, 2011 4:06 pm

Equations on two columns

Post by Cham »

Can't we use centering tabs in LaTeX ?

I'm already using the tabto package, just for some very specific usages. But apparently, I can use it just to push things to the right, not to center items, and I'm not sure its working with equations.

Recommended reading 2024:

LaTeXguide.org • LaTeX-Cookbook.net • TikZ.org

NEW: TikZ book now 40% off at Amazon.com for a short time.

Cham
Posts: 937
Joined: Sat Apr 02, 2011 4:06 pm

Equations on two columns

Post by Cham »

Oh my God, is that possible ? I may have found a trivial solution using the mathclap command :

Code: Select all

\documentclass[12pt,letterpaper]{book}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\usepackage{showframe}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}

\begin{document}
	\begin{align}
		&\mathclap{x = y^2 - c + d + z^3,}
		&&\mathclap{z = x^3 + x - y^2.}
	\end{align}
Just another small line of text :
	\begin{align}
		&\mathclap{x -5 y + 3 = y^2,}
		&&\mathclap{y^2 = -\: x^2 + 4 - y^2 - x.}
	\end{align}
Yet another line :
	\begin{align}
		&\mathclap{A + B + E = b,}
		&&\mathclap{B - C = 0.}
	\end{align}
The global distribution of these equations is less ugly !

\end{document}
Here's a preview of a more complex document, using mathclap inside the align environment. The equations are centered around the blue lines, approximately. Take note that the point "." and the comma "," must be included inside the mathclap directive.
centering.jpg
centering.jpg (112.05 KiB) Viewed 8399 times
What do you think ?

Any problem with this, that I can't see for the moment ?

And what about the spacing between the blue lines ? Can it be adjusted ?
User avatar
Johannes_B
Site Moderator
Posts: 4182
Joined: Thu Nov 01, 2012 4:08 pm

Equations on two columns

Post by Johannes_B »

http://chat.stackexchange.com/transcrip ... 2#19534572

You didn't follow the discussion that was trying to solve your your problem? :-(


\mathclap puts its content in a box of zero width and centers it. Was my very first test, but it fails when an equation is very long. So once again, this is a manual thing.

Why is there no package for that? Apparently, no one had need for it so far. I suggest to reach to the maintainers via mail and present the problem as well as the motivation for doing so. They may know more about alternatives. Don't forget to link this discussion, they might be interested in what was discussed and presented so far.
The smart way: Calm down and take a deep breath, read posts and provided links attentively, try to understand and ask if necessary.
User avatar
Cham
Posts: 937
Joined: Sat Apr 02, 2011 4:06 pm

Equations on two columns

Post by Cham »

Johannes_B wrote:\mathclap puts its content in a box of zero width and centers it. Was my very first test, but it fails when an equation is very long. So once again, this is a manual thing.
In what way does it fail ?

I guess that a long equation could overlap on the second one, but then you may get the same with any double equations styles.

If an equation is very long, I wouldn't put it in a double equation line anyway.
Double equations aren't intended for long equations.

How could we define a new environment, using the solution I'm proposing ?
User avatar
Johannes_B
Site Moderator
Posts: 4182
Joined: Thu Nov 01, 2012 4:08 pm

Equations on two columns

Post by Johannes_B »

Code: Select all

\documentclass[12pt,letterpaper]{book}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\usepackage{showframe}
\usepackage{tabularx}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\newcommand{\dbleq}[2]{\begin{align}&\mathclap{#1}&&\mathclap{#2}\end{align}}
\begin{document}
\dbleq{x = y^2 - c + d + 12b + 17 c - 4f -(x^r)^2 z^3,}{y^2 = -\: x^2 + 4 - y^2 - x.}

Just another small line of text :
\dbleq{x -5 y + 3 = y^2,}{y^2 = -\: x^2 + 4 - y^2 - x.}
\end{document}
The smart way: Calm down and take a deep breath, read posts and provided links attentively, try to understand and ask if necessary.
User avatar
Cham
Posts: 937
Joined: Sat Apr 02, 2011 4:06 pm

Equations on two columns

Post by Cham »

Hehe !

It's evident that I wouldn"t present the first two equations in a double-equs line.

Like I said in my first message (on page 1), the double-equs line is used just for two small equations.

Thanks a lot for the macro. Should be usefull.

EDIT : But then, how do you add a label to a double-equs., using your macro ?

EDIT 2 : I guess we need to modify the macro like this (is that the right way to do it, for an optional label ?) :

Code: Select all

\newcommand{\dbleq}[3]{\begin{align}&\mathclap{#1}&&\mathclap{#2}{#3}\end{align}}
I suspect that for an optional label, the command should be like \dbleq[label]{eq1}{eq1}
User avatar
Johannes_B
Site Moderator
Posts: 4182
Joined: Thu Nov 01, 2012 4:08 pm

Equations on two columns

Post by Johannes_B »

No, you don't you can just type in the label in the second argument. Look at it, it is exaclty the same that you came up with.

If you want to have an extra argument just for the label, you could also define an optional argument. With package xparse you can save even more time. And after all, LaTeX is a macro language.

Code: Select all

\documentclass[12pt,letterpaper]{book}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\usepackage{showframe}
\usepackage{tabularx}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\newcommand{\dbleq}[3][]{\begin{align}&\mathclap{#2}&&\mathclap{#3}#1\end{align}}

\usepackage{xparse}
\NewDocumentCommand{\dblq}{ m m o }{%
	\begin{align}&\mathclap{#1}&&\mathclap{#2}\IfNoValueTF{#3}{}{\label{eq:#3}}\end{align}}

\begin{document}
\dbleq{x = y^2 - c + d + 12b + 17 c - 4f -(x^r)^2 z^3,}{y^2 = -\: x^2 + 4 - y^2 - x.}

Just another small line of text :
\dbleq[\label{eq:cham}]{x -5 y + 3 = y^2,}{y^2 = -\: x^2 + 4 - y^2 - x.}
can we refer to \eqref{eq:cham} and \eqref{eq:chamA}?

\dblq{x -5 y + 3 = y^2,}{y^2 = -\: x^2 + 4 - y^2 - x.}[chamA]
\end{document}
DISCLAIMER: Macros for saving typing time are bad, especially when math is involved. This might break sooner than you wish.
The smart way: Calm down and take a deep breath, read posts and provided links attentively, try to understand and ask if necessary.
User avatar
Cham
Posts: 937
Joined: Sat Apr 02, 2011 4:06 pm

Equations on two columns

Post by Cham »

Johannes_B wrote:No, you don't you can just type in the label in the second argument. Look at it, it is exaclty the same that you came up with.
I tried with the label inside the second argument, and got an error.
User avatar
Johannes_B
Site Moderator
Posts: 4182
Joined: Thu Nov 01, 2012 4:08 pm

Re: Equations on two columns

Post by Johannes_B »

Ah, right, sorry. My mistake.

Mathtools typesets its argument 4 times in different styles and applies only once. Hence you get the error of defining the same label multiple times.
The smart way: Calm down and take a deep breath, read posts and provided links attentively, try to understand and ask if necessary.
User avatar
Cham
Posts: 937
Joined: Sat Apr 02, 2011 4:06 pm

Equations on two columns

Post by Cham »

I think I like pretty much this solution :

Code: Select all

\newcommand{\dbleq}[3][]{\begin{align}&\mathclap{#2}&&\mathclap{#3}\label{#1}\end{align}}
This way, you don't need to type \label{}, since it's already defined as an optional argument just for the label. And the code is then easier to read and to understand (I think).

The spacement could be adjusted easily :

Code: Select all

\newcommand{\dbleq}[3][]{\begin{align}&\mathclap{#2}\quad&&\quad\mathclap{#3}\label{#1}\end{align}}
According to the quick test I just made, this is working great, even with large equation numbers :
2equs_test.jpg
2equs_test.jpg (53.78 KiB) Viewed 8378 times
Post Reply