关于InDesign对英文段落做强制双齐时字母间距变大

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于InDesign对英文段落做强制双齐时字母间距变大相关的知识,希望对你有一定的参考价值。

在图中,对一行英文做强制双齐的时候,1处的空格还有2处的字母间距都会增大,有什么办法能让在对英文做强制双齐的时候,只有1处的空格间距变大,而2处单词中字母的间距不变呢?
(好久没来知道了,财富不多了,就给50吧,别嫌少,知道的就告诉我一下……)

不知道这样是何用。

强制对齐,相对于整个文本框来,间隔肯定会均匀变大。

如果只有1间距变大,只能加空格了,而1后面,统看为2,会均匀变大。

参考技术A 在1处按TAB键 然后按Cart+T键 会出现一个制表符,在制表符上进行调整。追问

按tab后会换行……ctrl+t  出来的是字符,制表符快捷键不是那个,咱们是不是用的不是一个软件啊……

追答

把上下fgjk英文的字间距 弄的一样试试。
按tab键 不会换行啊。制表符在菜单栏 “文字”的下拉菜单中。

本回答被提问者采纳
参考技术B 使用罗马字距调整Ctrl+Alt+Shift+J,将单词间距最大值调至极大(500%以上)

如何对 QComboBox 中的文本执行字母间距?

【中文标题】如何对 QComboBox 中的文本执行字母间距?【英文标题】:How to perform letter-spacing on text in a QComboBox? 【发布时间】:2020-11-12 22:32:57 【问题描述】:

QWidget 样式表允许在字符之间执行spacing 而不是letter-spacing。在我在 GUI 中设置的组合框中,其currentText 具有或多或少的可读文本,但字体 [MS Shell Dlg 2,8] 的字母间距很糟糕。更改框的最小尺寸不会改变可读性。通过设置样式表来更改 'spacing : 1' 会将文本移动到 cbo 的左侧一点并且不会提高可读性。

是否有执行“字母间距”的选项,使字母之间的距离仅多几个像素?

组合框详细信息是:所有设置默认。几何:

width  = 110
height = 22

测试代码:

#!/usr/bin/python

import sys

from PyQt5.QtWidgets import (QWidget, QLabel, QHBoxLayout,
                             QComboBox, QApplication)

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        hbox = QHBoxLayout()

        self.lbl = QLabel('Ubuntu', self)

        combo = QComboBox(self)
        combo.setFixedSize(100, 22)

        combo.addItem('Species', userData='100')  # text readable here but not when construcuted.
        combo.addItem('Xubuntu', userData=200)
        combo.addItem('Gentoo' , userData=300)

        combo.activated[str].connect(self.onActivated)

        hbox.addWidget(combo)
        hbox.setSpacing(20)

        hbox.addWidget(self.lbl)
 #       self.setContentsMargins(20, 20, 20, 20)
        self.setLayout(hbox)

        self.move(300, 300)
        self.setGeometry(300, 300, 250, 180)
        self.setWindowTitle('QComboBox')
        self.show()

    def onActivated(self, text):

        self.lbl.setText(text)
        self.lbl.adjustSize()
        
        print(self.sender().currentText())
        print(self.sender().currentData())
        sys.stdout.flush()

def main():
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

原始组合框代码可以在这里找到http://zetcode.com/pyqt/qcombobox/。

【问题讨论】:

【参考方案1】:

其实是有的。这些更改不是在 QComboBox 样式表中进行的,而是在字体部分 (Qt.Gui.QFont) 中进行的。所以下面的代码展示了如何改变它。请记住,当框尺寸固定且文本大于其最大尺寸时,将导致不显示完整的文本;而是您必须在组合框中向右滚动。

最后不要忘记“设置”新值,否则不会使用新值。

font = combo.font()                 # getting font metrics 
value1 = font.letterSpacing()       # getting line spacing value 
        
font.setLetterSpacing(QFont.PercentageSpacing, 200)
        
value2 = font.letterSpacing()
        
combo.setFont(font)                 # sets the font for the object
        
print(f'old value1 | new : value2')
sys.stdout.flush()

【讨论】:

考虑到通常不建议使用固定大小,尤其是对于基于文本的小部件:即使您绝对确定用户会使用您的字体'重新选择时,如果 DPI 与您在 your 屏幕上使用的不同,可能会出现一些问题。在任何情况下,请记住 QComboBox 具有 sizeAdjustPolicy() 属性,它允许更多地控制组合如何根据其内容调整大小。

以上是关于关于InDesign对英文段落做强制双齐时字母间距变大的主要内容,如果未能解决你的问题,请参考以下文章

scss inDesign跟踪2 CSS字母间距

段落排版--中文字间距字母间距

段落排版--中文字间距字母间距(letter-spacing, word-spacing)

正则表达式匹配指定数据和字母

更改段落之间和段落内部的间距

如何更改 RichTextBox 段落间距?