Additional Symbols Tikzmark and Braces











up vote
3
down vote

favorite












I am wondering if it is possible to add the extra symbols in this example given the way I have written the code. I have provided a minimal example and another image with the additional symbols of + and times.



documentclass{article}
usepackage{tikz,mathtools}
usetikzlibrary{tikzmark}
usetikzlibrary{decorations.pathreplacing}

%%% Derivative Macro

newcommand{der}[2]{dfrac{d#1}{d#2}}

%%% Derivative Prime Notation

newcommand{pder}[2]{#1^{prime}(#2)}


begin{document}

begin{align*}
der{}{x} [tikzmarknode{A}{(}2x^{5}+x-1tikzmarknode{B}{)}tikzmarknode{C}
{(}3x-2tikzmarknode{D}{)}]&=tikzmarknode{E}{(}2x^{5}+x-1tikzmarknode{F}
{)}tikzmarknode[red]{G}{(}textcolor{red}{3}tikzmarknode[red]{H}
{)}+tikzmarknode{I}{(}3x-2tikzmarknode{J}{)}tikzmarknode[red]{K}
{(}textcolor{red}{10x^{4}+1}tikzmarknode[red]{L}{)}
end{align*}

begin{tikzpicture}[overlay, remember picture]
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]A.north) -- node[midway, above=3pt] {$f(x)$}
([yshift=5pt]B.north);
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]C.north) -- node[midway, above=3pt] {$g(x)$}
([yshift=5pt]D.north);
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]E.north) -- node[midway, above=3pt] {$f(x)$}
([yshift=5pt]F.north);
draw [decoration={brace},decorate,thick,red]
([yshift=5pt]G.north) -- node[midway, above=3pt] {$pder{g}{x}$}
([yshift=5pt]H.north);
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]I.north) -- node[midway, above=3pt] {$g(x)$}
([yshift=5pt]J.north);
draw [decoration={brace},decorate,thick,red]
([yshift=5pt]K.north) -- node[midway, above=3pt] {$pder{f}{x}$}
([yshift=5pt]L.north);
end{tikzpicture}

end{document}


This outputs:



enter image description here



With the above braces I am trying add some additional operations: + and cdot



enter image description here



g'(x) is a little smaller in the code example but if I can add the symbols and I can also add space to compensate later. Is it possible???










share|improve this question






















  • Do you really need a hammersledge like tikz for this?
    – Bernard
    3 hours ago






  • 1




    @Bernhard, it is the way I have been trained but I am interested in a "way" out if possible?
    – MathScholar
    3 hours ago















up vote
3
down vote

favorite












I am wondering if it is possible to add the extra symbols in this example given the way I have written the code. I have provided a minimal example and another image with the additional symbols of + and times.



documentclass{article}
usepackage{tikz,mathtools}
usetikzlibrary{tikzmark}
usetikzlibrary{decorations.pathreplacing}

%%% Derivative Macro

newcommand{der}[2]{dfrac{d#1}{d#2}}

%%% Derivative Prime Notation

newcommand{pder}[2]{#1^{prime}(#2)}


begin{document}

begin{align*}
der{}{x} [tikzmarknode{A}{(}2x^{5}+x-1tikzmarknode{B}{)}tikzmarknode{C}
{(}3x-2tikzmarknode{D}{)}]&=tikzmarknode{E}{(}2x^{5}+x-1tikzmarknode{F}
{)}tikzmarknode[red]{G}{(}textcolor{red}{3}tikzmarknode[red]{H}
{)}+tikzmarknode{I}{(}3x-2tikzmarknode{J}{)}tikzmarknode[red]{K}
{(}textcolor{red}{10x^{4}+1}tikzmarknode[red]{L}{)}
end{align*}

begin{tikzpicture}[overlay, remember picture]
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]A.north) -- node[midway, above=3pt] {$f(x)$}
([yshift=5pt]B.north);
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]C.north) -- node[midway, above=3pt] {$g(x)$}
([yshift=5pt]D.north);
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]E.north) -- node[midway, above=3pt] {$f(x)$}
([yshift=5pt]F.north);
draw [decoration={brace},decorate,thick,red]
([yshift=5pt]G.north) -- node[midway, above=3pt] {$pder{g}{x}$}
([yshift=5pt]H.north);
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]I.north) -- node[midway, above=3pt] {$g(x)$}
([yshift=5pt]J.north);
draw [decoration={brace},decorate,thick,red]
([yshift=5pt]K.north) -- node[midway, above=3pt] {$pder{f}{x}$}
([yshift=5pt]L.north);
end{tikzpicture}

end{document}


This outputs:



enter image description here



With the above braces I am trying add some additional operations: + and cdot



enter image description here



g'(x) is a little smaller in the code example but if I can add the symbols and I can also add space to compensate later. Is it possible???










share|improve this question






















  • Do you really need a hammersledge like tikz for this?
    – Bernard
    3 hours ago






  • 1




    @Bernhard, it is the way I have been trained but I am interested in a "way" out if possible?
    – MathScholar
    3 hours ago













up vote
3
down vote

favorite









up vote
3
down vote

favorite











I am wondering if it is possible to add the extra symbols in this example given the way I have written the code. I have provided a minimal example and another image with the additional symbols of + and times.



documentclass{article}
usepackage{tikz,mathtools}
usetikzlibrary{tikzmark}
usetikzlibrary{decorations.pathreplacing}

%%% Derivative Macro

newcommand{der}[2]{dfrac{d#1}{d#2}}

%%% Derivative Prime Notation

newcommand{pder}[2]{#1^{prime}(#2)}


begin{document}

begin{align*}
der{}{x} [tikzmarknode{A}{(}2x^{5}+x-1tikzmarknode{B}{)}tikzmarknode{C}
{(}3x-2tikzmarknode{D}{)}]&=tikzmarknode{E}{(}2x^{5}+x-1tikzmarknode{F}
{)}tikzmarknode[red]{G}{(}textcolor{red}{3}tikzmarknode[red]{H}
{)}+tikzmarknode{I}{(}3x-2tikzmarknode{J}{)}tikzmarknode[red]{K}
{(}textcolor{red}{10x^{4}+1}tikzmarknode[red]{L}{)}
end{align*}

begin{tikzpicture}[overlay, remember picture]
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]A.north) -- node[midway, above=3pt] {$f(x)$}
([yshift=5pt]B.north);
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]C.north) -- node[midway, above=3pt] {$g(x)$}
([yshift=5pt]D.north);
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]E.north) -- node[midway, above=3pt] {$f(x)$}
([yshift=5pt]F.north);
draw [decoration={brace},decorate,thick,red]
([yshift=5pt]G.north) -- node[midway, above=3pt] {$pder{g}{x}$}
([yshift=5pt]H.north);
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]I.north) -- node[midway, above=3pt] {$g(x)$}
([yshift=5pt]J.north);
draw [decoration={brace},decorate,thick,red]
([yshift=5pt]K.north) -- node[midway, above=3pt] {$pder{f}{x}$}
([yshift=5pt]L.north);
end{tikzpicture}

end{document}


This outputs:



enter image description here



With the above braces I am trying add some additional operations: + and cdot



enter image description here



g'(x) is a little smaller in the code example but if I can add the symbols and I can also add space to compensate later. Is it possible???










share|improve this question













I am wondering if it is possible to add the extra symbols in this example given the way I have written the code. I have provided a minimal example and another image with the additional symbols of + and times.



documentclass{article}
usepackage{tikz,mathtools}
usetikzlibrary{tikzmark}
usetikzlibrary{decorations.pathreplacing}

%%% Derivative Macro

newcommand{der}[2]{dfrac{d#1}{d#2}}

%%% Derivative Prime Notation

newcommand{pder}[2]{#1^{prime}(#2)}


begin{document}

begin{align*}
der{}{x} [tikzmarknode{A}{(}2x^{5}+x-1tikzmarknode{B}{)}tikzmarknode{C}
{(}3x-2tikzmarknode{D}{)}]&=tikzmarknode{E}{(}2x^{5}+x-1tikzmarknode{F}
{)}tikzmarknode[red]{G}{(}textcolor{red}{3}tikzmarknode[red]{H}
{)}+tikzmarknode{I}{(}3x-2tikzmarknode{J}{)}tikzmarknode[red]{K}
{(}textcolor{red}{10x^{4}+1}tikzmarknode[red]{L}{)}
end{align*}

begin{tikzpicture}[overlay, remember picture]
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]A.north) -- node[midway, above=3pt] {$f(x)$}
([yshift=5pt]B.north);
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]C.north) -- node[midway, above=3pt] {$g(x)$}
([yshift=5pt]D.north);
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]E.north) -- node[midway, above=3pt] {$f(x)$}
([yshift=5pt]F.north);
draw [decoration={brace},decorate,thick,red]
([yshift=5pt]G.north) -- node[midway, above=3pt] {$pder{g}{x}$}
([yshift=5pt]H.north);
draw [decoration={brace},decorate,thick,blue]
([yshift=5pt]I.north) -- node[midway, above=3pt] {$g(x)$}
([yshift=5pt]J.north);
draw [decoration={brace},decorate,thick,red]
([yshift=5pt]K.north) -- node[midway, above=3pt] {$pder{f}{x}$}
([yshift=5pt]L.north);
end{tikzpicture}

end{document}


This outputs:



enter image description here



With the above braces I am trying add some additional operations: + and cdot



enter image description here



g'(x) is a little smaller in the code example but if I can add the symbols and I can also add space to compensate later. Is it possible???







tikzmark






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 4 hours ago









MathScholar

5218




5218












  • Do you really need a hammersledge like tikz for this?
    – Bernard
    3 hours ago






  • 1




    @Bernhard, it is the way I have been trained but I am interested in a "way" out if possible?
    – MathScholar
    3 hours ago


















  • Do you really need a hammersledge like tikz for this?
    – Bernard
    3 hours ago






  • 1




    @Bernhard, it is the way I have been trained but I am interested in a "way" out if possible?
    – MathScholar
    3 hours ago
















Do you really need a hammersledge like tikz for this?
– Bernard
3 hours ago




Do you really need a hammersledge like tikz for this?
– Bernard
3 hours ago




1




1




@Bernhard, it is the way I have been trained but I am interested in a "way" out if possible?
– MathScholar
3 hours ago




@Bernhard, it is the way I have been trained but I am interested in a "way" out if possible?
– MathScholar
3 hours ago










3 Answers
3






active

oldest

votes

















up vote
2
down vote



accepted










I would actually like to argue that it is more ergonomic to define a style that just inserts the brace path with the node on top, and not to have so many scattered tikzmarknodes. This answer comes with an overbrace style, that can be used as



draw[blue,thick,overbrace={A with {$f(x)$} called f1}];



where A is the node you want to overbrace, {$f(x)$} is the node on top and f1 its name. Then it is also much easier to insert the additional signs.



documentclass{article}
usepackage{tikz,mathtools}
usetikzlibrary{tikzmark}
usetikzlibrary{decorations.pathreplacing,calc}

%%% Derivative Macro

newcommand{der}[2]{dfrac{mathrm{d}#1}{mathrm{d}#2}}

%%% Derivative Prime Notation

newcommand{pder}[2]{#1^{prime}(#2)}

tikzset{overbrace/.style args={#1 with #2 called #3}{
insert path={[decoration={brace},decorate] ([yshift=5pt]#1.north west)
-- node[midway, above=3pt] (#3) {#2}
([yshift=5pt]#1.north east) }
}}

begin{document}

begin{align*}
der{}{x} [tikzmarknode{A}{(2x^{5}+x-1)}
tikzmarknode{B}{vphantom{x^{5}}(3x-2)}]
&=tikzmarknode{C}{(2x^{5}+x-1)}
tikzmarknode[red]{D}{vphantom{x^{5}}(3H)}
+tikzmarknode{E}{vphantom{x^{5}}(3x-2)}
tikzmarknode[red]{F}{(10x^{4}+1)}
end{align*}

begin{tikzpicture}[overlay, remember picture]
draw[blue,thick,overbrace={A with {$f(x)$} called f1}];
draw[blue,thick,overbrace={B with {$g(x)$} called g1}];
draw[blue,thick,overbrace={C with {$f(x)$} called f2}];
draw[red,thick,overbrace={D with {$pder{g}{x}$} called dg1}];
draw[blue,thick,overbrace={E with {$g(x)$} called g2}];
draw[red,thick,overbrace={F with {$pder{f}{x}$} called df1}];
path ($(A.east)!0.5!(B.west)$) coordinate (auxAB)
($(C.east)!0.5!(D.west)$) coordinate (auxCD)
($(D.east)!0.5!(E.west)$) coordinate (auxDE)
($(E.east)!0.5!(F.west)$) coordinate (auxEF);
path (auxAB|-f1) node[blue]{$cdot$}
([xshift=-3pt]auxCD|-f1) node[blue]{$cdot$} %manual correction
(auxDE|-f1) node[blue]{$+$}
(auxEF|-f1) node[blue]{$cdot$};
end{tikzpicture}

end{document}


enter image description here



If you want to layout of the braces, you only need to adjust the style. For instance, if you want gaps between them, you could do



tikzset{overbrace/.style args={#1 with #2 called #3}{
insert path={[decoration={brace},decorate] ([yshift=5pt,xshift=1pt]#1.north west)
-- node[midway, above=3pt] (#3) {#2}
([yshift=5pt,xshift=-1pt]#1.north east) }
}}


which yields



enter image description here



Note also that I put the signs on top of the signs of the underlying equation. If you want them in the middle, this will be even easier.



documentclass{article}
usepackage{tikz,mathtools}
usetikzlibrary{tikzmark}
usetikzlibrary{decorations.pathreplacing}

%%% Derivative Macro

newcommand{der}[2]{dfrac{mathrm{d}#1}{mathrm{d}#2}}

%%% Derivative Prime Notation

newcommand{pder}[2]{#1^{prime}(#2)}

tikzset{overbrace/.style args={#1 with #2 called #3}{
insert path={[decoration={brace},decorate] ([yshift=5pt,xshift=1pt]#1.north west)
-- node[midway, above=3pt] (#3) {#2}
([yshift=5pt,xshift=-1pt]#1.north east) }
}}

begin{document}

begin{align*}
der{}{x} [tikzmarknode{A}{(2x^{5}+x-1)}
tikzmarknode{B}{vphantom{x^{5}}(3x-2)}]
&=tikzmarknode{C}{(2x^{5}+x-1)}
tikzmarknode[red]{D}{vphantom{x^{5}}(3)}
+tikzmarknode{E}{vphantom{x^{5}}(3x-2)}
tikzmarknode[red]{F}{(10x^{4}+1)}
end{align*}

begin{tikzpicture}[overlay, remember picture]
draw[blue,thick,overbrace={A with {$f(x)$} called f1}];
draw[blue,thick,overbrace={B with {$g(x)$} called g1}];
draw[blue,thick,overbrace={C with {$f(x)$} called f2}];
draw[red,thick,overbrace={D with {$pder{g}{x}$} called dg1}];
draw[blue,thick,overbrace={E with {$g(x)$} called g2}];
draw[red,thick,overbrace={F with {$pder{f}{x}$} called df1}];
path[blue] (f1) -- (g1) node[midway] {$cdot$}
(f2) -- (dg1) node[midway] {$cdot$}
(dg1) -- (g2) node[midway] {$+$}
(g2) -- (df1) node[midway] {$cdot$};
end{tikzpicture}

end{document}


enter image description here






share|improve this answer























  • I guess it is ! I think you did not want the "H" in the post. I would also space the braces so they do not touch each other. I like the style technique which is making me look like a real rookie! :)
    – MathScholar
    3 hours ago












  • @MathScholar Sorry about the H. It is gone in the last option (which I was writing when I saw your comment.) The lower two options have gaps.
    – marmot
    3 hours ago










  • thank you for this. I will have to play around with this and make things fit for the example in the code. I did not think it was possible! You proved me wrong
    – MathScholar
    3 hours ago




















up vote
1
down vote













Despite being a very powerful tool, tikz can be too costly for some tasks. Here I use overbrace and a small hack to add the operators while occupying 0pt width using a makebox[0pt]{..} macro. Also, as @LoopSpace suggested, we can make the braces at the same height by adding vphantom{x^5} to parentheses without that term.



documentclass{article}
usepackage{amsmath}
begin{document}

newcommand{hide}[2]{makebox[0pt][l]{$hspace{#1pt}#2$}}

[
frac{d}{dx}[overbrace{(2x^5+x-1)}^{f(x)hide{20}{cdot}} overbrace{(vphantom{x^5}3x-2)}^{g(x)}]
= overbrace{(2x^5+x-1)}^{f(x)hide{15}{cdot}} overbrace{(vphantom{x^5}3)}^{g'(x)hide{2}{+}}
+ overbrace{(vphantom{x^5}3x-2)}^{g(x)hide{10}{cdot}} overbrace{(10x^4+1)}^{f'(x)}
]

end{document}


enter image description here






share|improve this answer



















  • 1




    Loath as I am to discourage use of tikzmark, I think it is really useful to see what can be achieved with simpler stuff. I do think it could do with the vphantom{x^5} as in marmot's answer to get the braces level.
    – Loop Space
    3 hours ago










  • Sure, that improves the look of the equation, I added this, thanks.
    – AboAmmar
    3 hours ago


















up vote
0
down vote













For fun, another simple solution with the overbracecommand and pstricks:



documentclass{article}
usepackage{mathtools, esdiff}
usepackage{pst-node}

begin{document}

begin{align*}
diff{}{x}bigl[(textcolor{red}{overbrace{strutcolor{black}2x^{5}+x-1}^{Rnode{f}{textstyle f(x)}} textcolor{black}{ )(}overbrace{strutcolor{black}3x-2}^{Rnode{g}{textstyle g(x)}}})bigr] &= (textcolor{blue}{overbrace{color{black}2x^{5}+x-1}^{Rnode{bluef}{textstyle f(x})}})textcolor{red}{overbrace{strut(3)}^{Rnode{dg}{textstyle g'(x)}} }+ (textcolor{blue}{overbrace{strutcolor{black}3x-2}^{Rnode{blueg}{textstyle g(x)}}} )textcolor{red}{(overbrace{10x^{4}+1}^{Rnode{df}{textstyle f'(x )}})}%
%% Additional symbols
psset{linestyle=none}
ncline{f}{g}ncput{boldsymbolcdot}
ncline{bluef}{dg}ncput{boldsymbolcdot}
ncline{blueg}{df}ncput{boldsymbolcdot}
ncline{blueg}{dg}ncput{ + }
end{align*}

end{document}


enter image description here






share|improve this answer





















    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "85"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f463423%2fadditional-symbols-tikzmark-and-braces%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    2
    down vote



    accepted










    I would actually like to argue that it is more ergonomic to define a style that just inserts the brace path with the node on top, and not to have so many scattered tikzmarknodes. This answer comes with an overbrace style, that can be used as



    draw[blue,thick,overbrace={A with {$f(x)$} called f1}];



    where A is the node you want to overbrace, {$f(x)$} is the node on top and f1 its name. Then it is also much easier to insert the additional signs.



    documentclass{article}
    usepackage{tikz,mathtools}
    usetikzlibrary{tikzmark}
    usetikzlibrary{decorations.pathreplacing,calc}

    %%% Derivative Macro

    newcommand{der}[2]{dfrac{mathrm{d}#1}{mathrm{d}#2}}

    %%% Derivative Prime Notation

    newcommand{pder}[2]{#1^{prime}(#2)}

    tikzset{overbrace/.style args={#1 with #2 called #3}{
    insert path={[decoration={brace},decorate] ([yshift=5pt]#1.north west)
    -- node[midway, above=3pt] (#3) {#2}
    ([yshift=5pt]#1.north east) }
    }}

    begin{document}

    begin{align*}
    der{}{x} [tikzmarknode{A}{(2x^{5}+x-1)}
    tikzmarknode{B}{vphantom{x^{5}}(3x-2)}]
    &=tikzmarknode{C}{(2x^{5}+x-1)}
    tikzmarknode[red]{D}{vphantom{x^{5}}(3H)}
    +tikzmarknode{E}{vphantom{x^{5}}(3x-2)}
    tikzmarknode[red]{F}{(10x^{4}+1)}
    end{align*}

    begin{tikzpicture}[overlay, remember picture]
    draw[blue,thick,overbrace={A with {$f(x)$} called f1}];
    draw[blue,thick,overbrace={B with {$g(x)$} called g1}];
    draw[blue,thick,overbrace={C with {$f(x)$} called f2}];
    draw[red,thick,overbrace={D with {$pder{g}{x}$} called dg1}];
    draw[blue,thick,overbrace={E with {$g(x)$} called g2}];
    draw[red,thick,overbrace={F with {$pder{f}{x}$} called df1}];
    path ($(A.east)!0.5!(B.west)$) coordinate (auxAB)
    ($(C.east)!0.5!(D.west)$) coordinate (auxCD)
    ($(D.east)!0.5!(E.west)$) coordinate (auxDE)
    ($(E.east)!0.5!(F.west)$) coordinate (auxEF);
    path (auxAB|-f1) node[blue]{$cdot$}
    ([xshift=-3pt]auxCD|-f1) node[blue]{$cdot$} %manual correction
    (auxDE|-f1) node[blue]{$+$}
    (auxEF|-f1) node[blue]{$cdot$};
    end{tikzpicture}

    end{document}


    enter image description here



    If you want to layout of the braces, you only need to adjust the style. For instance, if you want gaps between them, you could do



    tikzset{overbrace/.style args={#1 with #2 called #3}{
    insert path={[decoration={brace},decorate] ([yshift=5pt,xshift=1pt]#1.north west)
    -- node[midway, above=3pt] (#3) {#2}
    ([yshift=5pt,xshift=-1pt]#1.north east) }
    }}


    which yields



    enter image description here



    Note also that I put the signs on top of the signs of the underlying equation. If you want them in the middle, this will be even easier.



    documentclass{article}
    usepackage{tikz,mathtools}
    usetikzlibrary{tikzmark}
    usetikzlibrary{decorations.pathreplacing}

    %%% Derivative Macro

    newcommand{der}[2]{dfrac{mathrm{d}#1}{mathrm{d}#2}}

    %%% Derivative Prime Notation

    newcommand{pder}[2]{#1^{prime}(#2)}

    tikzset{overbrace/.style args={#1 with #2 called #3}{
    insert path={[decoration={brace},decorate] ([yshift=5pt,xshift=1pt]#1.north west)
    -- node[midway, above=3pt] (#3) {#2}
    ([yshift=5pt,xshift=-1pt]#1.north east) }
    }}

    begin{document}

    begin{align*}
    der{}{x} [tikzmarknode{A}{(2x^{5}+x-1)}
    tikzmarknode{B}{vphantom{x^{5}}(3x-2)}]
    &=tikzmarknode{C}{(2x^{5}+x-1)}
    tikzmarknode[red]{D}{vphantom{x^{5}}(3)}
    +tikzmarknode{E}{vphantom{x^{5}}(3x-2)}
    tikzmarknode[red]{F}{(10x^{4}+1)}
    end{align*}

    begin{tikzpicture}[overlay, remember picture]
    draw[blue,thick,overbrace={A with {$f(x)$} called f1}];
    draw[blue,thick,overbrace={B with {$g(x)$} called g1}];
    draw[blue,thick,overbrace={C with {$f(x)$} called f2}];
    draw[red,thick,overbrace={D with {$pder{g}{x}$} called dg1}];
    draw[blue,thick,overbrace={E with {$g(x)$} called g2}];
    draw[red,thick,overbrace={F with {$pder{f}{x}$} called df1}];
    path[blue] (f1) -- (g1) node[midway] {$cdot$}
    (f2) -- (dg1) node[midway] {$cdot$}
    (dg1) -- (g2) node[midway] {$+$}
    (g2) -- (df1) node[midway] {$cdot$};
    end{tikzpicture}

    end{document}


    enter image description here






    share|improve this answer























    • I guess it is ! I think you did not want the "H" in the post. I would also space the braces so they do not touch each other. I like the style technique which is making me look like a real rookie! :)
      – MathScholar
      3 hours ago












    • @MathScholar Sorry about the H. It is gone in the last option (which I was writing when I saw your comment.) The lower two options have gaps.
      – marmot
      3 hours ago










    • thank you for this. I will have to play around with this and make things fit for the example in the code. I did not think it was possible! You proved me wrong
      – MathScholar
      3 hours ago

















    up vote
    2
    down vote



    accepted










    I would actually like to argue that it is more ergonomic to define a style that just inserts the brace path with the node on top, and not to have so many scattered tikzmarknodes. This answer comes with an overbrace style, that can be used as



    draw[blue,thick,overbrace={A with {$f(x)$} called f1}];



    where A is the node you want to overbrace, {$f(x)$} is the node on top and f1 its name. Then it is also much easier to insert the additional signs.



    documentclass{article}
    usepackage{tikz,mathtools}
    usetikzlibrary{tikzmark}
    usetikzlibrary{decorations.pathreplacing,calc}

    %%% Derivative Macro

    newcommand{der}[2]{dfrac{mathrm{d}#1}{mathrm{d}#2}}

    %%% Derivative Prime Notation

    newcommand{pder}[2]{#1^{prime}(#2)}

    tikzset{overbrace/.style args={#1 with #2 called #3}{
    insert path={[decoration={brace},decorate] ([yshift=5pt]#1.north west)
    -- node[midway, above=3pt] (#3) {#2}
    ([yshift=5pt]#1.north east) }
    }}

    begin{document}

    begin{align*}
    der{}{x} [tikzmarknode{A}{(2x^{5}+x-1)}
    tikzmarknode{B}{vphantom{x^{5}}(3x-2)}]
    &=tikzmarknode{C}{(2x^{5}+x-1)}
    tikzmarknode[red]{D}{vphantom{x^{5}}(3H)}
    +tikzmarknode{E}{vphantom{x^{5}}(3x-2)}
    tikzmarknode[red]{F}{(10x^{4}+1)}
    end{align*}

    begin{tikzpicture}[overlay, remember picture]
    draw[blue,thick,overbrace={A with {$f(x)$} called f1}];
    draw[blue,thick,overbrace={B with {$g(x)$} called g1}];
    draw[blue,thick,overbrace={C with {$f(x)$} called f2}];
    draw[red,thick,overbrace={D with {$pder{g}{x}$} called dg1}];
    draw[blue,thick,overbrace={E with {$g(x)$} called g2}];
    draw[red,thick,overbrace={F with {$pder{f}{x}$} called df1}];
    path ($(A.east)!0.5!(B.west)$) coordinate (auxAB)
    ($(C.east)!0.5!(D.west)$) coordinate (auxCD)
    ($(D.east)!0.5!(E.west)$) coordinate (auxDE)
    ($(E.east)!0.5!(F.west)$) coordinate (auxEF);
    path (auxAB|-f1) node[blue]{$cdot$}
    ([xshift=-3pt]auxCD|-f1) node[blue]{$cdot$} %manual correction
    (auxDE|-f1) node[blue]{$+$}
    (auxEF|-f1) node[blue]{$cdot$};
    end{tikzpicture}

    end{document}


    enter image description here



    If you want to layout of the braces, you only need to adjust the style. For instance, if you want gaps between them, you could do



    tikzset{overbrace/.style args={#1 with #2 called #3}{
    insert path={[decoration={brace},decorate] ([yshift=5pt,xshift=1pt]#1.north west)
    -- node[midway, above=3pt] (#3) {#2}
    ([yshift=5pt,xshift=-1pt]#1.north east) }
    }}


    which yields



    enter image description here



    Note also that I put the signs on top of the signs of the underlying equation. If you want them in the middle, this will be even easier.



    documentclass{article}
    usepackage{tikz,mathtools}
    usetikzlibrary{tikzmark}
    usetikzlibrary{decorations.pathreplacing}

    %%% Derivative Macro

    newcommand{der}[2]{dfrac{mathrm{d}#1}{mathrm{d}#2}}

    %%% Derivative Prime Notation

    newcommand{pder}[2]{#1^{prime}(#2)}

    tikzset{overbrace/.style args={#1 with #2 called #3}{
    insert path={[decoration={brace},decorate] ([yshift=5pt,xshift=1pt]#1.north west)
    -- node[midway, above=3pt] (#3) {#2}
    ([yshift=5pt,xshift=-1pt]#1.north east) }
    }}

    begin{document}

    begin{align*}
    der{}{x} [tikzmarknode{A}{(2x^{5}+x-1)}
    tikzmarknode{B}{vphantom{x^{5}}(3x-2)}]
    &=tikzmarknode{C}{(2x^{5}+x-1)}
    tikzmarknode[red]{D}{vphantom{x^{5}}(3)}
    +tikzmarknode{E}{vphantom{x^{5}}(3x-2)}
    tikzmarknode[red]{F}{(10x^{4}+1)}
    end{align*}

    begin{tikzpicture}[overlay, remember picture]
    draw[blue,thick,overbrace={A with {$f(x)$} called f1}];
    draw[blue,thick,overbrace={B with {$g(x)$} called g1}];
    draw[blue,thick,overbrace={C with {$f(x)$} called f2}];
    draw[red,thick,overbrace={D with {$pder{g}{x}$} called dg1}];
    draw[blue,thick,overbrace={E with {$g(x)$} called g2}];
    draw[red,thick,overbrace={F with {$pder{f}{x}$} called df1}];
    path[blue] (f1) -- (g1) node[midway] {$cdot$}
    (f2) -- (dg1) node[midway] {$cdot$}
    (dg1) -- (g2) node[midway] {$+$}
    (g2) -- (df1) node[midway] {$cdot$};
    end{tikzpicture}

    end{document}


    enter image description here






    share|improve this answer























    • I guess it is ! I think you did not want the "H" in the post. I would also space the braces so they do not touch each other. I like the style technique which is making me look like a real rookie! :)
      – MathScholar
      3 hours ago












    • @MathScholar Sorry about the H. It is gone in the last option (which I was writing when I saw your comment.) The lower two options have gaps.
      – marmot
      3 hours ago










    • thank you for this. I will have to play around with this and make things fit for the example in the code. I did not think it was possible! You proved me wrong
      – MathScholar
      3 hours ago















    up vote
    2
    down vote



    accepted







    up vote
    2
    down vote



    accepted






    I would actually like to argue that it is more ergonomic to define a style that just inserts the brace path with the node on top, and not to have so many scattered tikzmarknodes. This answer comes with an overbrace style, that can be used as



    draw[blue,thick,overbrace={A with {$f(x)$} called f1}];



    where A is the node you want to overbrace, {$f(x)$} is the node on top and f1 its name. Then it is also much easier to insert the additional signs.



    documentclass{article}
    usepackage{tikz,mathtools}
    usetikzlibrary{tikzmark}
    usetikzlibrary{decorations.pathreplacing,calc}

    %%% Derivative Macro

    newcommand{der}[2]{dfrac{mathrm{d}#1}{mathrm{d}#2}}

    %%% Derivative Prime Notation

    newcommand{pder}[2]{#1^{prime}(#2)}

    tikzset{overbrace/.style args={#1 with #2 called #3}{
    insert path={[decoration={brace},decorate] ([yshift=5pt]#1.north west)
    -- node[midway, above=3pt] (#3) {#2}
    ([yshift=5pt]#1.north east) }
    }}

    begin{document}

    begin{align*}
    der{}{x} [tikzmarknode{A}{(2x^{5}+x-1)}
    tikzmarknode{B}{vphantom{x^{5}}(3x-2)}]
    &=tikzmarknode{C}{(2x^{5}+x-1)}
    tikzmarknode[red]{D}{vphantom{x^{5}}(3H)}
    +tikzmarknode{E}{vphantom{x^{5}}(3x-2)}
    tikzmarknode[red]{F}{(10x^{4}+1)}
    end{align*}

    begin{tikzpicture}[overlay, remember picture]
    draw[blue,thick,overbrace={A with {$f(x)$} called f1}];
    draw[blue,thick,overbrace={B with {$g(x)$} called g1}];
    draw[blue,thick,overbrace={C with {$f(x)$} called f2}];
    draw[red,thick,overbrace={D with {$pder{g}{x}$} called dg1}];
    draw[blue,thick,overbrace={E with {$g(x)$} called g2}];
    draw[red,thick,overbrace={F with {$pder{f}{x}$} called df1}];
    path ($(A.east)!0.5!(B.west)$) coordinate (auxAB)
    ($(C.east)!0.5!(D.west)$) coordinate (auxCD)
    ($(D.east)!0.5!(E.west)$) coordinate (auxDE)
    ($(E.east)!0.5!(F.west)$) coordinate (auxEF);
    path (auxAB|-f1) node[blue]{$cdot$}
    ([xshift=-3pt]auxCD|-f1) node[blue]{$cdot$} %manual correction
    (auxDE|-f1) node[blue]{$+$}
    (auxEF|-f1) node[blue]{$cdot$};
    end{tikzpicture}

    end{document}


    enter image description here



    If you want to layout of the braces, you only need to adjust the style. For instance, if you want gaps between them, you could do



    tikzset{overbrace/.style args={#1 with #2 called #3}{
    insert path={[decoration={brace},decorate] ([yshift=5pt,xshift=1pt]#1.north west)
    -- node[midway, above=3pt] (#3) {#2}
    ([yshift=5pt,xshift=-1pt]#1.north east) }
    }}


    which yields



    enter image description here



    Note also that I put the signs on top of the signs of the underlying equation. If you want them in the middle, this will be even easier.



    documentclass{article}
    usepackage{tikz,mathtools}
    usetikzlibrary{tikzmark}
    usetikzlibrary{decorations.pathreplacing}

    %%% Derivative Macro

    newcommand{der}[2]{dfrac{mathrm{d}#1}{mathrm{d}#2}}

    %%% Derivative Prime Notation

    newcommand{pder}[2]{#1^{prime}(#2)}

    tikzset{overbrace/.style args={#1 with #2 called #3}{
    insert path={[decoration={brace},decorate] ([yshift=5pt,xshift=1pt]#1.north west)
    -- node[midway, above=3pt] (#3) {#2}
    ([yshift=5pt,xshift=-1pt]#1.north east) }
    }}

    begin{document}

    begin{align*}
    der{}{x} [tikzmarknode{A}{(2x^{5}+x-1)}
    tikzmarknode{B}{vphantom{x^{5}}(3x-2)}]
    &=tikzmarknode{C}{(2x^{5}+x-1)}
    tikzmarknode[red]{D}{vphantom{x^{5}}(3)}
    +tikzmarknode{E}{vphantom{x^{5}}(3x-2)}
    tikzmarknode[red]{F}{(10x^{4}+1)}
    end{align*}

    begin{tikzpicture}[overlay, remember picture]
    draw[blue,thick,overbrace={A with {$f(x)$} called f1}];
    draw[blue,thick,overbrace={B with {$g(x)$} called g1}];
    draw[blue,thick,overbrace={C with {$f(x)$} called f2}];
    draw[red,thick,overbrace={D with {$pder{g}{x}$} called dg1}];
    draw[blue,thick,overbrace={E with {$g(x)$} called g2}];
    draw[red,thick,overbrace={F with {$pder{f}{x}$} called df1}];
    path[blue] (f1) -- (g1) node[midway] {$cdot$}
    (f2) -- (dg1) node[midway] {$cdot$}
    (dg1) -- (g2) node[midway] {$+$}
    (g2) -- (df1) node[midway] {$cdot$};
    end{tikzpicture}

    end{document}


    enter image description here






    share|improve this answer














    I would actually like to argue that it is more ergonomic to define a style that just inserts the brace path with the node on top, and not to have so many scattered tikzmarknodes. This answer comes with an overbrace style, that can be used as



    draw[blue,thick,overbrace={A with {$f(x)$} called f1}];



    where A is the node you want to overbrace, {$f(x)$} is the node on top and f1 its name. Then it is also much easier to insert the additional signs.



    documentclass{article}
    usepackage{tikz,mathtools}
    usetikzlibrary{tikzmark}
    usetikzlibrary{decorations.pathreplacing,calc}

    %%% Derivative Macro

    newcommand{der}[2]{dfrac{mathrm{d}#1}{mathrm{d}#2}}

    %%% Derivative Prime Notation

    newcommand{pder}[2]{#1^{prime}(#2)}

    tikzset{overbrace/.style args={#1 with #2 called #3}{
    insert path={[decoration={brace},decorate] ([yshift=5pt]#1.north west)
    -- node[midway, above=3pt] (#3) {#2}
    ([yshift=5pt]#1.north east) }
    }}

    begin{document}

    begin{align*}
    der{}{x} [tikzmarknode{A}{(2x^{5}+x-1)}
    tikzmarknode{B}{vphantom{x^{5}}(3x-2)}]
    &=tikzmarknode{C}{(2x^{5}+x-1)}
    tikzmarknode[red]{D}{vphantom{x^{5}}(3H)}
    +tikzmarknode{E}{vphantom{x^{5}}(3x-2)}
    tikzmarknode[red]{F}{(10x^{4}+1)}
    end{align*}

    begin{tikzpicture}[overlay, remember picture]
    draw[blue,thick,overbrace={A with {$f(x)$} called f1}];
    draw[blue,thick,overbrace={B with {$g(x)$} called g1}];
    draw[blue,thick,overbrace={C with {$f(x)$} called f2}];
    draw[red,thick,overbrace={D with {$pder{g}{x}$} called dg1}];
    draw[blue,thick,overbrace={E with {$g(x)$} called g2}];
    draw[red,thick,overbrace={F with {$pder{f}{x}$} called df1}];
    path ($(A.east)!0.5!(B.west)$) coordinate (auxAB)
    ($(C.east)!0.5!(D.west)$) coordinate (auxCD)
    ($(D.east)!0.5!(E.west)$) coordinate (auxDE)
    ($(E.east)!0.5!(F.west)$) coordinate (auxEF);
    path (auxAB|-f1) node[blue]{$cdot$}
    ([xshift=-3pt]auxCD|-f1) node[blue]{$cdot$} %manual correction
    (auxDE|-f1) node[blue]{$+$}
    (auxEF|-f1) node[blue]{$cdot$};
    end{tikzpicture}

    end{document}


    enter image description here



    If you want to layout of the braces, you only need to adjust the style. For instance, if you want gaps between them, you could do



    tikzset{overbrace/.style args={#1 with #2 called #3}{
    insert path={[decoration={brace},decorate] ([yshift=5pt,xshift=1pt]#1.north west)
    -- node[midway, above=3pt] (#3) {#2}
    ([yshift=5pt,xshift=-1pt]#1.north east) }
    }}


    which yields



    enter image description here



    Note also that I put the signs on top of the signs of the underlying equation. If you want them in the middle, this will be even easier.



    documentclass{article}
    usepackage{tikz,mathtools}
    usetikzlibrary{tikzmark}
    usetikzlibrary{decorations.pathreplacing}

    %%% Derivative Macro

    newcommand{der}[2]{dfrac{mathrm{d}#1}{mathrm{d}#2}}

    %%% Derivative Prime Notation

    newcommand{pder}[2]{#1^{prime}(#2)}

    tikzset{overbrace/.style args={#1 with #2 called #3}{
    insert path={[decoration={brace},decorate] ([yshift=5pt,xshift=1pt]#1.north west)
    -- node[midway, above=3pt] (#3) {#2}
    ([yshift=5pt,xshift=-1pt]#1.north east) }
    }}

    begin{document}

    begin{align*}
    der{}{x} [tikzmarknode{A}{(2x^{5}+x-1)}
    tikzmarknode{B}{vphantom{x^{5}}(3x-2)}]
    &=tikzmarknode{C}{(2x^{5}+x-1)}
    tikzmarknode[red]{D}{vphantom{x^{5}}(3)}
    +tikzmarknode{E}{vphantom{x^{5}}(3x-2)}
    tikzmarknode[red]{F}{(10x^{4}+1)}
    end{align*}

    begin{tikzpicture}[overlay, remember picture]
    draw[blue,thick,overbrace={A with {$f(x)$} called f1}];
    draw[blue,thick,overbrace={B with {$g(x)$} called g1}];
    draw[blue,thick,overbrace={C with {$f(x)$} called f2}];
    draw[red,thick,overbrace={D with {$pder{g}{x}$} called dg1}];
    draw[blue,thick,overbrace={E with {$g(x)$} called g2}];
    draw[red,thick,overbrace={F with {$pder{f}{x}$} called df1}];
    path[blue] (f1) -- (g1) node[midway] {$cdot$}
    (f2) -- (dg1) node[midway] {$cdot$}
    (dg1) -- (g2) node[midway] {$+$}
    (g2) -- (df1) node[midway] {$cdot$};
    end{tikzpicture}

    end{document}


    enter image description here







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited 3 hours ago

























    answered 3 hours ago









    marmot

    80.9k491173




    80.9k491173












    • I guess it is ! I think you did not want the "H" in the post. I would also space the braces so they do not touch each other. I like the style technique which is making me look like a real rookie! :)
      – MathScholar
      3 hours ago












    • @MathScholar Sorry about the H. It is gone in the last option (which I was writing when I saw your comment.) The lower two options have gaps.
      – marmot
      3 hours ago










    • thank you for this. I will have to play around with this and make things fit for the example in the code. I did not think it was possible! You proved me wrong
      – MathScholar
      3 hours ago




















    • I guess it is ! I think you did not want the "H" in the post. I would also space the braces so they do not touch each other. I like the style technique which is making me look like a real rookie! :)
      – MathScholar
      3 hours ago












    • @MathScholar Sorry about the H. It is gone in the last option (which I was writing when I saw your comment.) The lower two options have gaps.
      – marmot
      3 hours ago










    • thank you for this. I will have to play around with this and make things fit for the example in the code. I did not think it was possible! You proved me wrong
      – MathScholar
      3 hours ago


















    I guess it is ! I think you did not want the "H" in the post. I would also space the braces so they do not touch each other. I like the style technique which is making me look like a real rookie! :)
    – MathScholar
    3 hours ago






    I guess it is ! I think you did not want the "H" in the post. I would also space the braces so they do not touch each other. I like the style technique which is making me look like a real rookie! :)
    – MathScholar
    3 hours ago














    @MathScholar Sorry about the H. It is gone in the last option (which I was writing when I saw your comment.) The lower two options have gaps.
    – marmot
    3 hours ago




    @MathScholar Sorry about the H. It is gone in the last option (which I was writing when I saw your comment.) The lower two options have gaps.
    – marmot
    3 hours ago












    thank you for this. I will have to play around with this and make things fit for the example in the code. I did not think it was possible! You proved me wrong
    – MathScholar
    3 hours ago






    thank you for this. I will have to play around with this and make things fit for the example in the code. I did not think it was possible! You proved me wrong
    – MathScholar
    3 hours ago












    up vote
    1
    down vote













    Despite being a very powerful tool, tikz can be too costly for some tasks. Here I use overbrace and a small hack to add the operators while occupying 0pt width using a makebox[0pt]{..} macro. Also, as @LoopSpace suggested, we can make the braces at the same height by adding vphantom{x^5} to parentheses without that term.



    documentclass{article}
    usepackage{amsmath}
    begin{document}

    newcommand{hide}[2]{makebox[0pt][l]{$hspace{#1pt}#2$}}

    [
    frac{d}{dx}[overbrace{(2x^5+x-1)}^{f(x)hide{20}{cdot}} overbrace{(vphantom{x^5}3x-2)}^{g(x)}]
    = overbrace{(2x^5+x-1)}^{f(x)hide{15}{cdot}} overbrace{(vphantom{x^5}3)}^{g'(x)hide{2}{+}}
    + overbrace{(vphantom{x^5}3x-2)}^{g(x)hide{10}{cdot}} overbrace{(10x^4+1)}^{f'(x)}
    ]

    end{document}


    enter image description here






    share|improve this answer



















    • 1




      Loath as I am to discourage use of tikzmark, I think it is really useful to see what can be achieved with simpler stuff. I do think it could do with the vphantom{x^5} as in marmot's answer to get the braces level.
      – Loop Space
      3 hours ago










    • Sure, that improves the look of the equation, I added this, thanks.
      – AboAmmar
      3 hours ago















    up vote
    1
    down vote













    Despite being a very powerful tool, tikz can be too costly for some tasks. Here I use overbrace and a small hack to add the operators while occupying 0pt width using a makebox[0pt]{..} macro. Also, as @LoopSpace suggested, we can make the braces at the same height by adding vphantom{x^5} to parentheses without that term.



    documentclass{article}
    usepackage{amsmath}
    begin{document}

    newcommand{hide}[2]{makebox[0pt][l]{$hspace{#1pt}#2$}}

    [
    frac{d}{dx}[overbrace{(2x^5+x-1)}^{f(x)hide{20}{cdot}} overbrace{(vphantom{x^5}3x-2)}^{g(x)}]
    = overbrace{(2x^5+x-1)}^{f(x)hide{15}{cdot}} overbrace{(vphantom{x^5}3)}^{g'(x)hide{2}{+}}
    + overbrace{(vphantom{x^5}3x-2)}^{g(x)hide{10}{cdot}} overbrace{(10x^4+1)}^{f'(x)}
    ]

    end{document}


    enter image description here






    share|improve this answer



















    • 1




      Loath as I am to discourage use of tikzmark, I think it is really useful to see what can be achieved with simpler stuff. I do think it could do with the vphantom{x^5} as in marmot's answer to get the braces level.
      – Loop Space
      3 hours ago










    • Sure, that improves the look of the equation, I added this, thanks.
      – AboAmmar
      3 hours ago













    up vote
    1
    down vote










    up vote
    1
    down vote









    Despite being a very powerful tool, tikz can be too costly for some tasks. Here I use overbrace and a small hack to add the operators while occupying 0pt width using a makebox[0pt]{..} macro. Also, as @LoopSpace suggested, we can make the braces at the same height by adding vphantom{x^5} to parentheses without that term.



    documentclass{article}
    usepackage{amsmath}
    begin{document}

    newcommand{hide}[2]{makebox[0pt][l]{$hspace{#1pt}#2$}}

    [
    frac{d}{dx}[overbrace{(2x^5+x-1)}^{f(x)hide{20}{cdot}} overbrace{(vphantom{x^5}3x-2)}^{g(x)}]
    = overbrace{(2x^5+x-1)}^{f(x)hide{15}{cdot}} overbrace{(vphantom{x^5}3)}^{g'(x)hide{2}{+}}
    + overbrace{(vphantom{x^5}3x-2)}^{g(x)hide{10}{cdot}} overbrace{(10x^4+1)}^{f'(x)}
    ]

    end{document}


    enter image description here






    share|improve this answer














    Despite being a very powerful tool, tikz can be too costly for some tasks. Here I use overbrace and a small hack to add the operators while occupying 0pt width using a makebox[0pt]{..} macro. Also, as @LoopSpace suggested, we can make the braces at the same height by adding vphantom{x^5} to parentheses without that term.



    documentclass{article}
    usepackage{amsmath}
    begin{document}

    newcommand{hide}[2]{makebox[0pt][l]{$hspace{#1pt}#2$}}

    [
    frac{d}{dx}[overbrace{(2x^5+x-1)}^{f(x)hide{20}{cdot}} overbrace{(vphantom{x^5}3x-2)}^{g(x)}]
    = overbrace{(2x^5+x-1)}^{f(x)hide{15}{cdot}} overbrace{(vphantom{x^5}3)}^{g'(x)hide{2}{+}}
    + overbrace{(vphantom{x^5}3x-2)}^{g(x)hide{10}{cdot}} overbrace{(10x^4+1)}^{f'(x)}
    ]

    end{document}


    enter image description here







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited 3 hours ago

























    answered 3 hours ago









    AboAmmar

    31.7k22781




    31.7k22781








    • 1




      Loath as I am to discourage use of tikzmark, I think it is really useful to see what can be achieved with simpler stuff. I do think it could do with the vphantom{x^5} as in marmot's answer to get the braces level.
      – Loop Space
      3 hours ago










    • Sure, that improves the look of the equation, I added this, thanks.
      – AboAmmar
      3 hours ago














    • 1




      Loath as I am to discourage use of tikzmark, I think it is really useful to see what can be achieved with simpler stuff. I do think it could do with the vphantom{x^5} as in marmot's answer to get the braces level.
      – Loop Space
      3 hours ago










    • Sure, that improves the look of the equation, I added this, thanks.
      – AboAmmar
      3 hours ago








    1




    1




    Loath as I am to discourage use of tikzmark, I think it is really useful to see what can be achieved with simpler stuff. I do think it could do with the vphantom{x^5} as in marmot's answer to get the braces level.
    – Loop Space
    3 hours ago




    Loath as I am to discourage use of tikzmark, I think it is really useful to see what can be achieved with simpler stuff. I do think it could do with the vphantom{x^5} as in marmot's answer to get the braces level.
    – Loop Space
    3 hours ago












    Sure, that improves the look of the equation, I added this, thanks.
    – AboAmmar
    3 hours ago




    Sure, that improves the look of the equation, I added this, thanks.
    – AboAmmar
    3 hours ago










    up vote
    0
    down vote













    For fun, another simple solution with the overbracecommand and pstricks:



    documentclass{article}
    usepackage{mathtools, esdiff}
    usepackage{pst-node}

    begin{document}

    begin{align*}
    diff{}{x}bigl[(textcolor{red}{overbrace{strutcolor{black}2x^{5}+x-1}^{Rnode{f}{textstyle f(x)}} textcolor{black}{ )(}overbrace{strutcolor{black}3x-2}^{Rnode{g}{textstyle g(x)}}})bigr] &= (textcolor{blue}{overbrace{color{black}2x^{5}+x-1}^{Rnode{bluef}{textstyle f(x})}})textcolor{red}{overbrace{strut(3)}^{Rnode{dg}{textstyle g'(x)}} }+ (textcolor{blue}{overbrace{strutcolor{black}3x-2}^{Rnode{blueg}{textstyle g(x)}}} )textcolor{red}{(overbrace{10x^{4}+1}^{Rnode{df}{textstyle f'(x )}})}%
    %% Additional symbols
    psset{linestyle=none}
    ncline{f}{g}ncput{boldsymbolcdot}
    ncline{bluef}{dg}ncput{boldsymbolcdot}
    ncline{blueg}{df}ncput{boldsymbolcdot}
    ncline{blueg}{dg}ncput{ + }
    end{align*}

    end{document}


    enter image description here






    share|improve this answer

























      up vote
      0
      down vote













      For fun, another simple solution with the overbracecommand and pstricks:



      documentclass{article}
      usepackage{mathtools, esdiff}
      usepackage{pst-node}

      begin{document}

      begin{align*}
      diff{}{x}bigl[(textcolor{red}{overbrace{strutcolor{black}2x^{5}+x-1}^{Rnode{f}{textstyle f(x)}} textcolor{black}{ )(}overbrace{strutcolor{black}3x-2}^{Rnode{g}{textstyle g(x)}}})bigr] &= (textcolor{blue}{overbrace{color{black}2x^{5}+x-1}^{Rnode{bluef}{textstyle f(x})}})textcolor{red}{overbrace{strut(3)}^{Rnode{dg}{textstyle g'(x)}} }+ (textcolor{blue}{overbrace{strutcolor{black}3x-2}^{Rnode{blueg}{textstyle g(x)}}} )textcolor{red}{(overbrace{10x^{4}+1}^{Rnode{df}{textstyle f'(x )}})}%
      %% Additional symbols
      psset{linestyle=none}
      ncline{f}{g}ncput{boldsymbolcdot}
      ncline{bluef}{dg}ncput{boldsymbolcdot}
      ncline{blueg}{df}ncput{boldsymbolcdot}
      ncline{blueg}{dg}ncput{ + }
      end{align*}

      end{document}


      enter image description here






      share|improve this answer























        up vote
        0
        down vote










        up vote
        0
        down vote









        For fun, another simple solution with the overbracecommand and pstricks:



        documentclass{article}
        usepackage{mathtools, esdiff}
        usepackage{pst-node}

        begin{document}

        begin{align*}
        diff{}{x}bigl[(textcolor{red}{overbrace{strutcolor{black}2x^{5}+x-1}^{Rnode{f}{textstyle f(x)}} textcolor{black}{ )(}overbrace{strutcolor{black}3x-2}^{Rnode{g}{textstyle g(x)}}})bigr] &= (textcolor{blue}{overbrace{color{black}2x^{5}+x-1}^{Rnode{bluef}{textstyle f(x})}})textcolor{red}{overbrace{strut(3)}^{Rnode{dg}{textstyle g'(x)}} }+ (textcolor{blue}{overbrace{strutcolor{black}3x-2}^{Rnode{blueg}{textstyle g(x)}}} )textcolor{red}{(overbrace{10x^{4}+1}^{Rnode{df}{textstyle f'(x )}})}%
        %% Additional symbols
        psset{linestyle=none}
        ncline{f}{g}ncput{boldsymbolcdot}
        ncline{bluef}{dg}ncput{boldsymbolcdot}
        ncline{blueg}{df}ncput{boldsymbolcdot}
        ncline{blueg}{dg}ncput{ + }
        end{align*}

        end{document}


        enter image description here






        share|improve this answer












        For fun, another simple solution with the overbracecommand and pstricks:



        documentclass{article}
        usepackage{mathtools, esdiff}
        usepackage{pst-node}

        begin{document}

        begin{align*}
        diff{}{x}bigl[(textcolor{red}{overbrace{strutcolor{black}2x^{5}+x-1}^{Rnode{f}{textstyle f(x)}} textcolor{black}{ )(}overbrace{strutcolor{black}3x-2}^{Rnode{g}{textstyle g(x)}}})bigr] &= (textcolor{blue}{overbrace{color{black}2x^{5}+x-1}^{Rnode{bluef}{textstyle f(x})}})textcolor{red}{overbrace{strut(3)}^{Rnode{dg}{textstyle g'(x)}} }+ (textcolor{blue}{overbrace{strutcolor{black}3x-2}^{Rnode{blueg}{textstyle g(x)}}} )textcolor{red}{(overbrace{10x^{4}+1}^{Rnode{df}{textstyle f'(x )}})}%
        %% Additional symbols
        psset{linestyle=none}
        ncline{f}{g}ncput{boldsymbolcdot}
        ncline{bluef}{dg}ncput{boldsymbolcdot}
        ncline{blueg}{df}ncput{boldsymbolcdot}
        ncline{blueg}{dg}ncput{ + }
        end{align*}

        end{document}


        enter image description here







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 2 hours ago









        Bernard

        163k769192




        163k769192






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f463423%2fadditional-symbols-tikzmark-and-braces%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            flock() on closed filehandle LOCK_FILE at /usr/bin/apt-mirror

            Mangá

            Eduardo VII do Reino Unido