Using the % percent sign in lstlisting breaks text coloring












1















In my lstlisting, If I use a % sign, the highlighting for the rest of the file no longer works.



    subsection{Dereferencing pointers}
par When you dereference a pointer, you are going to the memory address, and grabbing the piece of
information from there.
begin{lstlisting}[language=C]
printf("%p", pAge);
end{lstlisting}
subsection{why use pointers?}


Here is what it looks like in latex.



enter image description here



You can see that the subsection on the very first line is purple and there is no highlighting of lstlisting in the first begin{lstlisting} but then right after adding the % sign, the lstlisting became highlighted indicating it is spelled wrong, and the subsection at the very last line is not in purple text.



As soon as removing the % signs, it is fixed. Also, when I add before each % the problem is also fixed but then the backslash shows up in the compiled version which I don't want.



Here is my lstlisting style definition.



 lstdefinestyle{mystyle}{
backgroundcolor=color{backcolour},
commentstyle=color{codegreen},
keywordstyle=color{magenta},
numberstyle=tinycolor{codegray},
stringstyle=color{codepurple},
basicstyle=footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2
}
lstset{style=mystyle, escapeinside={|}{|}}









share|improve this question























  • % is a reserved character in (La)TeX which indicates a comment. Have you tried % (to escape the character)?

    – whatisit
    Jan 15 at 1:49













  • Yes, however when I use % then the also shows up in the compiled pdf file, which I do not want. Is there no way to prevent that from happening? I thought lstlisting prints the text verbatim and as a result wouldn't change anything outside of the environment.

    – appljuice
    Jan 15 at 1:52













  • Ah, sorry, I missed that you indicated that. By the way, it would be helpful to make this into a complete minimal working example rather than a code snippet.

    – whatisit
    Jan 15 at 1:55













  • So I just realized that if I do |%| then I can get just % to show up without messing up text color in the editor but then in the pdf, % is not purple like the text should be; this also doesn't seem to be a very good solution.

    – appljuice
    Jan 15 at 2:00






  • 1





    Do you mean in your editor? It's just your editor getting confused in its syntax highlighting because it thinks you have mismatched parentheses. The editor doesn't know about code listings. So it thinks that printf( gives an open parenthesis. Then there is a % comment character, so it doesn't see the closing parenthesis. I don't know what you can do about this other than use a different editor.

    – David Purton
    Jan 15 at 2:54
















1















In my lstlisting, If I use a % sign, the highlighting for the rest of the file no longer works.



    subsection{Dereferencing pointers}
par When you dereference a pointer, you are going to the memory address, and grabbing the piece of
information from there.
begin{lstlisting}[language=C]
printf("%p", pAge);
end{lstlisting}
subsection{why use pointers?}


Here is what it looks like in latex.



enter image description here



You can see that the subsection on the very first line is purple and there is no highlighting of lstlisting in the first begin{lstlisting} but then right after adding the % sign, the lstlisting became highlighted indicating it is spelled wrong, and the subsection at the very last line is not in purple text.



As soon as removing the % signs, it is fixed. Also, when I add before each % the problem is also fixed but then the backslash shows up in the compiled version which I don't want.



Here is my lstlisting style definition.



 lstdefinestyle{mystyle}{
backgroundcolor=color{backcolour},
commentstyle=color{codegreen},
keywordstyle=color{magenta},
numberstyle=tinycolor{codegray},
stringstyle=color{codepurple},
basicstyle=footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2
}
lstset{style=mystyle, escapeinside={|}{|}}









share|improve this question























  • % is a reserved character in (La)TeX which indicates a comment. Have you tried % (to escape the character)?

    – whatisit
    Jan 15 at 1:49













  • Yes, however when I use % then the also shows up in the compiled pdf file, which I do not want. Is there no way to prevent that from happening? I thought lstlisting prints the text verbatim and as a result wouldn't change anything outside of the environment.

    – appljuice
    Jan 15 at 1:52













  • Ah, sorry, I missed that you indicated that. By the way, it would be helpful to make this into a complete minimal working example rather than a code snippet.

    – whatisit
    Jan 15 at 1:55













  • So I just realized that if I do |%| then I can get just % to show up without messing up text color in the editor but then in the pdf, % is not purple like the text should be; this also doesn't seem to be a very good solution.

    – appljuice
    Jan 15 at 2:00






  • 1





    Do you mean in your editor? It's just your editor getting confused in its syntax highlighting because it thinks you have mismatched parentheses. The editor doesn't know about code listings. So it thinks that printf( gives an open parenthesis. Then there is a % comment character, so it doesn't see the closing parenthesis. I don't know what you can do about this other than use a different editor.

    – David Purton
    Jan 15 at 2:54














1












1








1








In my lstlisting, If I use a % sign, the highlighting for the rest of the file no longer works.



    subsection{Dereferencing pointers}
par When you dereference a pointer, you are going to the memory address, and grabbing the piece of
information from there.
begin{lstlisting}[language=C]
printf("%p", pAge);
end{lstlisting}
subsection{why use pointers?}


Here is what it looks like in latex.



enter image description here



You can see that the subsection on the very first line is purple and there is no highlighting of lstlisting in the first begin{lstlisting} but then right after adding the % sign, the lstlisting became highlighted indicating it is spelled wrong, and the subsection at the very last line is not in purple text.



As soon as removing the % signs, it is fixed. Also, when I add before each % the problem is also fixed but then the backslash shows up in the compiled version which I don't want.



Here is my lstlisting style definition.



 lstdefinestyle{mystyle}{
backgroundcolor=color{backcolour},
commentstyle=color{codegreen},
keywordstyle=color{magenta},
numberstyle=tinycolor{codegray},
stringstyle=color{codepurple},
basicstyle=footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2
}
lstset{style=mystyle, escapeinside={|}{|}}









share|improve this question














In my lstlisting, If I use a % sign, the highlighting for the rest of the file no longer works.



    subsection{Dereferencing pointers}
par When you dereference a pointer, you are going to the memory address, and grabbing the piece of
information from there.
begin{lstlisting}[language=C]
printf("%p", pAge);
end{lstlisting}
subsection{why use pointers?}


Here is what it looks like in latex.



enter image description here



You can see that the subsection on the very first line is purple and there is no highlighting of lstlisting in the first begin{lstlisting} but then right after adding the % sign, the lstlisting became highlighted indicating it is spelled wrong, and the subsection at the very last line is not in purple text.



As soon as removing the % signs, it is fixed. Also, when I add before each % the problem is also fixed but then the backslash shows up in the compiled version which I don't want.



Here is my lstlisting style definition.



 lstdefinestyle{mystyle}{
backgroundcolor=color{backcolour},
commentstyle=color{codegreen},
keywordstyle=color{magenta},
numberstyle=tinycolor{codegray},
stringstyle=color{codepurple},
basicstyle=footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2
}
lstset{style=mystyle, escapeinside={|}{|}}






color lstlisting






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 15 at 1:43









appljuiceappljuice

182




182













  • % is a reserved character in (La)TeX which indicates a comment. Have you tried % (to escape the character)?

    – whatisit
    Jan 15 at 1:49













  • Yes, however when I use % then the also shows up in the compiled pdf file, which I do not want. Is there no way to prevent that from happening? I thought lstlisting prints the text verbatim and as a result wouldn't change anything outside of the environment.

    – appljuice
    Jan 15 at 1:52













  • Ah, sorry, I missed that you indicated that. By the way, it would be helpful to make this into a complete minimal working example rather than a code snippet.

    – whatisit
    Jan 15 at 1:55













  • So I just realized that if I do |%| then I can get just % to show up without messing up text color in the editor but then in the pdf, % is not purple like the text should be; this also doesn't seem to be a very good solution.

    – appljuice
    Jan 15 at 2:00






  • 1





    Do you mean in your editor? It's just your editor getting confused in its syntax highlighting because it thinks you have mismatched parentheses. The editor doesn't know about code listings. So it thinks that printf( gives an open parenthesis. Then there is a % comment character, so it doesn't see the closing parenthesis. I don't know what you can do about this other than use a different editor.

    – David Purton
    Jan 15 at 2:54



















  • % is a reserved character in (La)TeX which indicates a comment. Have you tried % (to escape the character)?

    – whatisit
    Jan 15 at 1:49













  • Yes, however when I use % then the also shows up in the compiled pdf file, which I do not want. Is there no way to prevent that from happening? I thought lstlisting prints the text verbatim and as a result wouldn't change anything outside of the environment.

    – appljuice
    Jan 15 at 1:52













  • Ah, sorry, I missed that you indicated that. By the way, it would be helpful to make this into a complete minimal working example rather than a code snippet.

    – whatisit
    Jan 15 at 1:55













  • So I just realized that if I do |%| then I can get just % to show up without messing up text color in the editor but then in the pdf, % is not purple like the text should be; this also doesn't seem to be a very good solution.

    – appljuice
    Jan 15 at 2:00






  • 1





    Do you mean in your editor? It's just your editor getting confused in its syntax highlighting because it thinks you have mismatched parentheses. The editor doesn't know about code listings. So it thinks that printf( gives an open parenthesis. Then there is a % comment character, so it doesn't see the closing parenthesis. I don't know what you can do about this other than use a different editor.

    – David Purton
    Jan 15 at 2:54

















% is a reserved character in (La)TeX which indicates a comment. Have you tried % (to escape the character)?

– whatisit
Jan 15 at 1:49







% is a reserved character in (La)TeX which indicates a comment. Have you tried % (to escape the character)?

– whatisit
Jan 15 at 1:49















Yes, however when I use % then the also shows up in the compiled pdf file, which I do not want. Is there no way to prevent that from happening? I thought lstlisting prints the text verbatim and as a result wouldn't change anything outside of the environment.

– appljuice
Jan 15 at 1:52







Yes, however when I use % then the also shows up in the compiled pdf file, which I do not want. Is there no way to prevent that from happening? I thought lstlisting prints the text verbatim and as a result wouldn't change anything outside of the environment.

– appljuice
Jan 15 at 1:52















Ah, sorry, I missed that you indicated that. By the way, it would be helpful to make this into a complete minimal working example rather than a code snippet.

– whatisit
Jan 15 at 1:55







Ah, sorry, I missed that you indicated that. By the way, it would be helpful to make this into a complete minimal working example rather than a code snippet.

– whatisit
Jan 15 at 1:55















So I just realized that if I do |%| then I can get just % to show up without messing up text color in the editor but then in the pdf, % is not purple like the text should be; this also doesn't seem to be a very good solution.

– appljuice
Jan 15 at 2:00





So I just realized that if I do |%| then I can get just % to show up without messing up text color in the editor but then in the pdf, % is not purple like the text should be; this also doesn't seem to be a very good solution.

– appljuice
Jan 15 at 2:00




1




1





Do you mean in your editor? It's just your editor getting confused in its syntax highlighting because it thinks you have mismatched parentheses. The editor doesn't know about code listings. So it thinks that printf( gives an open parenthesis. Then there is a % comment character, so it doesn't see the closing parenthesis. I don't know what you can do about this other than use a different editor.

– David Purton
Jan 15 at 2:54





Do you mean in your editor? It's just your editor getting confused in its syntax highlighting because it thinks you have mismatched parentheses. The editor doesn't know about code listings. So it thinks that printf( gives an open parenthesis. Then there is a % comment character, so it doesn't see the closing parenthesis. I don't know what you can do about this other than use a different editor.

– David Purton
Jan 15 at 2:54










0






active

oldest

votes











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%2f470170%2fusing-the-percent-sign-in-lstlisting-breaks-text-coloring%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















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%2f470170%2fusing-the-percent-sign-in-lstlisting-breaks-text-coloring%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

Biblatex bibliography style without URLs when DOI exists (in Overleaf with Zotero bibliography)

ComboBox Display Member on multiple fields

Is it possible to collect Nectar points via Trainline?