我正在用缅甸语排版。设置 \XeTeXinterwordspaceshaping=2 可以让我在段落完全对齐时实现所需的换行。我尝试了几种方法,只有这个选项最适合我。
问题是我还想使用 minted 包进行代码突出显示,而上述选项会干扰 minted 语法突出显示。据此提到,设置 \XeTeXinterwordspaceshaping=2 会产生副作用:
https://tug.org/pipermail/xetex/2016-February/026474.html
如果是这样的话,我想知道我是否可以将选项限制为仅文本段落并退出 minted 环境。这可能吗?这是我的 MWE(很抱歉 minted 需要安装 Python 和 pygmentize):
%!TeX program = XeLaTex
%!TEX encoding = UTF-8 Unicode
\documentclass[10pt]{article}
\XeTeXlinebreaklocale "my_MM" %Myanmar line and character breaks
\XeTeXinterwordspaceshaping=2 %%% PLEASE EXPERIMENT BY SETTING WITH DIFFERENT VALUES
\usepackage{fontspec}
\setmainfont{Padauk}
\usepackage{minted}
\begin{document}
သီပေါမင်း (ခရစ်နှစ် ၁၈၇၈-၁၈၈၅) သည် ကုန်းဘောင်မင်းဆက်၏ နောက်ဆုံးမင်းဖြစ်သည်။ သိရီပဝရ ဝိဇယာနန္တ ယသတိလောကာ ဓိပတိ ပဏ္ဍိတ မဟာဓမ္မရာဇာဓိရာဇာ ဖြစ်ပြီး နန်းသက် ခုနစ်နှစ်ဖြစ်သည်။
ကမ္ဘာ့ အကောင်းဆုံး
\XeTeXinterwordspaceshaping=0 %%% PLEASE EXPERIMENT BY SETTING WITH DIFFERENT VALUES
\begin{minted}{kotlin}
fun main() {
val name = "stranger1" // Declare your first variable
println("Hi, $name!") // ...and use it!
print("Current count:")
for (i in 0..10) { // Loop over a range from 0 to 10
print(" $i")
}
}
\end{minted}
\XeTeXinterwordspaceshaping=2 %%% PLEASE EXPERIMENT BY SETTING WITH DIFFERENT VALUES
သီပေါမင်း (ခရစ်နှစ် ၁၈၇၈-၁၈၈၅) သည် ကုန်းဘောင်မင်းဆက်၏ နောက်ဆုံးမင်းဖြစ်သည်။ သိရီပဝရ ဝိဇယာနန္တ ယသတိလောကာ ဓိပတိ ပဏ္ဍိတ မဟာဓမ္မရာဇာဓိရာဇာ ဖြစ်ပြီး နန်းသက် ခုနစ်နှစ်ဖြစ်သည်။
ကမ္ဘာ့ အကောင်းဆုံး
\end{document}
答案1
在您链接到的电子邮件线程的其他地方,设置 2 的行为描述如下:
这些情况通过 来解决
\XeTeXinterwordspaceshaping=2
。使用此值,不仅可以在上下文中测量单词间空间,而且单个字体中的每一行文本(单词和中间空间)都将作为一个单元进行重新整形\shipout
。这允许完全整形(上下文花饰、连字等)在单词间空间中生效。
引用\shipout
意味着它按页面起作用并且不能针对单个段落进行更改。
但是我思考这是您想要的输出(我无法读取脚本,因此如果搞砸了,请发表评论,我稍后会再试)
您链接到的电子邮件提供了一个线索,可用作\kern0pt
避免不良影响的解决方法,因此我在每个\special
位置都插入了一个字距minted
。
\documentclass[10pt]{article}
\XeTeXlinebreaklocale "my_MM" %Myanmar line and character breaks
\XeTeXinterwordspaceshaping=2 %%% PLEASE EXPERIMENT BY SETTING WITH DIFFERENT VALUES
\usepackage{fontspec}
\setmainfont{Padauk}
\showoutput
\usepackage{minted}
\begin{document}
သီပေါမင်း (ခရစ်နှစ် ၁၈၇၈-၁၈၈၅) သည် ကုန်းဘောင်မင်းဆက်၏ နောက်ဆုံးမင်းဖြစ်သည်။ သိရီပဝရ ဝိဇယာနန္တ ယသတိလောကာ ဓိပတိ ပဏ္ဍိတ မဟာဓမ္မရာဇာဓိရာဇာ ဖြစ်ပြီး နန်းသက် ခုနစ်နှစ်ဖြစ်သည်။
ကမ္ဘာ့ အကောင်းဆုံး
{
\let\xspecial\special
\def\special{\kern0pt\xspecial}
\begin{minted}{kotlin}
fun main() {
val name = "stranger1" // Declare your first variable
println("Hi, $name!") // ...and use it!
print("Current count:")
for (i in 0..10) { // Loop over a range from 0 to 10
print(" $i")
}
}
\end{minted}
}% end special hack
သီပေါမင်း (ခရစ်နှစ် ၁၈၇၈-၁၈၈၅) သည် ကုန်းဘောင်မင်းဆက်၏ နောက်ဆုံးမင်းဖြစ်သည်။ သိရီပဝရ ဝိဇယာနန္တ ယသတိလောကာ ဓိပတိ ပဏ္ဍိတ မဟာဓမ္မရာဇာဓိရာဇာ ဖြစ်ပြီး နန်းသက် ခုနစ်နှစ်ဖြစ်သည်။
ကမ္ဘာ့ အကောင်းဆုံး
\end{document}