Test if tikzmark exists on same page Unicorn Meta Zoo #1: Why another podcast? Announcing the arrival of Valued Associate #679: Cesar ManaraTikz - How to overlay Decorations over longtableExporting animation created with animate packageMark (highlight) a paragraph (item…) with a squiggly line for later attention“Dimension too large” error with tikz graphic using tikzmark when document gets too many pagestikzmarknode lines with hooksTikz picture with tikzmark across page boundary won't print if inside environmentRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?TikZ: Drawing an arc from an intersection to an intersectionLine up nested tikz enviroments or how to get rid of themProblems with nested TikZpicturesDrawing tikz line in the margin for multiple pagesUsing Tikzmark and ArrowsLabelings with Tikzmark

Multiple options vs single option UI

Which big number is bigger?

Putting Ant-Man on house arrest

Obeylines and gappto from etoolbox

Unknown code in script

Where was the County of Thurn und Taxis located?

Is it acceptable to use working hours to read general interest books?

Multiple fireplaces in an apartment building?

Why didn't the Space Shuttle bounce back into space as many times as possible so as to lose a lot of kinetic energy up there?

Older movie/show about humans on derelict alien warship which refuels by passing through a star

Philosophical question on logisitic regression: why isn't the optimal threshold value trained?

Mistake in years of experience in resume?

What is the best way to deal with NPC-NPC combat?

Why do games have consumables?

What to do with someone that cheated their way through university and a PhD program?

Is there metaphorical meaning of "aus der Haft entlassen"?

How to find if a column is referenced in a computed column?

What is it called when you ride around on your front wheel?

As an international instructor, should I openly talk about my accent?

What *exactly* is electrical current, voltage, and resistance?

Co-worker works way more than he should

Drawing a german abacus as in the books of Adam Ries

Do I need to watch Ant-Man and the Wasp and Captain Marvel before watching Avengers: Endgame?

My bank got bought out, am I now going to have to start filing tax returns in a different state?



Test if tikzmark exists on same page



Unicorn Meta Zoo #1: Why another podcast?
Announcing the arrival of Valued Associate #679: Cesar ManaraTikz - How to overlay Decorations over longtableExporting animation created with animate packageMark (highlight) a paragraph (item…) with a squiggly line for later attention“Dimension too large” error with tikz graphic using tikzmark when document gets too many pagestikzmarknode lines with hooksTikz picture with tikzmark across page boundary won't print if inside environmentRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?TikZ: Drawing an arc from an intersection to an intersectionLine up nested tikz enviroments or how to get rid of themProblems with nested TikZpicturesDrawing tikz line in the margin for multiple pagesUsing Tikzmark and ArrowsLabelings with Tikzmark










4















Apologies for flooding the site with tikzmark problems ... :)



I know that with iftikzmark I can test if a given tikzmark exists in general. Is there a way to test if a particular tikzmark exists on the same page?



Use case: I'm trying to design macros that I can insert anywhere in a text that would draw a line between them –- a linestart and a linefinish command. However, when the linefinish command happens to fall on a subsequent page, the line gets drawn to where the linestart command was on the previous page. I would rather have it instead "do something else", here, just for purpose of illustration, draw me a black square – or, ideally "point across" the page in the direction to where the other mark is sitting.



In the code below, I've tried to construct what I'm envisioning using iftikzmark but that does not work.



documentclassarticle
usepackagetikz
usetikzlibrarytikzmark
newcountertikzmkstartsetcountertikzmkstart0 %
newcountertikzmkfinishsetcountertikzmkfinish0 %

newcommandlinestart%
stepcountertikzmkfinishiftikzmarkbthetikzmkfinish% tikzmark exists on same page
stepcountertikzmkstarttikzmarknodeathetikzmkstartvphantomxaddtocountertikzmkfinish-1
% tikzmark doesn't exist on page
begintikzpicture draw [line width=4] (0,0) -- (.1,0); endtikzpictureaddtocountertikzmkfinish-1% black square if linefinish on next page

newcommandlinefinish%
iftikzmarkathetikzmkstart% tikzmark exists on same page
stepcountertikzmkfinishtikzmarknodebthetikzmkfinishvphantomxbegintikzpicture[remember picture] draw[overlay] (athetikzmkstart.west) -- (bthetikzmkfinish.west); endtikzpicture
% tikzmark doesn't exist on page
begintikzpicture draw [line width=4] (0,0) -- (.1,0); endtikzpicture

begindocument
Text linestart text text

Text text text
%newpage

Text text linefinish text
enddocument


Any ideas of how else I might accomplish something like this would be very welcome!




Update: Based on @marmot's suggestion to look at this answer, I've now come up with the following. However, I'm stuck with how to make the lines "point across" the page breaks ...



documentclassarticle
usepackagerefcount
usepackagetikz
usetikzlibrarycalc

newcountertmp
newcommandtikzmark[1]%
tikz[overlay,remember picture] node (#1) ;

newcommandlinestart%
stepcountertmp%
tikzmarkalabelathetmp%
ifnumgetpagerefnumberathetmp=getpagerefnumberbthetmp else
begintikzpicture[overlay, remember picture]
draw [thick]
(a.west) -- (b.west);
endtikzpicture%
fi%



newcommandlinefinish%
tikzmarkblabelbthetmp
ifnumgetpagerefnumberathetmp=getpagerefnumberbthetmp
begintikzpicture[overlay, remember picture]
draw [thick]
(a.west) -- (b.west);
endtikzpicture%
else
begintikzpicture[overlay, remember picture]
draw [thick]
(a.west) -- (b.west);
endtikzpicture%
fi


newcommandSqu[1]linestart#1linefinish

begindocument

Text linestart text text

Text text text

Text text linefinish text

Text linestart text text

Text text text
newpage

Text text linefinish text

enddocument









share|improve this question
























  • The way you write the questions may indicate that you are about to construct a tikzmar version of something like this answer. The basic trick is that you build in the page number.

    – marmot
    Apr 6 at 16:51











  • @marmot Oh, you mean incorporating the pagenumber into the label for the node. Ha, that's clever.

    – jan
    Apr 6 at 16:53











  • Yes, basically. If you also want the line to also run over page breaks, you may need refcount, like in Gonzalo's answer.

    – marmot
    Apr 6 at 16:56






  • 1





    tikzmark already saves the page number on which it is defined (see tex.stackexchange.com/q/79121/86 for a use of this, and look at next page in the documentation). There isn't a current direct interface to that information; it is stored as save@pg@<picture id of the tikzmark> so you could do a test on that. I'm not going to attempt to get the expansions right in a comment, but something like ifnumcsname save@pg@pgfpictureidendcsname=csname save@pg@csname save@pt@tmk@labelendcsnameendcsname

    – Loop Space
    Apr 6 at 17:10











  • @LoopSpace Hmm, that looks fairly complex. Would you be able to explain where I incorporate that?

    – jan
    Apr 6 at 17:14















4















Apologies for flooding the site with tikzmark problems ... :)



I know that with iftikzmark I can test if a given tikzmark exists in general. Is there a way to test if a particular tikzmark exists on the same page?



Use case: I'm trying to design macros that I can insert anywhere in a text that would draw a line between them –- a linestart and a linefinish command. However, when the linefinish command happens to fall on a subsequent page, the line gets drawn to where the linestart command was on the previous page. I would rather have it instead "do something else", here, just for purpose of illustration, draw me a black square – or, ideally "point across" the page in the direction to where the other mark is sitting.



In the code below, I've tried to construct what I'm envisioning using iftikzmark but that does not work.



documentclassarticle
usepackagetikz
usetikzlibrarytikzmark
newcountertikzmkstartsetcountertikzmkstart0 %
newcountertikzmkfinishsetcountertikzmkfinish0 %

newcommandlinestart%
stepcountertikzmkfinishiftikzmarkbthetikzmkfinish% tikzmark exists on same page
stepcountertikzmkstarttikzmarknodeathetikzmkstartvphantomxaddtocountertikzmkfinish-1
% tikzmark doesn't exist on page
begintikzpicture draw [line width=4] (0,0) -- (.1,0); endtikzpictureaddtocountertikzmkfinish-1% black square if linefinish on next page

newcommandlinefinish%
iftikzmarkathetikzmkstart% tikzmark exists on same page
stepcountertikzmkfinishtikzmarknodebthetikzmkfinishvphantomxbegintikzpicture[remember picture] draw[overlay] (athetikzmkstart.west) -- (bthetikzmkfinish.west); endtikzpicture
% tikzmark doesn't exist on page
begintikzpicture draw [line width=4] (0,0) -- (.1,0); endtikzpicture

begindocument
Text linestart text text

Text text text
%newpage

Text text linefinish text
enddocument


Any ideas of how else I might accomplish something like this would be very welcome!




Update: Based on @marmot's suggestion to look at this answer, I've now come up with the following. However, I'm stuck with how to make the lines "point across" the page breaks ...



documentclassarticle
usepackagerefcount
usepackagetikz
usetikzlibrarycalc

newcountertmp
newcommandtikzmark[1]%
tikz[overlay,remember picture] node (#1) ;

newcommandlinestart%
stepcountertmp%
tikzmarkalabelathetmp%
ifnumgetpagerefnumberathetmp=getpagerefnumberbthetmp else
begintikzpicture[overlay, remember picture]
draw [thick]
(a.west) -- (b.west);
endtikzpicture%
fi%



newcommandlinefinish%
tikzmarkblabelbthetmp
ifnumgetpagerefnumberathetmp=getpagerefnumberbthetmp
begintikzpicture[overlay, remember picture]
draw [thick]
(a.west) -- (b.west);
endtikzpicture%
else
begintikzpicture[overlay, remember picture]
draw [thick]
(a.west) -- (b.west);
endtikzpicture%
fi


newcommandSqu[1]linestart#1linefinish

begindocument

Text linestart text text

Text text text

Text text linefinish text

Text linestart text text

Text text text
newpage

Text text linefinish text

enddocument









share|improve this question
























  • The way you write the questions may indicate that you are about to construct a tikzmar version of something like this answer. The basic trick is that you build in the page number.

    – marmot
    Apr 6 at 16:51











  • @marmot Oh, you mean incorporating the pagenumber into the label for the node. Ha, that's clever.

    – jan
    Apr 6 at 16:53











  • Yes, basically. If you also want the line to also run over page breaks, you may need refcount, like in Gonzalo's answer.

    – marmot
    Apr 6 at 16:56






  • 1





    tikzmark already saves the page number on which it is defined (see tex.stackexchange.com/q/79121/86 for a use of this, and look at next page in the documentation). There isn't a current direct interface to that information; it is stored as save@pg@<picture id of the tikzmark> so you could do a test on that. I'm not going to attempt to get the expansions right in a comment, but something like ifnumcsname save@pg@pgfpictureidendcsname=csname save@pg@csname save@pt@tmk@labelendcsnameendcsname

    – Loop Space
    Apr 6 at 17:10











  • @LoopSpace Hmm, that looks fairly complex. Would you be able to explain where I incorporate that?

    – jan
    Apr 6 at 17:14













4












4








4








Apologies for flooding the site with tikzmark problems ... :)



I know that with iftikzmark I can test if a given tikzmark exists in general. Is there a way to test if a particular tikzmark exists on the same page?



Use case: I'm trying to design macros that I can insert anywhere in a text that would draw a line between them –- a linestart and a linefinish command. However, when the linefinish command happens to fall on a subsequent page, the line gets drawn to where the linestart command was on the previous page. I would rather have it instead "do something else", here, just for purpose of illustration, draw me a black square – or, ideally "point across" the page in the direction to where the other mark is sitting.



In the code below, I've tried to construct what I'm envisioning using iftikzmark but that does not work.



documentclassarticle
usepackagetikz
usetikzlibrarytikzmark
newcountertikzmkstartsetcountertikzmkstart0 %
newcountertikzmkfinishsetcountertikzmkfinish0 %

newcommandlinestart%
stepcountertikzmkfinishiftikzmarkbthetikzmkfinish% tikzmark exists on same page
stepcountertikzmkstarttikzmarknodeathetikzmkstartvphantomxaddtocountertikzmkfinish-1
% tikzmark doesn't exist on page
begintikzpicture draw [line width=4] (0,0) -- (.1,0); endtikzpictureaddtocountertikzmkfinish-1% black square if linefinish on next page

newcommandlinefinish%
iftikzmarkathetikzmkstart% tikzmark exists on same page
stepcountertikzmkfinishtikzmarknodebthetikzmkfinishvphantomxbegintikzpicture[remember picture] draw[overlay] (athetikzmkstart.west) -- (bthetikzmkfinish.west); endtikzpicture
% tikzmark doesn't exist on page
begintikzpicture draw [line width=4] (0,0) -- (.1,0); endtikzpicture

begindocument
Text linestart text text

Text text text
%newpage

Text text linefinish text
enddocument


Any ideas of how else I might accomplish something like this would be very welcome!




Update: Based on @marmot's suggestion to look at this answer, I've now come up with the following. However, I'm stuck with how to make the lines "point across" the page breaks ...



documentclassarticle
usepackagerefcount
usepackagetikz
usetikzlibrarycalc

newcountertmp
newcommandtikzmark[1]%
tikz[overlay,remember picture] node (#1) ;

newcommandlinestart%
stepcountertmp%
tikzmarkalabelathetmp%
ifnumgetpagerefnumberathetmp=getpagerefnumberbthetmp else
begintikzpicture[overlay, remember picture]
draw [thick]
(a.west) -- (b.west);
endtikzpicture%
fi%



newcommandlinefinish%
tikzmarkblabelbthetmp
ifnumgetpagerefnumberathetmp=getpagerefnumberbthetmp
begintikzpicture[overlay, remember picture]
draw [thick]
(a.west) -- (b.west);
endtikzpicture%
else
begintikzpicture[overlay, remember picture]
draw [thick]
(a.west) -- (b.west);
endtikzpicture%
fi


newcommandSqu[1]linestart#1linefinish

begindocument

Text linestart text text

Text text text

Text text linefinish text

Text linestart text text

Text text text
newpage

Text text linefinish text

enddocument









share|improve this question
















Apologies for flooding the site with tikzmark problems ... :)



I know that with iftikzmark I can test if a given tikzmark exists in general. Is there a way to test if a particular tikzmark exists on the same page?



Use case: I'm trying to design macros that I can insert anywhere in a text that would draw a line between them –- a linestart and a linefinish command. However, when the linefinish command happens to fall on a subsequent page, the line gets drawn to where the linestart command was on the previous page. I would rather have it instead "do something else", here, just for purpose of illustration, draw me a black square – or, ideally "point across" the page in the direction to where the other mark is sitting.



In the code below, I've tried to construct what I'm envisioning using iftikzmark but that does not work.



documentclassarticle
usepackagetikz
usetikzlibrarytikzmark
newcountertikzmkstartsetcountertikzmkstart0 %
newcountertikzmkfinishsetcountertikzmkfinish0 %

newcommandlinestart%
stepcountertikzmkfinishiftikzmarkbthetikzmkfinish% tikzmark exists on same page
stepcountertikzmkstarttikzmarknodeathetikzmkstartvphantomxaddtocountertikzmkfinish-1
% tikzmark doesn't exist on page
begintikzpicture draw [line width=4] (0,0) -- (.1,0); endtikzpictureaddtocountertikzmkfinish-1% black square if linefinish on next page

newcommandlinefinish%
iftikzmarkathetikzmkstart% tikzmark exists on same page
stepcountertikzmkfinishtikzmarknodebthetikzmkfinishvphantomxbegintikzpicture[remember picture] draw[overlay] (athetikzmkstart.west) -- (bthetikzmkfinish.west); endtikzpicture
% tikzmark doesn't exist on page
begintikzpicture draw [line width=4] (0,0) -- (.1,0); endtikzpicture

begindocument
Text linestart text text

Text text text
%newpage

Text text linefinish text
enddocument


Any ideas of how else I might accomplish something like this would be very welcome!




Update: Based on @marmot's suggestion to look at this answer, I've now come up with the following. However, I'm stuck with how to make the lines "point across" the page breaks ...



documentclassarticle
usepackagerefcount
usepackagetikz
usetikzlibrarycalc

newcountertmp
newcommandtikzmark[1]%
tikz[overlay,remember picture] node (#1) ;

newcommandlinestart%
stepcountertmp%
tikzmarkalabelathetmp%
ifnumgetpagerefnumberathetmp=getpagerefnumberbthetmp else
begintikzpicture[overlay, remember picture]
draw [thick]
(a.west) -- (b.west);
endtikzpicture%
fi%



newcommandlinefinish%
tikzmarkblabelbthetmp
ifnumgetpagerefnumberathetmp=getpagerefnumberbthetmp
begintikzpicture[overlay, remember picture]
draw [thick]
(a.west) -- (b.west);
endtikzpicture%
else
begintikzpicture[overlay, remember picture]
draw [thick]
(a.west) -- (b.west);
endtikzpicture%
fi


newcommandSqu[1]linestart#1linefinish

begindocument

Text linestart text text

Text text text

Text text linefinish text

Text linestart text text

Text text text
newpage

Text text linefinish text

enddocument






tikz-pgf macros tikzmark






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 6 at 18:01







jan

















asked Apr 6 at 16:43









janjan

1,1551519




1,1551519












  • The way you write the questions may indicate that you are about to construct a tikzmar version of something like this answer. The basic trick is that you build in the page number.

    – marmot
    Apr 6 at 16:51











  • @marmot Oh, you mean incorporating the pagenumber into the label for the node. Ha, that's clever.

    – jan
    Apr 6 at 16:53











  • Yes, basically. If you also want the line to also run over page breaks, you may need refcount, like in Gonzalo's answer.

    – marmot
    Apr 6 at 16:56






  • 1





    tikzmark already saves the page number on which it is defined (see tex.stackexchange.com/q/79121/86 for a use of this, and look at next page in the documentation). There isn't a current direct interface to that information; it is stored as save@pg@<picture id of the tikzmark> so you could do a test on that. I'm not going to attempt to get the expansions right in a comment, but something like ifnumcsname save@pg@pgfpictureidendcsname=csname save@pg@csname save@pt@tmk@labelendcsnameendcsname

    – Loop Space
    Apr 6 at 17:10











  • @LoopSpace Hmm, that looks fairly complex. Would you be able to explain where I incorporate that?

    – jan
    Apr 6 at 17:14

















  • The way you write the questions may indicate that you are about to construct a tikzmar version of something like this answer. The basic trick is that you build in the page number.

    – marmot
    Apr 6 at 16:51











  • @marmot Oh, you mean incorporating the pagenumber into the label for the node. Ha, that's clever.

    – jan
    Apr 6 at 16:53











  • Yes, basically. If you also want the line to also run over page breaks, you may need refcount, like in Gonzalo's answer.

    – marmot
    Apr 6 at 16:56






  • 1





    tikzmark already saves the page number on which it is defined (see tex.stackexchange.com/q/79121/86 for a use of this, and look at next page in the documentation). There isn't a current direct interface to that information; it is stored as save@pg@<picture id of the tikzmark> so you could do a test on that. I'm not going to attempt to get the expansions right in a comment, but something like ifnumcsname save@pg@pgfpictureidendcsname=csname save@pg@csname save@pt@tmk@labelendcsnameendcsname

    – Loop Space
    Apr 6 at 17:10











  • @LoopSpace Hmm, that looks fairly complex. Would you be able to explain where I incorporate that?

    – jan
    Apr 6 at 17:14
















The way you write the questions may indicate that you are about to construct a tikzmar version of something like this answer. The basic trick is that you build in the page number.

– marmot
Apr 6 at 16:51





The way you write the questions may indicate that you are about to construct a tikzmar version of something like this answer. The basic trick is that you build in the page number.

– marmot
Apr 6 at 16:51













@marmot Oh, you mean incorporating the pagenumber into the label for the node. Ha, that's clever.

– jan
Apr 6 at 16:53





@marmot Oh, you mean incorporating the pagenumber into the label for the node. Ha, that's clever.

– jan
Apr 6 at 16:53













Yes, basically. If you also want the line to also run over page breaks, you may need refcount, like in Gonzalo's answer.

– marmot
Apr 6 at 16:56





Yes, basically. If you also want the line to also run over page breaks, you may need refcount, like in Gonzalo's answer.

– marmot
Apr 6 at 16:56




1




1





tikzmark already saves the page number on which it is defined (see tex.stackexchange.com/q/79121/86 for a use of this, and look at next page in the documentation). There isn't a current direct interface to that information; it is stored as save@pg@<picture id of the tikzmark> so you could do a test on that. I'm not going to attempt to get the expansions right in a comment, but something like ifnumcsname save@pg@pgfpictureidendcsname=csname save@pg@csname save@pt@tmk@labelendcsnameendcsname

– Loop Space
Apr 6 at 17:10





tikzmark already saves the page number on which it is defined (see tex.stackexchange.com/q/79121/86 for a use of this, and look at next page in the documentation). There isn't a current direct interface to that information; it is stored as save@pg@<picture id of the tikzmark> so you could do a test on that. I'm not going to attempt to get the expansions right in a comment, but something like ifnumcsname save@pg@pgfpictureidendcsname=csname save@pg@csname save@pt@tmk@labelendcsnameendcsname

– Loop Space
Apr 6 at 17:10













@LoopSpace Hmm, that looks fairly complex. Would you be able to explain where I incorporate that?

– jan
Apr 6 at 17:14





@LoopSpace Hmm, that looks fairly complex. Would you be able to explain where I incorporate that?

– jan
Apr 6 at 17:14










1 Answer
1






active

oldest

votes


















7














I can see the point of having a iftikzmarkonpage conditional, so I've added it to the tikzmark package (download tikzmark.dtx and run tex tikzmark.dtx to get the latest version). This introduces a new conditional, iftikzmarkoncurrentpage<tikzmark name>. That copes with the issue about the lines being drawn on both pages when needed.



documentclassarticle
usepackage[a6paper]geometry
%urlhttps://tex.stackexchange.com/q/483547/86
usepackagetikz
usepackagetikzpagenodes
usetikzlibrarytikzmark
newcountertikzmarklinessetcountertikzmarklines0 %

tikzset
tikzmark prefix=prefix-,
tikzmark suffix=-suffix


newcommandlinestart%
stepcountertikzmarklines%
tikzmarkathetikzmarklines%
iftikzmarkoncurrentpagebthetikzmarklines%
else
begintikzpicture[remember picture,overlay,next page=below]%
clip (current page text area.south west) rectangle (current page text area.north east);
draw[line width=4] (pic cs:athetikzmarklines) -- (pic cs:bthetikzmarklines);
endtikzpicture%
fi


newcommandlinefinish%
tikzmarkbthetikzmarklines%
begintikzpicture[remember picture,overlay,next page=below]%
clip (current page text area.south west) rectangle (current page text area.north east);
draw[line width=1] (pic cs:athetikzmarklines) -- (pic cs:bthetikzmarklines);
endtikzpicture%


begindocument
Text linestart text text

Text text text

Text text linefinish text

newpage

Text text text

Text linestart text text

Text text text
newpage

Text text text

Text text linefinish text
enddocument


lines between pages






share|improve this answer

























  • That looks like it does what I'm after :) thank you ... and if you incorporate a conditional into the package, even better :) Although ... didn't Gonzalo's answer solve that? Why would his solution be bad?

    – jan
    Apr 6 at 18:28











  • Please feel free to revert my edit. +1

    – marmot
    Apr 6 at 18:29











  • @marmot, I like the gifs ;)

    – jan
    Apr 6 at 18:30






  • 1





    @jan convert -density 300 -delay 144 -loop 0 -alpha remove multipage.pdf animated.gif, see tex.stackexchange.com/a/136919/121799.

    – marmot
    Apr 6 at 18:31






  • 1





    @jan You can use tikz-pagenodes, which has the current page text area node. And I think you are doing it right because in their present form the questions and answers are useful for many, which they are not if you do some highly specialized things. (Will be off now.)

    – marmot
    Apr 6 at 18:37











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',
autoActivateHeartbeat: false,
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%2f483547%2ftest-if-tikzmark-exists-on-same-page%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









7














I can see the point of having a iftikzmarkonpage conditional, so I've added it to the tikzmark package (download tikzmark.dtx and run tex tikzmark.dtx to get the latest version). This introduces a new conditional, iftikzmarkoncurrentpage<tikzmark name>. That copes with the issue about the lines being drawn on both pages when needed.



documentclassarticle
usepackage[a6paper]geometry
%urlhttps://tex.stackexchange.com/q/483547/86
usepackagetikz
usepackagetikzpagenodes
usetikzlibrarytikzmark
newcountertikzmarklinessetcountertikzmarklines0 %

tikzset
tikzmark prefix=prefix-,
tikzmark suffix=-suffix


newcommandlinestart%
stepcountertikzmarklines%
tikzmarkathetikzmarklines%
iftikzmarkoncurrentpagebthetikzmarklines%
else
begintikzpicture[remember picture,overlay,next page=below]%
clip (current page text area.south west) rectangle (current page text area.north east);
draw[line width=4] (pic cs:athetikzmarklines) -- (pic cs:bthetikzmarklines);
endtikzpicture%
fi


newcommandlinefinish%
tikzmarkbthetikzmarklines%
begintikzpicture[remember picture,overlay,next page=below]%
clip (current page text area.south west) rectangle (current page text area.north east);
draw[line width=1] (pic cs:athetikzmarklines) -- (pic cs:bthetikzmarklines);
endtikzpicture%


begindocument
Text linestart text text

Text text text

Text text linefinish text

newpage

Text text text

Text linestart text text

Text text text
newpage

Text text text

Text text linefinish text
enddocument


lines between pages






share|improve this answer

























  • That looks like it does what I'm after :) thank you ... and if you incorporate a conditional into the package, even better :) Although ... didn't Gonzalo's answer solve that? Why would his solution be bad?

    – jan
    Apr 6 at 18:28











  • Please feel free to revert my edit. +1

    – marmot
    Apr 6 at 18:29











  • @marmot, I like the gifs ;)

    – jan
    Apr 6 at 18:30






  • 1





    @jan convert -density 300 -delay 144 -loop 0 -alpha remove multipage.pdf animated.gif, see tex.stackexchange.com/a/136919/121799.

    – marmot
    Apr 6 at 18:31






  • 1





    @jan You can use tikz-pagenodes, which has the current page text area node. And I think you are doing it right because in their present form the questions and answers are useful for many, which they are not if you do some highly specialized things. (Will be off now.)

    – marmot
    Apr 6 at 18:37















7














I can see the point of having a iftikzmarkonpage conditional, so I've added it to the tikzmark package (download tikzmark.dtx and run tex tikzmark.dtx to get the latest version). This introduces a new conditional, iftikzmarkoncurrentpage<tikzmark name>. That copes with the issue about the lines being drawn on both pages when needed.



documentclassarticle
usepackage[a6paper]geometry
%urlhttps://tex.stackexchange.com/q/483547/86
usepackagetikz
usepackagetikzpagenodes
usetikzlibrarytikzmark
newcountertikzmarklinessetcountertikzmarklines0 %

tikzset
tikzmark prefix=prefix-,
tikzmark suffix=-suffix


newcommandlinestart%
stepcountertikzmarklines%
tikzmarkathetikzmarklines%
iftikzmarkoncurrentpagebthetikzmarklines%
else
begintikzpicture[remember picture,overlay,next page=below]%
clip (current page text area.south west) rectangle (current page text area.north east);
draw[line width=4] (pic cs:athetikzmarklines) -- (pic cs:bthetikzmarklines);
endtikzpicture%
fi


newcommandlinefinish%
tikzmarkbthetikzmarklines%
begintikzpicture[remember picture,overlay,next page=below]%
clip (current page text area.south west) rectangle (current page text area.north east);
draw[line width=1] (pic cs:athetikzmarklines) -- (pic cs:bthetikzmarklines);
endtikzpicture%


begindocument
Text linestart text text

Text text text

Text text linefinish text

newpage

Text text text

Text linestart text text

Text text text
newpage

Text text text

Text text linefinish text
enddocument


lines between pages






share|improve this answer

























  • That looks like it does what I'm after :) thank you ... and if you incorporate a conditional into the package, even better :) Although ... didn't Gonzalo's answer solve that? Why would his solution be bad?

    – jan
    Apr 6 at 18:28











  • Please feel free to revert my edit. +1

    – marmot
    Apr 6 at 18:29











  • @marmot, I like the gifs ;)

    – jan
    Apr 6 at 18:30






  • 1





    @jan convert -density 300 -delay 144 -loop 0 -alpha remove multipage.pdf animated.gif, see tex.stackexchange.com/a/136919/121799.

    – marmot
    Apr 6 at 18:31






  • 1





    @jan You can use tikz-pagenodes, which has the current page text area node. And I think you are doing it right because in their present form the questions and answers are useful for many, which they are not if you do some highly specialized things. (Will be off now.)

    – marmot
    Apr 6 at 18:37













7












7








7







I can see the point of having a iftikzmarkonpage conditional, so I've added it to the tikzmark package (download tikzmark.dtx and run tex tikzmark.dtx to get the latest version). This introduces a new conditional, iftikzmarkoncurrentpage<tikzmark name>. That copes with the issue about the lines being drawn on both pages when needed.



documentclassarticle
usepackage[a6paper]geometry
%urlhttps://tex.stackexchange.com/q/483547/86
usepackagetikz
usepackagetikzpagenodes
usetikzlibrarytikzmark
newcountertikzmarklinessetcountertikzmarklines0 %

tikzset
tikzmark prefix=prefix-,
tikzmark suffix=-suffix


newcommandlinestart%
stepcountertikzmarklines%
tikzmarkathetikzmarklines%
iftikzmarkoncurrentpagebthetikzmarklines%
else
begintikzpicture[remember picture,overlay,next page=below]%
clip (current page text area.south west) rectangle (current page text area.north east);
draw[line width=4] (pic cs:athetikzmarklines) -- (pic cs:bthetikzmarklines);
endtikzpicture%
fi


newcommandlinefinish%
tikzmarkbthetikzmarklines%
begintikzpicture[remember picture,overlay,next page=below]%
clip (current page text area.south west) rectangle (current page text area.north east);
draw[line width=1] (pic cs:athetikzmarklines) -- (pic cs:bthetikzmarklines);
endtikzpicture%


begindocument
Text linestart text text

Text text text

Text text linefinish text

newpage

Text text text

Text linestart text text

Text text text
newpage

Text text text

Text text linefinish text
enddocument


lines between pages






share|improve this answer















I can see the point of having a iftikzmarkonpage conditional, so I've added it to the tikzmark package (download tikzmark.dtx and run tex tikzmark.dtx to get the latest version). This introduces a new conditional, iftikzmarkoncurrentpage<tikzmark name>. That copes with the issue about the lines being drawn on both pages when needed.



documentclassarticle
usepackage[a6paper]geometry
%urlhttps://tex.stackexchange.com/q/483547/86
usepackagetikz
usepackagetikzpagenodes
usetikzlibrarytikzmark
newcountertikzmarklinessetcountertikzmarklines0 %

tikzset
tikzmark prefix=prefix-,
tikzmark suffix=-suffix


newcommandlinestart%
stepcountertikzmarklines%
tikzmarkathetikzmarklines%
iftikzmarkoncurrentpagebthetikzmarklines%
else
begintikzpicture[remember picture,overlay,next page=below]%
clip (current page text area.south west) rectangle (current page text area.north east);
draw[line width=4] (pic cs:athetikzmarklines) -- (pic cs:bthetikzmarklines);
endtikzpicture%
fi


newcommandlinefinish%
tikzmarkbthetikzmarklines%
begintikzpicture[remember picture,overlay,next page=below]%
clip (current page text area.south west) rectangle (current page text area.north east);
draw[line width=1] (pic cs:athetikzmarklines) -- (pic cs:bthetikzmarklines);
endtikzpicture%


begindocument
Text linestart text text

Text text text

Text text linefinish text

newpage

Text text text

Text linestart text text

Text text text
newpage

Text text text

Text text linefinish text
enddocument


lines between pages







share|improve this answer














share|improve this answer



share|improve this answer








edited Apr 6 at 20:37

























answered Apr 6 at 18:23









Loop SpaceLoop Space

113k30310610




113k30310610












  • That looks like it does what I'm after :) thank you ... and if you incorporate a conditional into the package, even better :) Although ... didn't Gonzalo's answer solve that? Why would his solution be bad?

    – jan
    Apr 6 at 18:28











  • Please feel free to revert my edit. +1

    – marmot
    Apr 6 at 18:29











  • @marmot, I like the gifs ;)

    – jan
    Apr 6 at 18:30






  • 1





    @jan convert -density 300 -delay 144 -loop 0 -alpha remove multipage.pdf animated.gif, see tex.stackexchange.com/a/136919/121799.

    – marmot
    Apr 6 at 18:31






  • 1





    @jan You can use tikz-pagenodes, which has the current page text area node. And I think you are doing it right because in their present form the questions and answers are useful for many, which they are not if you do some highly specialized things. (Will be off now.)

    – marmot
    Apr 6 at 18:37

















  • That looks like it does what I'm after :) thank you ... and if you incorporate a conditional into the package, even better :) Although ... didn't Gonzalo's answer solve that? Why would his solution be bad?

    – jan
    Apr 6 at 18:28











  • Please feel free to revert my edit. +1

    – marmot
    Apr 6 at 18:29











  • @marmot, I like the gifs ;)

    – jan
    Apr 6 at 18:30






  • 1





    @jan convert -density 300 -delay 144 -loop 0 -alpha remove multipage.pdf animated.gif, see tex.stackexchange.com/a/136919/121799.

    – marmot
    Apr 6 at 18:31






  • 1





    @jan You can use tikz-pagenodes, which has the current page text area node. And I think you are doing it right because in their present form the questions and answers are useful for many, which they are not if you do some highly specialized things. (Will be off now.)

    – marmot
    Apr 6 at 18:37
















That looks like it does what I'm after :) thank you ... and if you incorporate a conditional into the package, even better :) Although ... didn't Gonzalo's answer solve that? Why would his solution be bad?

– jan
Apr 6 at 18:28





That looks like it does what I'm after :) thank you ... and if you incorporate a conditional into the package, even better :) Although ... didn't Gonzalo's answer solve that? Why would his solution be bad?

– jan
Apr 6 at 18:28













Please feel free to revert my edit. +1

– marmot
Apr 6 at 18:29





Please feel free to revert my edit. +1

– marmot
Apr 6 at 18:29













@marmot, I like the gifs ;)

– jan
Apr 6 at 18:30





@marmot, I like the gifs ;)

– jan
Apr 6 at 18:30




1




1





@jan convert -density 300 -delay 144 -loop 0 -alpha remove multipage.pdf animated.gif, see tex.stackexchange.com/a/136919/121799.

– marmot
Apr 6 at 18:31





@jan convert -density 300 -delay 144 -loop 0 -alpha remove multipage.pdf animated.gif, see tex.stackexchange.com/a/136919/121799.

– marmot
Apr 6 at 18:31




1




1





@jan You can use tikz-pagenodes, which has the current page text area node. And I think you are doing it right because in their present form the questions and answers are useful for many, which they are not if you do some highly specialized things. (Will be off now.)

– marmot
Apr 6 at 18:37





@jan You can use tikz-pagenodes, which has the current page text area node. And I think you are doing it right because in their present form the questions and answers are useful for many, which they are not if you do some highly specialized things. (Will be off now.)

– marmot
Apr 6 at 18:37

















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.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f483547%2ftest-if-tikzmark-exists-on-same-page%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

Adding axes to figuresAdding axes labels to LaTeX figuresLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?adding axes to shapesAlign axes across subfiguresAdding figures with a certain orderLine up nested tikz enviroments or how to get rid of themAdding axes labels to LaTeX figures

Luettelo Yhdysvaltain laivaston lentotukialuksista Lähteet | Navigointivalikko

Gary (muusikko) Sisällysluettelo Historia | Rockin' High | Lähteet | Aiheesta muualla | NavigointivalikkoInfobox OKTuomas "Gary" Keskinen Ancaran kitaristiksiProjekti Rockin' High