Using the % percent sign in lstlisting breaks text coloring
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.
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
|
show 1 more comment
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.
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
%
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 thoughtlstlisting
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 thatprintf(
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
|
show 1 more comment
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.
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
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.
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
color lstlisting
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 thoughtlstlisting
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 thatprintf(
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
|
show 1 more comment
%
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 thoughtlstlisting
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 thatprintf(
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
|
show 1 more comment
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
});
}
});
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%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
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%2f470170%2fusing-the-percent-sign-in-lstlisting-breaks-text-coloring%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
%
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 thoughtlstlisting
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