
Я хочу определить несколько новых команд, чтобы выделить части моего кода (на самом деле это для дампа трассировки, а не для языка программирования).
Моя проблема в том, что я не могу заставить цветной текст правильно совпадать с текстом листинга. Смотрите "Hello worlds".
Я пробовал добавлять \ttfamily
в новое определение команды, но это не помогло. Также пробовал разные размеры шрифтов, и я считаю, что и цветной, и не цветной текстовый шрифт имеют одинаковый размер, поэтому я не думаю, что это проблема.
\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}
решение1
Решил проблему! Я добавил: columns=fullflexible
.
Я должен упомянуть, что описание fullflexible в документации кажется мне нелогичным в отношении того, что оно на самом деле делает. Это потому, что оно, по-видимому, указывает на то, что fixed сохраняет столбцы "выровненными", а Flexible "уничтожает" столбцы, чтобы гарантировать, что исходное выравнивание шрифта соблюдается. Однако, fixed
не работает, но fullflexible
работает. Если кто-то объяснит, почему, я буду признателен.
См. раздел 2.10:списки 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}