为什么我的列与包 paracol 发生冲突?

为什么我的列与包 paracol 发生冲突?

我正在尝试使用 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

相关内容