LaTeX 中的下标和希腊字母?

LaTeX 中的下标和希腊字母?

我有一个包含类似以下行的文本文件:

在此处输入图片描述

我在用:

\usepackage[utf8x]{inputenc}%
\usepackage{textalpha} % <--- Greek letters in text

但输出仍然如下所示:

在此处输入图片描述

我怎样才能让它工作?

以下是代码

\documentclass{article}%
\usepackage[utf8]{inputenc}%
\usepackage{textalpha} % <--- Greek letters in text

\begin{document}%
\begingroup %I am using that because I am actually importing a text file 
\noindent
\obeyline
\input{aᵢ₁x₁ + aᵢ₂x₂ + ... + aₙ₁xₙ = bᵢ}%
\endgroup%

\end{document}

顺便说一句:如果我用 Word Pad 打开文本文件,它看起来像这样:

在此处输入图片描述

以下是完整的文本文件:https://ufile.io/rxs84

答案1

您可以使用 Unicode 引擎和允许以禁用 TeX 特殊字符(如或 )catchfile的模式输入文本文档的 包。$\

我已将其配置为允许文本重排。

但是空格将像往常一样由 TeX 处理,因此输入可以使用 U+00A0(不间断空格)来强制一些受尊重的间距。

输入文件中由空行分隔的段落将通过\parskip设置进行模拟,因此在这种方法中,多个空行将融合为一个。

这个答案是从@DavidPurton 的答案演变而来的(抱歉我在那里发表了一些误导性的评论,现在已被删除)。

\documentclass[french, a4paper]{article}
\usepackage{geometry}
\usepackage{babel}
\usepackage{fontspec}
\setmainfont{DejaVu Serif}
\setsansfont{DejaVu Sans}
\setmonofont{DejaVu Sans Mono}

\newfontfamily\DejaVuSansWithNoTeXLigatures{DejaVu Sans}[]% disable TeX ligatures

\usepackage{catchfile}

\makeatletter
\newcommand\mysanitize{%
  \let\do\@makeother
  \dospecials
  \catcode32=10\relax
}

\newcommand\myVerbInput[1]{\par
    \CatchFileDef{\my@file}{#1}{\mysanitize}%
    \begingroup
     % put here the font commands you want
     % we shall use for this demo:
     \DejaVuSansWithNoTeXLigatures
     \frenchspacing
     \parindent\z@
     \parskip\baselineskip
     \my@file\par
    \endgroup}

\makeatother

% For demonstration only
\usepackage{filecontents}
\begin{filecontents*}{\jobname.txt}
Bon est une solution de quoi ? C'est une solution de l'équation aᵢ₁x₁
+ aᵢ₂x₂ + ... + aₙ₁xₙ = bᵢ. Bon est une solution de quoi ? C'est une
solution de l'équation aᵢ₁x₁ + aᵢ₂x₂ + ... + aₙ₁xₙ = bᵢ. Bon est une
solution de quoi ? C'est une solution de l'équation aᵢ₁x₁ + aᵢ₂x₂ +
... + aₙ₁xₙ = bᵢ. Bon est une solution de quoi ? C'est une solution de
l'équation aᵢ₁x₁ + aᵢ₂x₂ + ... + aₙ₁xₙ = bᵢ.

Voici un nouveau paragraphe, une vraie logorrhée mathématique et on va
tester au passage si l'ensemble {$&~#$&~#$&~#éàçè§è} donne autant de
problèmes que l'ensemble vide. Voici un nouveau paragraphe, une vraie
logorrhée mathématique et on va tester au passage si l'ensemble
{$&~#$&~#$&~#éàçè§è} donne autant de problèmes que l'ensemble vide.
Voici un nouveau paragraphe, une vraie logorrhée mathématique et on va
tester au passage si l'ensemble {$&~#$&~#$&~#éàçè§è} donne autant de
problèmes que l'ensemble vide.

Ok alors essayons quelques trucs en Unicode:

             ασδφγηηξκμ

             ⇒☛«»❮❯‱❝❞€☂☃.

             Ligature: -- ? non, tout va bien n'est-ce pas?

             (fin de la démonstration de l'Hypothèse du continu)
\end{filecontents*}

\begin{document}
Text before (serif)
\myVerbInput{\jobname.txt}
Text after (serif)
\end{document}

% Local variables:
% TeX-engine: xetex
% End:

像往常一样,OpenType 字体存在字形覆盖范围不够的问题,这就是我选择 DejaVu Sans 的原因。Serif 字体缺少上面使用的一些字形。

在此处输入图片描述

答案2

如果你想输入一个 utf-8 编码的文本文件,并且只想让它大部分工作,而不太关心它的外观,那么我建议使用组合

  • unicode TeX 引擎(lualatexxelatex
  • 具有广泛 Unicode 覆盖范围的字体(例如 Free Serif)
  • 一些允许换行的逐字环境(例如fancyvrb与 结合fvextra

使用lualatex或编译此xelatex代码。这将允许在空格处自动换行。我不确定如何使文本对齐,但也许你不太在意。

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Free Serif}[NFSSFamily=freeserif]
\usepackage{fancyvrb}
\usepackage{fvextra}
\begin{document}
\VerbatimInput[fontfamily=freeserif,breaklines,breaksymbol={}]{3.txt}
\end{document}

输出

在此处输入图片描述

相关内容