빈 줄과 선행 공백 들여쓰기에 대해 복사-붙여넣기가 올바르게 작동하는 PDF를 생성하는 LaTeX 문서를 만드는 방법은 무엇입니까?

빈 줄과 선행 공백 들여쓰기에 대해 복사-붙여넣기가 올바르게 작동하는 PDF를 생성하는 LaTeX 문서를 만드는 방법은 무엇입니까?

우리는 다양한 설치 지침과 기타 기술 텍스트가 포함된 PDF 문서를 LaTeX로 작성하고 있습니다. 우리의 생각은 사용자가 Serif 글꼴로 된 다양한 지침을 읽은 다음 콘솔이나 편집기에 복사하여 붙여 넣을 여러 줄의 모노타입 섹션이 있다는 것입니다. 즉 모노타입 인라인은 C와 같은 쉘스크립트입니다.

마지막으로 우리는 쉘/C/등을 선호합니다. 단편이 될 것이스케이프되지 않은(이것은 HEREDOC, <PRE>일종의 동작입니다). 이러한 이유로 우리는 Tex 파일인 텍스트 콘텐츠에 대한 HEREDOC 동작에 대한 "목록" 패키지 및 \lstset+ 양식을 시도했으며 이스케이프 시퀀스를 사용하지 않고 텍스트를 포함하고 텍스트 복사를 PDF의 것으로 만들려고 했습니다. 예상대로 작동합니다.\begin{lstlisting}\usepackage[space=true]{accsupp}

그러나 이 시도는 성공하지 못했고 그 이유를 이해할 수 없습니다. 특히 복사된 텍스트가 다음과 같은 경향이 있다는 것입니다.빈 줄과 선행 공백 제외.

마지막 세부정보:

  • 우리는 기술 글꼴로 IBM Plex Mono를 사용하는 것을 좋아합니다.

  • 필요한 경우 각 빈 줄에 빈 공간을 추가하는 것을 허용할 수 있습니다.

  • 우리는 페이지 바닥글(및 측면의 모든 줄 번호)이 복사 붙여넣기에 포함되지 않도록 몇 가지 트릭을 사용하려고 시도했으며 이는 꽤 잘 작동했습니다.

  • 복사-붙여넣기가 특정 PDF 뷰어에서만 작동한다면 괜찮습니다. 그렇다면 크로스플랫폼 PDF 뷰어 중 하나가 선호될 것입니다: Evince, Chrome, Firefox, MuPDF. (더 생각나는 것이 있으면 공유해 주세요.) 제한된 플랫폼의 PDF 뷰어는 Adobe Reader 및 PDF Exchange Viewer입니다.

  • 만약에heredoc 스타일은 라텍스에서는 불가능합니다. 그러면 우리는 그것 없이도 살 수 있습니다. 예를 들어 한 줄에 하나의 BeginAccsupp 또는 필요한 다른 조치가 있습니다.

이에 대한 귀하의 생각과 예를 공유해 주시겠습니까?

이것이 만족스럽게 이루어질 수 없다면, "htlatex"에 의해 생성된 HTML과 같은 다른 출력 언어를 사용하는 것이 어떻겠습니까? PS를 사용하는 것이 도움이 됩니까? 그렇다면 어떤 뷰어 소프트웨어가 있습니까?

우리가 시도한 Tex 코드

\LoadClass[a4paper,12pt,openright,oneside,chapter=TITLE,section=TITLE,hidelinks]
 {article}
\documentclass{article}
\RequirePackage[utf8]{inputenc}
\RequirePackage[a4paper,margin=2cm]{geometry}
\RequirePackage{plex-mono}
\usepackage[space=true]{accsupp}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{listings}
\RequirePackage{xcolor}
\lstset{ 
 % Configuration to make it unescaped and copy-paste right
 %upquote=true,
 %columns=fullflexible,
 %showstringspaces=true,
 %literate={\ }{{\copyablespace}}1,
 % For the looks - make it monotype etc
 %frame=tb,
 %aboveskip=3mm,
 %belowskip=3mm,
 %numbers=left,
 %numberstyle=\tiny\color{lightgray}\ttfamily, % \nonumbercopy,
 %keywordstyle=\color{green},
 %commentstyle=\color{blue},
 %stringstyle=\color{red},
 %breaklines=true,
 %breakatwhitespace=true,
 %tabsize=2,
 %numbersep=0.5em,
 %framerule=0pt,
 %xleftmargin=10pt,
 %xrightmargin=0pt,
 breaklines=true,
 backgroundcolor=\color{yellow},
 %keepspaces=true,
 basicstyle=\fontsize{9}{11}\ttfamily%,
 %columns=fixed,
 %fontadjust=true,
 %showlines=false,
 %showstringspaces=false
} 

%\newcommand{\copyablespace}{
%    \BeginAccSupp{method=hex,unicode,ActualText=0040}
%\ %
%    \EndAccSupp{}
%}

% Make the line numbers not appear in copy-paste
% \newcommand{\nonumbercopy}[1]{
%   \BeginAccSupp{method=hex,unicode,ActualText=00A0}#1\EndAccSupp{}
% }

% Footer
\renewcommand{\title}[1]{
 \pagestyle{fancy}               
 \lhead{}
 \rhead{}
 \cfoot{\squelch{\thepage}}
}


\begin{document}
    \noindent Beginning of document, serif outside unescaped part.
    \begin{lstlisting}
This is the uppermost-left unescaped monotyped text, it has no indentation.
  This is the second line, it has three letters of indentation
Here are some characters that prove that we can type without escaping: \{$
Now let's do an empty line:

The empty line worked fine. Copypaste this and see the copy is the same!
    \end{lstlisting}
    End of document, serif outside unescaped part.
\end{document}

참고자료

우리가 이미 시도한 것과 효과가 없었던 것에 대한 언급:

더 많은 AccSup 토론이 있습니다.표 형식의 내용을 복사 가능하게 만드는 기술.

관련 정보