How can my LaTeX files detect if they're being compiled on Overleaf?How can I test if a document is being...
Employee lack of ownership
My Graph Theory Students
Gravity magic - How does it work?
Recruiter wants very extensive technical details about all of my previous work
Are there verbs that are neither telic, or atelic?
newcommand: Combine (optional) star and optional parameter
AG Cluster db upgrade by vendor
What options are left, if Britain cannot decide?
Professor being mistaken for a grad student
Happy pi day, everyone!
If I can solve Sudoku can I solve Travelling Salesman Problem(TSP)? If yes, how?
What is the significance behind "40 days" that often appears in the Bible?
Declaring defaulted assignment operator as constexpr: which compiler is right?
how to write formula in word in latex
How to deal with taxi scam when on vacation?
Site Collection Administrator has left the building
Why one should not leave fingerprints on bulbs and plugs?
Time travel from stationary position?
What are substitutions for coconut in curry?
Does Mathematica reuse previous computations?
What's the meaning of “spike” in the context of “adrenaline spike”?
Science-fiction short story where space navy wanted hospital ships and settlers had guns mounted everywhere
Logical notation
Why do passenger jet manufacturers design their planes with stall prevention systems?
How can my LaTeX files detect if they're being compiled on Overleaf?
How can I test if a document is being compiled by XeLaTeX?How can I fix `amssymb` in {wsu} in overleafHow can I write a big set in overleafCross-referencing between two files in overleafWhere do I find aux files in Overleaf?How can I transfer from using IEEEconf in Overleaf to ShareLaTeX?Syncing Overleaf to access .tex files in DropboxHow do I push a pdf from Overleaf to GitHub?Overleaf cannot render any LaTexOverleaf V2 - How to get BBL File?
I have a LaTeX file that executes an external shell command to get some information; this works on my local machine but fails on Overleaf. That's okay, not a big deal—if I can wrap the code in an if-then conditional that checks if it's executing on Overleaf.
Problem: how can I make my LaTeX code check if being run on Overleaf?
Clarification added 2017-07-31: I already know how to test for shell escapes, and conditionalize my code appropriately. The problem is not whether shell escapes work; the problem is really about testing for Overleaf versus other environments.
conditionals overleaf
add a comment |
I have a LaTeX file that executes an external shell command to get some information; this works on my local machine but fails on Overleaf. That's okay, not a big deal—if I can wrap the code in an if-then conditional that checks if it's executing on Overleaf.
Problem: how can I make my LaTeX code check if being run on Overleaf?
Clarification added 2017-07-31: I already know how to test for shell escapes, and conditionalize my code appropriately. The problem is not whether shell escapes work; the problem is really about testing for Overleaf versus other environments.
conditionals overleaf
1
surely you don't want o know if it's on overleaf but if shell escape is enabled?, which you can test for the integer value ofpdfshellescapeorshellescapeor in luastatus.shell_escapedependin on the tex flavour in use.
– David Carlisle
Jul 31 '17 at 7:28
No; in fact, shell escapes do work, and I already test for that in my code. But the command involves getting information using git, and this works differently in my local environment versus in Overleaf. I have given up trying to figure out why the command fails. I just want to skip the whole thing when running on Overleaf.
– mhucka
Jul 31 '17 at 15:01
oh in that case you could shell escape and look at the environment variables, surely overleaf must have some environment variable set with a distinguished value?
– David Carlisle
Jul 31 '17 at 15:28
That would work, but I have not found anything relevant in their documentation so far. I was hoping someone here would have already done something like this and knew the answer.
– mhucka
Jul 31 '17 at 15:31
just look at the output of the commandenvand pick one:-)
– David Carlisle
Jul 31 '17 at 15:33
add a comment |
I have a LaTeX file that executes an external shell command to get some information; this works on my local machine but fails on Overleaf. That's okay, not a big deal—if I can wrap the code in an if-then conditional that checks if it's executing on Overleaf.
Problem: how can I make my LaTeX code check if being run on Overleaf?
Clarification added 2017-07-31: I already know how to test for shell escapes, and conditionalize my code appropriately. The problem is not whether shell escapes work; the problem is really about testing for Overleaf versus other environments.
conditionals overleaf
I have a LaTeX file that executes an external shell command to get some information; this works on my local machine but fails on Overleaf. That's okay, not a big deal—if I can wrap the code in an if-then conditional that checks if it's executing on Overleaf.
Problem: how can I make my LaTeX code check if being run on Overleaf?
Clarification added 2017-07-31: I already know how to test for shell escapes, and conditionalize my code appropriately. The problem is not whether shell escapes work; the problem is really about testing for Overleaf versus other environments.
conditionals overleaf
conditionals overleaf
edited Jul 31 '17 at 15:08
mhucka
asked Jul 31 '17 at 4:36
mhuckamhucka
285311
285311
1
surely you don't want o know if it's on overleaf but if shell escape is enabled?, which you can test for the integer value ofpdfshellescapeorshellescapeor in luastatus.shell_escapedependin on the tex flavour in use.
– David Carlisle
Jul 31 '17 at 7:28
No; in fact, shell escapes do work, and I already test for that in my code. But the command involves getting information using git, and this works differently in my local environment versus in Overleaf. I have given up trying to figure out why the command fails. I just want to skip the whole thing when running on Overleaf.
– mhucka
Jul 31 '17 at 15:01
oh in that case you could shell escape and look at the environment variables, surely overleaf must have some environment variable set with a distinguished value?
– David Carlisle
Jul 31 '17 at 15:28
That would work, but I have not found anything relevant in their documentation so far. I was hoping someone here would have already done something like this and knew the answer.
– mhucka
Jul 31 '17 at 15:31
just look at the output of the commandenvand pick one:-)
– David Carlisle
Jul 31 '17 at 15:33
add a comment |
1
surely you don't want o know if it's on overleaf but if shell escape is enabled?, which you can test for the integer value ofpdfshellescapeorshellescapeor in luastatus.shell_escapedependin on the tex flavour in use.
– David Carlisle
Jul 31 '17 at 7:28
No; in fact, shell escapes do work, and I already test for that in my code. But the command involves getting information using git, and this works differently in my local environment versus in Overleaf. I have given up trying to figure out why the command fails. I just want to skip the whole thing when running on Overleaf.
– mhucka
Jul 31 '17 at 15:01
oh in that case you could shell escape and look at the environment variables, surely overleaf must have some environment variable set with a distinguished value?
– David Carlisle
Jul 31 '17 at 15:28
That would work, but I have not found anything relevant in their documentation so far. I was hoping someone here would have already done something like this and knew the answer.
– mhucka
Jul 31 '17 at 15:31
just look at the output of the commandenvand pick one:-)
– David Carlisle
Jul 31 '17 at 15:33
1
1
surely you don't want o know if it's on overleaf but if shell escape is enabled?, which you can test for the integer value of
pdfshellescape or shellescape or in lua status.shell_escape dependin on the tex flavour in use.– David Carlisle
Jul 31 '17 at 7:28
surely you don't want o know if it's on overleaf but if shell escape is enabled?, which you can test for the integer value of
pdfshellescape or shellescape or in lua status.shell_escape dependin on the tex flavour in use.– David Carlisle
Jul 31 '17 at 7:28
No; in fact, shell escapes do work, and I already test for that in my code. But the command involves getting information using git, and this works differently in my local environment versus in Overleaf. I have given up trying to figure out why the command fails. I just want to skip the whole thing when running on Overleaf.
– mhucka
Jul 31 '17 at 15:01
No; in fact, shell escapes do work, and I already test for that in my code. But the command involves getting information using git, and this works differently in my local environment versus in Overleaf. I have given up trying to figure out why the command fails. I just want to skip the whole thing when running on Overleaf.
– mhucka
Jul 31 '17 at 15:01
oh in that case you could shell escape and look at the environment variables, surely overleaf must have some environment variable set with a distinguished value?
– David Carlisle
Jul 31 '17 at 15:28
oh in that case you could shell escape and look at the environment variables, surely overleaf must have some environment variable set with a distinguished value?
– David Carlisle
Jul 31 '17 at 15:28
That would work, but I have not found anything relevant in their documentation so far. I was hoping someone here would have already done something like this and knew the answer.
– mhucka
Jul 31 '17 at 15:31
That would work, but I have not found anything relevant in their documentation so far. I was hoping someone here would have already done something like this and knew the answer.
– mhucka
Jul 31 '17 at 15:31
just look at the output of the command
env and pick one:-)– David Carlisle
Jul 31 '17 at 15:33
just look at the output of the command
env and pick one:-)– David Carlisle
Jul 31 '17 at 15:33
add a comment |
2 Answers
2
active
oldest
votes
I think the simplest solution is to determine the home path used by Overleaf and test against that. It's unlikely to match your local home path.
To find Overleaf's home path:
documentclass{article}
makeatletter
begingroupendlinechar=-1relax
everyeof{noexpand}%
edefx{endgroupdefnoexpandhomepath{%
@@input|"kpsewhich --var-value=HOME" }}x
makeatother
begin{document}
HOME: texttt{homepath}.
end{document}
Then copy the resulting path and test against that:
documentclass{article}
makeatletter
begingroupendlinechar=-1relax
everyeof{noexpand}%
edefx{endgroupdefnoexpandhomepath{%
@@input|"kpsewhich --var-value=HOME" }}x
makeatother
defoverleafhome{/home/whatever}% change as appropriate
begin{document}
ifxhomepathoverleafhome
Overleaf.
else
Not Overleaf.
fi
end{document}
1
I used this approach. Based on some testing, that path on Overleaf appears to be/home/wl. Thank you very much for this solution.
– mhucka
Aug 7 '17 at 20:00
Addendum: I examined other environment variables, per David Carlisle's comments at the top. Unfortunately, no other variable other thanHOMEseemed safe enough to use (in the sense that I couldn't be sure a collaborator would get the expected behavior if the used the files in their local environment).
– mhucka
Aug 7 '17 at 20:02
add a comment |
The solution works well with overleaf and a linux machine, but it doesn't work with windows due to the backslash in the path. Under windows (miktex), an
! Undefined control sequence.
l.1 C:Users
error occurs.
I believe in @@input|"kpsewhich --var-value=HOME" the backslashes need to be escaped, but I couldn't figure out how. Does anyone know how to solve this?
New contributor
Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f384066%2fhow-can-my-latex-files-detect-if-theyre-being-compiled-on-overleaf%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
I think the simplest solution is to determine the home path used by Overleaf and test against that. It's unlikely to match your local home path.
To find Overleaf's home path:
documentclass{article}
makeatletter
begingroupendlinechar=-1relax
everyeof{noexpand}%
edefx{endgroupdefnoexpandhomepath{%
@@input|"kpsewhich --var-value=HOME" }}x
makeatother
begin{document}
HOME: texttt{homepath}.
end{document}
Then copy the resulting path and test against that:
documentclass{article}
makeatletter
begingroupendlinechar=-1relax
everyeof{noexpand}%
edefx{endgroupdefnoexpandhomepath{%
@@input|"kpsewhich --var-value=HOME" }}x
makeatother
defoverleafhome{/home/whatever}% change as appropriate
begin{document}
ifxhomepathoverleafhome
Overleaf.
else
Not Overleaf.
fi
end{document}
1
I used this approach. Based on some testing, that path on Overleaf appears to be/home/wl. Thank you very much for this solution.
– mhucka
Aug 7 '17 at 20:00
Addendum: I examined other environment variables, per David Carlisle's comments at the top. Unfortunately, no other variable other thanHOMEseemed safe enough to use (in the sense that I couldn't be sure a collaborator would get the expected behavior if the used the files in their local environment).
– mhucka
Aug 7 '17 at 20:02
add a comment |
I think the simplest solution is to determine the home path used by Overleaf and test against that. It's unlikely to match your local home path.
To find Overleaf's home path:
documentclass{article}
makeatletter
begingroupendlinechar=-1relax
everyeof{noexpand}%
edefx{endgroupdefnoexpandhomepath{%
@@input|"kpsewhich --var-value=HOME" }}x
makeatother
begin{document}
HOME: texttt{homepath}.
end{document}
Then copy the resulting path and test against that:
documentclass{article}
makeatletter
begingroupendlinechar=-1relax
everyeof{noexpand}%
edefx{endgroupdefnoexpandhomepath{%
@@input|"kpsewhich --var-value=HOME" }}x
makeatother
defoverleafhome{/home/whatever}% change as appropriate
begin{document}
ifxhomepathoverleafhome
Overleaf.
else
Not Overleaf.
fi
end{document}
1
I used this approach. Based on some testing, that path on Overleaf appears to be/home/wl. Thank you very much for this solution.
– mhucka
Aug 7 '17 at 20:00
Addendum: I examined other environment variables, per David Carlisle's comments at the top. Unfortunately, no other variable other thanHOMEseemed safe enough to use (in the sense that I couldn't be sure a collaborator would get the expected behavior if the used the files in their local environment).
– mhucka
Aug 7 '17 at 20:02
add a comment |
I think the simplest solution is to determine the home path used by Overleaf and test against that. It's unlikely to match your local home path.
To find Overleaf's home path:
documentclass{article}
makeatletter
begingroupendlinechar=-1relax
everyeof{noexpand}%
edefx{endgroupdefnoexpandhomepath{%
@@input|"kpsewhich --var-value=HOME" }}x
makeatother
begin{document}
HOME: texttt{homepath}.
end{document}
Then copy the resulting path and test against that:
documentclass{article}
makeatletter
begingroupendlinechar=-1relax
everyeof{noexpand}%
edefx{endgroupdefnoexpandhomepath{%
@@input|"kpsewhich --var-value=HOME" }}x
makeatother
defoverleafhome{/home/whatever}% change as appropriate
begin{document}
ifxhomepathoverleafhome
Overleaf.
else
Not Overleaf.
fi
end{document}
I think the simplest solution is to determine the home path used by Overleaf and test against that. It's unlikely to match your local home path.
To find Overleaf's home path:
documentclass{article}
makeatletter
begingroupendlinechar=-1relax
everyeof{noexpand}%
edefx{endgroupdefnoexpandhomepath{%
@@input|"kpsewhich --var-value=HOME" }}x
makeatother
begin{document}
HOME: texttt{homepath}.
end{document}
Then copy the resulting path and test against that:
documentclass{article}
makeatletter
begingroupendlinechar=-1relax
everyeof{noexpand}%
edefx{endgroupdefnoexpandhomepath{%
@@input|"kpsewhich --var-value=HOME" }}x
makeatother
defoverleafhome{/home/whatever}% change as appropriate
begin{document}
ifxhomepathoverleafhome
Overleaf.
else
Not Overleaf.
fi
end{document}
answered Jul 31 '17 at 16:56
Nicola TalbotNicola Talbot
34.4k259105
34.4k259105
1
I used this approach. Based on some testing, that path on Overleaf appears to be/home/wl. Thank you very much for this solution.
– mhucka
Aug 7 '17 at 20:00
Addendum: I examined other environment variables, per David Carlisle's comments at the top. Unfortunately, no other variable other thanHOMEseemed safe enough to use (in the sense that I couldn't be sure a collaborator would get the expected behavior if the used the files in their local environment).
– mhucka
Aug 7 '17 at 20:02
add a comment |
1
I used this approach. Based on some testing, that path on Overleaf appears to be/home/wl. Thank you very much for this solution.
– mhucka
Aug 7 '17 at 20:00
Addendum: I examined other environment variables, per David Carlisle's comments at the top. Unfortunately, no other variable other thanHOMEseemed safe enough to use (in the sense that I couldn't be sure a collaborator would get the expected behavior if the used the files in their local environment).
– mhucka
Aug 7 '17 at 20:02
1
1
I used this approach. Based on some testing, that path on Overleaf appears to be
/home/wl. Thank you very much for this solution.– mhucka
Aug 7 '17 at 20:00
I used this approach. Based on some testing, that path on Overleaf appears to be
/home/wl. Thank you very much for this solution.– mhucka
Aug 7 '17 at 20:00
Addendum: I examined other environment variables, per David Carlisle's comments at the top. Unfortunately, no other variable other than
HOME seemed safe enough to use (in the sense that I couldn't be sure a collaborator would get the expected behavior if the used the files in their local environment).– mhucka
Aug 7 '17 at 20:02
Addendum: I examined other environment variables, per David Carlisle's comments at the top. Unfortunately, no other variable other than
HOME seemed safe enough to use (in the sense that I couldn't be sure a collaborator would get the expected behavior if the used the files in their local environment).– mhucka
Aug 7 '17 at 20:02
add a comment |
The solution works well with overleaf and a linux machine, but it doesn't work with windows due to the backslash in the path. Under windows (miktex), an
! Undefined control sequence.
l.1 C:Users
error occurs.
I believe in @@input|"kpsewhich --var-value=HOME" the backslashes need to be escaped, but I couldn't figure out how. Does anyone know how to solve this?
New contributor
Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
The solution works well with overleaf and a linux machine, but it doesn't work with windows due to the backslash in the path. Under windows (miktex), an
! Undefined control sequence.
l.1 C:Users
error occurs.
I believe in @@input|"kpsewhich --var-value=HOME" the backslashes need to be escaped, but I couldn't figure out how. Does anyone know how to solve this?
New contributor
Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
The solution works well with overleaf and a linux machine, but it doesn't work with windows due to the backslash in the path. Under windows (miktex), an
! Undefined control sequence.
l.1 C:Users
error occurs.
I believe in @@input|"kpsewhich --var-value=HOME" the backslashes need to be escaped, but I couldn't figure out how. Does anyone know how to solve this?
New contributor
Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
The solution works well with overleaf and a linux machine, but it doesn't work with windows due to the backslash in the path. Under windows (miktex), an
! Undefined control sequence.
l.1 C:Users
error occurs.
I believe in @@input|"kpsewhich --var-value=HOME" the backslashes need to be escaped, but I couldn't figure out how. Does anyone know how to solve this?
New contributor
Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
answered 6 mins ago
BenBen
1
1
New contributor
Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f384066%2fhow-can-my-latex-files-detect-if-theyre-being-compiled-on-overleaf%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
1
surely you don't want o know if it's on overleaf but if shell escape is enabled?, which you can test for the integer value of
pdfshellescapeorshellescapeor in luastatus.shell_escapedependin on the tex flavour in use.– David Carlisle
Jul 31 '17 at 7:28
No; in fact, shell escapes do work, and I already test for that in my code. But the command involves getting information using git, and this works differently in my local environment versus in Overleaf. I have given up trying to figure out why the command fails. I just want to skip the whole thing when running on Overleaf.
– mhucka
Jul 31 '17 at 15:01
oh in that case you could shell escape and look at the environment variables, surely overleaf must have some environment variable set with a distinguished value?
– David Carlisle
Jul 31 '17 at 15:28
That would work, but I have not found anything relevant in their documentation so far. I was hoping someone here would have already done something like this and knew the answer.
– mhucka
Jul 31 '17 at 15:31
just look at the output of the command
envand pick one:-)– David Carlisle
Jul 31 '17 at 15:33