我必须在我的文档中包含一些文本文件,这些文件是从另一个程序派生的报告。这些文件中的文本是混合的(希腊语和英语)。
我正在使用该fancyvrb
包将文本包含在命令中\VerbatimInput
并使用 PDFLaTeX 进行编译。我遇到的问题是,我得到的输出无法识别拉丁字符。
我附加了两张图片,其中包括文档中呈现的逐字文本和实际文件中的文本。
任何帮助,将不胜感激。
下面是我正在使用的代码的 MWE:
\input{glyphtounicode}\pdfgentounicode=1
\documentclass[a4paper,oneside,fleqn]{report}
% PACKAGES
% MAIN
\usepackage[utf8]{inputenc}
\usepackage[english,greek]{babel}
% MISC.
\usepackage{attachfile2}
\usepackage{fancyvrb}
% FILE CONTENTS TO INCLUDE IN VERBATIM
\begin{filecontents}{S12RESutf.txt}
1. a-posteriori μεταβλητότητα = 122.1875
a-posteriori τυπική απόκλιση = 11.05
βαθμοί ελευθερίας = 6
κριτήριο βελτιστοποίησης = 733.1250
2. OI ΣΥΝΟΡΘΩΜΕΝΕΣ ΔΙΕΥΘΥΝΣΕΙΣ
σκοπευόμενο συνορθωμένη τυπική
σημείο διεύθυνση απόκλιση
(grad) (cc)
22 0.00000 6.38
32 30.69490 6.38
42 35.08358 6.38
2 103.23945 6.38
\end{filecontents}
\begin{document}
\begin{center}
\attachfile{S12RES.txt} {\bfseries Αποτελέσματα συνόρθωσης σταθμού 12}
\end{center}
\vspace{3mm}
\VerbatimInput[baselinestretch=.9]{S12RESutf.txt}
\end{document}
答案1
您可以混合希腊字母和拉丁字母,前提是当前语言使用拉丁字母,并且您加载alphabeta
:
% FILE CONTENTS TO INCLUDE IN VERBATIM
\begin{filecontents*}{\jobname.txt}
1. a-posteriori μεταβλητότητα = 122.1875
a-posteriori τυπική απόκλιση = 11.05
βαθμοί ελευθερίας = 6
κριτήριο βελτιστοποίησης = 733.1250
2. OI ΣΥΝΟΡΘΩΜΕΝΕΣ ΔΙΕΥΘΥΝΣΕΙΣ
σκοπευόμενο συνορθωμένη τυπική
σημείο διεύθυνση απόκλιση
(grad) (cc)
22 0.00000 6.38
32 30.69490 6.38
42 35.08358 6.38
2 103.23945 6.38
\end{filecontents*}
\documentclass[a4paper,oneside,fleqn]{report}
% PACKAGES
% MAIN
\usepackage[utf8]{inputenc}
\usepackage[english,greek]{babel}
\usepackage{alphabeta}
% MISC
\usepackage{fancyvrb}
\newcommand{\VerbatimInputMixed}[2][]{%
\begin{otherlanguage*}{english}%
\VerbatimInput[#1]{#2}%
\end{otherlanguage*}%
}
\begin{document}
\VerbatimInputMixed[baselinestretch=.9]{\jobname.txt}
\end{document}
注意:我更改了文件名以确保不会破坏我的文件并将它们正确分组。您不需要使用\jobname
。
答案2
为了正确获取非希腊语文本,必须将其括起来,例如,在 中\foreignlanguage{english}{non-greek text here}
。(在下面的 MWE 中,我使用了\texteng
用 定义的宏\newcommand{\texteng}[1]{\foreignlanguage{english}{#1}}
。)
为此,Verbatim
我们必须设置一些用于插入命令的转义字符。例如:
commandchars=\\\{\}
允许您使用标准字符\
和{
来}
启动宏并标记组的开始和结束。或者,您也可以定义其他特殊字符,例如:
commandchars=+\[\]
这样你就可以\foreignlanguage{english}
在里面Verbatim
写入+foreignlanguage[english]
(参见下面代码中的最后一个例子)。
平均能量损失
% FILE CONTENTS TO INCLUDE IN VERBATIM
\begin{filecontents}[overwrite,noheader]{S12RESutf.txt}
1. \texteng{a-posteriori} μεταβλητότητα = 122.1875
a-posteriori τυπική απόκλιση = 11.05
βαθμοί ελευθερίας = 6
κριτήριο βελτιστοποίησης = 733.1250
2. OI ΣΥΝΟΡΘΩΜΕΝΕΣ ΔΙΕΥΘΥΝΣΕΙΣ
σκοπευόμενο συνορθωμένη τυπική
σημείο διεύθυνση απόκλιση
(\texteng{grad}) (\texteng{cc})
22 0.00000 6.38
32 30.69490 6.38
42 35.08358 6.38
2 103.23945 6.38
\end{filecontents}
% The other file used by \attachfile
\begin{filecontents}[overwrite,noheader]{S12RES.txt}
\texteng{another file} μεταβλητότητα
\end{filecontents}
\input{glyphtounicode}\pdfgentounicode=1
\documentclass[a4paper,oneside,fleqn]{report}
% PACKAGES
% MAIN
\usepackage[utf8]{inputenc}
\usepackage[english,greek]{babel}
% MISC.
\usepackage{attachfile2}
\usepackage{fancyvrb}
\newcommand{\texteng}[1]{\foreignlanguage{english}{#1}}
\begin{document}
\begin{center}
\attachfile{S12RES.txt} {\bfseries Αποτελέσματα συνόρθωσης σταθμού 12}
\end{center}
\vspace{3mm}
\section*{\texteng{Using \textbackslash{} and \{ as special characters}}
\VerbatimInput[commandchars=\\\{\},baselinestretch=.9]{S12RESutf.txt}
\section*{\texteng{Using + and [ as special characters}}
\begin{Verbatim}[commandchars=+\[\]]
1. +texteng[a-posteriori] μεταβλητότητα = 122.1875
a-posteriori τυπική απόκλιση = 11.05
βαθμοί ελευθερίας = 6
κριτήριο βελτιστοποίησης = 733.1250
2. OI ΣΥΝΟΡΘΩΜΕΝΕΣ ΔΙΕΥΘΥΝΣΕΙΣ
σκοπευόμενο συνορθωμένη τυπική
σημείο διεύθυνση απόκλιση
(+texteng[grad]) (+texteng[cc])
22 0.00000 6.38
32 30.69490 6.38
42 35.08358 6.38
2 103.23945 6.38
\end{Verbatim}
\end{document}