LINUX.ORG.RU

История изменений

Исправление Kroz, (текущая версия) :

Короче, после часа разбирательства получил рабочий вариант. Даже не хочу даже разбираться почему это работает. Магия, не трогать.

\documentclass[a4paper,10pt]{book}

\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[english,ukrainian]{babel}

\usepackage{minted}

%%%%%%%%%%%%%%% Сам патч
\makeatletter
    
\newcommand{\minted@write@detok}[1]{%
  \immediate\write\FV@OutFile{\detokenize{#1}}}%

\newcommand{\minted@FVB@VerbatimOut}[1]{%
  \@bsphack
  \begingroup
    \FV@UseKeyValues
    \FV@DefineWhiteSpace
    \def\FV@Space{\space}%
    \FV@DefineTabOut
    %\def\FV@ProcessLine{\immediate\write\FV@OutFile}% %Old, non-Unicode version
    \let\FV@ProcessLine\minted@write@detok %Patch for Unicode
    \immediate\openout\FV@OutFile #1\relax
    \let\FV@FontScanPrep\relax
%% DG/SR modification begin - May. 18, 1998 (to avoid problems with ligatures)
    \let\@noligs\relax
%% DG/SR modification end
    \FV@Scan}
    
\let\FVB@VerbatimOut\minted@FVB@VerbatimOut

\renewcommand\minted@savecode[1]{
  \immediate\openout\minted@code\jobname.pyg
  \immediate\write\minted@code{\expandafter\detokenize\expandafter{#1}}%
  \immediate\closeout\minted@code}
%\makeatother
%%%%%%%%%%%%%%% Конец патча

\newenvironment{code}{
	\VerbatimEnvironment
	\minted@resetoptions
    \begin{VerbatimOut}{\jobname.pyg}}
{
     \end{VerbatimOut}
     \minted@pygmentize{c++}
     \DeleteFile{\jobname.pyg}
}

\begin{document}

\begin{code}
double m[4];    // Работает
m[0] = 1;
double *n = (double *) malloc(pocet_cisel * 4 * sizeof (double));
n[4 + 0] = 1;
free(n);
\end{code}

\end{document}

Исходная версия Kroz, :

Короче, это какая-то магия. После часа разбирательства получил рабочий вариант. Даже не хочу даже разбираться почему это работает.

\documentclass[a4paper,10pt]{book}

\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[english,ukrainian]{babel}

\usepackage{minted}

%%%%%%%%%%%%%%% Сам патч
\makeatletter
    
\newcommand{\minted@write@detok}[1]{%
  \immediate\write\FV@OutFile{\detokenize{#1}}}%

\newcommand{\minted@FVB@VerbatimOut}[1]{%
  \@bsphack
  \begingroup
    \FV@UseKeyValues
    \FV@DefineWhiteSpace
    \def\FV@Space{\space}%
    \FV@DefineTabOut
    %\def\FV@ProcessLine{\immediate\write\FV@OutFile}% %Old, non-Unicode version
    \let\FV@ProcessLine\minted@write@detok %Patch for Unicode
    \immediate\openout\FV@OutFile #1\relax
    \let\FV@FontScanPrep\relax
%% DG/SR modification begin - May. 18, 1998 (to avoid problems with ligatures)
    \let\@noligs\relax
%% DG/SR modification end
    \FV@Scan}
    
\let\FVB@VerbatimOut\minted@FVB@VerbatimOut

\renewcommand\minted@savecode[1]{
  \immediate\openout\minted@code\jobname.pyg
  \immediate\write\minted@code{\expandafter\detokenize\expandafter{#1}}%
  \immediate\closeout\minted@code}
%\makeatother
%%%%%%%%%%%%%%% Конец патча

\newenvironment{code}{
	\VerbatimEnvironment
	\minted@resetoptions
    \begin{VerbatimOut}{\jobname.pyg}}
{
     \end{VerbatimOut}
     \minted@pygmentize{c++}
     \DeleteFile{\jobname.pyg}
}

\begin{document}

\begin{code}
double m[4];    // Работает
m[0] = 1;
double *n = (double *) malloc(pocet_cisel * 4 * sizeof (double));
n[4 + 0] = 1;
free(n);
\end{code}

\end{document}