包含符号“ ”的可执行代码逐字插入到 pdf 中。复制回文本编辑器时出错

包含符号“ ”的可执行代码逐字插入到 pdf 中。复制回文本编辑器时出错

我正在尝试在 PDF 中插入 Octave 代码。但是,符号有问题'(表示 Octave 代码中的转置)。但是,当我从生成的 PDF 中复制代码时,代码无法运行:

\documentclass[a4paper, 12pt]{book}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\usepackage{url}
\usepackage{framed}
\usepackage{setspace}
% \usepackage{mathptmx}
\usepackage{multirow}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{framed}
\usepackage{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=blue,
filecolor=magenta,      
urlcolor=cyan,
}

\usepackage{caption}
%\usepackage{calrsfs}
%\DeclareMathAlphabet{\pazocal}{OMS}{zplm}{m}{n}

\begin{document}
\setlength{\parindent}{0cm}
\renewcommand{\baselinestretch}{0.5}
\title{Math notes}
\author{Eric Buffle}
\date{\today}
\maketitle

\tableofcontents{}

\definecolor{shadecolor}{RGB}{240,248,255}
\begin{shaded}
\begin{verbatim}
% BeamStretch
EA=1.0; L=3; F=0.2; N=20; h = L/(N+1); % stepsize
x = (h:h:L)';
f = zeros(size(x)); % f(x) = 0
g = h^2/EA*f ; g(N+1) = g(N+1)/2+h*F/EA;
%% build the triadiagonal , symmetric matrix
di = 2*ones(N+1,1); di(N+1) = 1; % diagonal
up = -ones(N,1); % upper and lower diagonal
u = trisolve(di,up,g); plot ([0;x] ,[0;u])
\end{verbatim}
\end{shaded}

\end{document}

错误信息如下:

parse error:

  syntax error

>>> x = (h:h:L)’;
               ^

error: 'x' undefined near line 1 column 16
error: 'f' undefined near line 1 column 12
error: 'g' undefined near line 1 column 20

我也尝试过注释掉,\usepackage{mathptmx}但问题仍然存在,我最近发布了一个类似问题但我仍然找不到解决问题的方法

答案1

问题在于verbatim处理单引号。如果你\usepackage{upquote}在前言中加载,'将被编译为'。否则,它将被编译为,即不同的字符。

请注意,我删除了那些对于说明问题来说不是绝对必要的包和行。

\documentclass{book}

\usepackage{upquote}

\begin{document}
\begin{verbatim}
% BeamStretch
EA=1.0; L=3; F=0.2; N=20; h = L/(N+1); % stepsize
x = (h:h:L)';
f = zeros(size(x)); % f(x) = 0
g = h^2/EA*f ; g(N+1) = g(N+1)/2+h*F/EA;
%% build the triadiagonal , symmetric matrix
di = 2*ones(N+1,1); di(N+1) = 1; % diagonal
up = -ones(N,1); % upper and lower diagonal
u = trisolve(di,up,g); plot ([0;x] ,[0;u])
\end{verbatim}

\end{document}

相关内容