我正在尝试使用 paracol 包以多种语言显示相同的圣经经文。为什么我的两列发生冲突,我该如何防止这种情况发生?另外,作为第二个问题,我正在使用 TeXstudio 应用程序;为什么\end{nthcolumn*}
和\end{nthcolumn}
命令显示为“无法识别的命令”?无论如何,源代码都会编译。我已paracol.cwl
在完成配置中启用。我还不太熟练使用 Xetex,所以请尽可能简单地解释一下。这是我的源代码:
\documentclass{book}
\usepackage{fontspec}
\usepackage{paracol}
\newcommand{\omission}{\hspace{6pt}$\cdots$\hspace{6pt}}
\newcommand{\at}{\,·\enspace} % Greek ano teleia
\newcommand{\setcoptic}{\noindent\setmainfont{Antinoou}}
\newcommand{\setgreek}{\noindent\setmainfont{GFS Porson}}
\begin{document}
\begin{Large}
\begin{paracol}{2}
\begin{column}
\setcoptic
\omission ⲉⲅⲛⲱ⳯ \omission ⲉⲛ ⲧⲟ\omission ⲟⲩⲧⲟ\at\omission ⲡⲏⲅⲅⲉⲓ\omission ⲉ ⲉⲅⲟ\omission ⲥⲏ\omission
\end{column}
\begin{column}
\setgreek
καὶ εἶπεν αὐτῷ Ἀβιμέλεχ Οὐκ ἔγνων τίς ἐποίησεν τὸ πρᾶγμα τοῦτο\at οὐδὲ σύ μοι ἀπήγγειλας, οὐδὲ ἐγὼ ἤκουσα ἀλλὰ σήμερον.
\end{column}
\begin{nthcolumn*}{0}
verse 27 goes here
\end{nthcolumn*}
\begin{nthcolumn}{1}
verse 27 goes here
\end{nthcolumn}
\end{paracol}
\end{Large}
\end{document}
答案1
你的问题只是在窄列中排版时标准行过满。如果 LaTeX 无法找到如何高质量地将段落分成行,它放弃,输出错误的行并显示警告。您不需要设置超宽的列分隔,而是使用常用技术来允许段落中的良好换行。
- 确保已加载适合您的语言的连字模式,并且做选择文本中的语言——不要只是切换字体。我对使用连字符连接古科普特语表示怀疑。
- 注意日志文件中的“Overfull hbox”警告。如果难以追踪,请声明
\setlength\overfullrule{5pt}
在排版输出中标记位置。(将其删除以进行最终排版。) - 也许可以声明
\sloppy
允许通常不可接受的换行符。然后 LaTeX 会对过度拉长的行发出警告。 - 允许行具有更多灵活性。与
\omission
宏一样,增加间距的灵活性:\newcommand{\omission}{\hspace{6ptplus3ptminus3pt}$\cdots$\hspace{6ptplus3ptminus3pt}}
- 如果文本难以适应,请不要强制平齐边距。尝试
\raggedright
看起来最破烂\RaggedRight
使用 ragged2e 包减少粗糙度\setlength\rightskip{0pt plus 8pt}
对于一些没有包装的破烂。
答案2
在进一步阅读 paracol 文档后,我发现设置\setcolumnwidth{30pt,30pt}
解决了我的碰撞问题。我不确定这是否是最合适的答案,仍然欢迎其他答案或解释其工作原理。
答案3
您可以通过修改以下参数来修改列之间的分隔:
\setlength{\columnsep}{20pt}
这部分修复了列溢出的对齐问题:
\tolerance=1
\emergencystretch=\maxdimen
\hyphenpenalty=10000
\hbadness=10000