
Quero definir alguns novos comandos para destacar partes do meu código (na verdade, isso é para um dump de rastreamento, não para uma linguagem de programação).
Meu problema é que não consigo alinhar o texto colorido corretamente com o texto das listagens. Veja o "Olá mundos".
Tentei adicionar \ttfamily
à nova definição de comando, mas não ajudou. Também tentei tamanhos de fonte diferentes e acredito que as fontes de texto coloridas e não coloridas são do mesmo tamanho, então não acho que esse seja o problema.
\documentclass{article}
\usepackage{listings}
\lstset{
basicstyle=\ttfamily\large,
breakatwhitespace=false,
breaklines=true,
escapeinside={\%*}{*},
}
\usepackage{color}
\definecolor{mycolorGreenOne}{rgb}{0, 0.7, 0}
\newcommand*{\listingsHigh}[1]{\textcolor{red}{#1}}
\newcommand*{\LighthighOne}{\color{cyan}}
\begin{document}
\begin{lstlisting}
My text: %*\LighthighOne Hello world!* Goodbye!
My text: Hello world! Goodbye!
My text: %*\listingsHigh{Hello world!}* Goodbye!
\end{lstlisting}
\end{document}
Responder1
Resolveu o problema! Eu adicionei: columns=fullflexible
.
Devo mencionar que a descrição de fullflexible na documentação me parece contra-intuitiva em relação ao que realmente está acontecendo. Isso porque parece indicar que o fixo mantém as colunas "alinhadas" e o flexível "destrói" as colunas para garantir que o alinhamento da fonte original seja respeitado. No entanto, fixed
não funciona, mas fullflexible
funciona. Se alguém se importar em explicar por que eu agradeceria.
Consulte a seção 2.10:listagens pdf.
\documentclass{article}
\usepackage{listings}
\lstset{
basicstyle=\ttfamily\large,
breakatwhitespace=false,
breaklines=true,
escapeinside={\%*}{*},
columns=fullflexible
}
\usepackage{color}
\definecolor{mycolorGreenOne}{rgb}{0, 0.7, 0}
\newcommand*{\listingsHigh}[1]{\textcolor{red}{#1}}
\newcommand*{\LighthighOne}{\color{cyan}}
\begin{document}
\begin{lstlisting}
My text: %*\LighthighOne Hello world!* Goodbye!
My text: Hello world! Goodbye!
My text: %*\listingsHigh{Hello world!}* Goodbye!
\end{lstlisting}
\end{document}