konsole (および他の CLI アプリ) の垂直行間隔を調整することは可能ですか?

konsole (および他の CLI アプリ) の垂直行間隔を調整することは可能ですか?

konsole の垂直行間隔を狭めることは可能ですか?

「設定/詳細」には行間オプションがありますが、0までしか設定できず、0でも行間にかなりのスペースがあります(つまり、タイポグラフィで一般的に「行間が広すぎる」と呼ばれるもの)。リードする(テキストの行間の垂直方向の空白スペース)。私は、垂直方向に非常に控えめな Inconsolata フォントを使用しています。このフォントは、たとえば Monospace フォントと比較すると垂直方向のスペースが最小限ですが、このフォントでも、私が使用しているポイント サイズ (13) では行間のスペースが広すぎます。

フォント自体をハックして補正することなく、垂直の行間隔をさらに狭める方法はありますか? 多くのエディターではこれが可能ですが、Konsole (ゼロ未満) でこれを行う方法、または KDE 全体で何らかのシステム設定としてこれを行う方法がわかりません。

答え1

興味のある方のために、私はこれを行う方法を見つけましたが、フォント編集が必要です。これにより、グーグル検索とフラストレーションの何時間も、いや何日も節約できます。なぜなら、私はこれらすべてを理解するために膨大な時間を費やしたからです。手順の長い文章に落胆しないでください。プロセス全体は文字通り5分未満5分で終わるように、私は長々と説明してきましたが、曖昧さをできるだけ少なくする何をどのような順序で行うべきかに関して。

すべての Linux GUI アプリで垂直行間隔を自由に調整する方法は次のとおりです。

  1. FontForge をダウンロードしてインストールします (パッケージは、、、または使用しているパッケージ マネージャーで呼び出されます) 。fontforge手動で作業したい場合は、github でも入手できます。yumapt-getdnfgithub インストールの詳細
  2. 変更したいフォントを開きます (私の場合は Inconsolata)。注: フォントを変更する前、または新しいフォントを作成する前に (強くお勧めします)、古いフォントを から にコピーし/usr/share/fonts/...~/.local/share/fontsすべての変更 (または新しいフォントの追加) をローカルfontsディレクトリで行います。これにより、( への) ルート アクセスを必要とせずに、書き込み権限を持つことになります/usr/share/fonts
  3. さて、インストール後、次のように実行できる FontForge に戻りましょう。まず、元のフォントをコピーしたディレクトリfontforgeからフォントを開きます。FontForgeをホーム ディレクトリから起動したと仮定して、 と入力するだけで、そのディレクトリに移動します。FontForge はホーム ディレクトリの代わりに という文字を好まないので、相対パスまたは絶対パスを使用しますが、フォント ファイルを開くときには を使用しないでください。そこにフォントのサブディレクトリがある場合は、それをクリックして開き、最後にフォント自体を選択して開きます。他の変更を行う前に、フォントの名前を変更する必要があります。メニューから、[要素]/[フォント情報...] を選択してダイアログを開きます。左側の [一般] カテゴリに移動し、フォント名の後に接尾辞を付けて変更します (たとえば、Inconsolata を InconsolataDense80 に変更して、垂直行間 (つまり、行間) を現在の値の 80 パーセントに減らすことを示します)。 「フォント名」、「ファミリ名」、「人間の名前」の各フィールドに対して、この変更をそれぞれ 3 回行うようにしてください。.local/share/fonts.local/share/fonts~~Font Information
  4. 次に、左側の OS/2 カテゴリ (誰が考えたでしょう???) を選択し、上部の [メトリック] タブを選択します。
  5. Linux で垂直間隔に影響を与える唯一の 2 つの値である HHead Ascent と Descent の値を変更します。これを自分で解決できるといいですね。干し草の山の中の針、原石の中のダイヤモンド、皆さんが選んだ比喩のように、これらを見つけるのに長い時間がかかりました :) !
  6. 変更を加える前に、必ず現在の値を記録(書き留めるなど)してください。
  7. 垂直間隔を変更するには、垂直間隔を減らしたい量に応じて、2 つの値に係数を掛ける必要があります (私の場合は、現在の値の 80% を使用しました)。おそらく、99% のケースでは両方に同じ係数を使用することをお勧めします。これがうまくいかなかったり、表示アーティファクトが発生したりした場合は、最後の手段として、後で異なる係数を使用して個々の値を微調整することができます。アーティファクトは、値を減らしすぎたことを意味する場合もあります。ここでの削減とは、ゼロに近づけることを意味します (つまり、HHead Descent が負になる可能性があるため、その絶対値を減らします。そのため、正のパーセンテージ スケーリング係数を掛けると、数値的には実際に増加します)。
  8. HHead Ascent と Descent をそれぞれステップ 7 で計算した値に設定します (たとえば、以前の値の 80% が適切な開始値です)。
  9. フォント情報ダイアログは完了です。OKボタンをクリックします。
    1. この時点で、フォントを .SDF ファイルとして保存しましょう。[ファイル] > [名前を付けて保存] を実行すると、以前に設定したフォントの新しい名前が記憶されます。
    2. 変更を適用するには、フォントを (再) 生成する必要があります。FontForge メニューから [フォント]/[フォントの生成...] を選択します。TrueType フォントを扱っている場合は、フォント ファイル名で TrueType が選択されていることを確認します。次に、[生成] ボタンをクリックします。さまざまなエラーが検出されますが、無視しても問題ありません。ダイアログ ボックスで [生成] ボタンをクリックして、フォント生成を続行してください。
    3. この時点で準備は完了ですが、フォント キャッシュをリセットする必要があります。これを行うには、 と入力しますfc-cache -v -r
    4. 新しいコンソール ウィンドウを開きます (新しいフォント、または既存のフォントへの変更は、既に開いているウィンドウには表示されません)。
    5. 「設定/現在のプロファイルの編集」に移動し、「外観」タブを選択して、新しいフォントを選択します。フォント選択オプションは設定ページにあります。「フォントの選択...」をクリックすると、新しいフォントがリストされ、選択できるようになります。「OK」をクリックすると、変更はすぐに有効になります。
    6. おめでとうございます。これで完了です。線がまだ離れすぎているか近すぎる場合は、手順 7 に戻って、HHead Ascent/Descent 値を元の値の倍数に調整します。フォント名の値を (3 つすべて) 変更して、乗算したパーセンテージを表す値にし、後で参照できるようにしてから、フォントを新しいファイル名で保存してください (新しい名前で新しいフォントとして生成してください)。最後に、フォント キャッシュを更新して新しいウィンドウを開き、効果を確認することを忘れないでください。

私は通常、Konsole でフォントを変更する前にls -lまたは を実行して、リストされているファイル名の行間隔への影響を確認します。 上下にアセンダ ( など) とディセンダ (「y」など) を使用するファイル名にすると、行が近づきすぎず、アセンダとディセンダが交差しないようにすることができます。 これは、「agjpqy」、「mbdfijlt」、「zgjpqy」という 3 つのファイルを作成することで簡単に行うことができます。 ファイル名の最初の文字は、ファイルを期待どおりにアルファベット順に並べるためのものです。 残りの文字には、アセンダ、ディセンダ、またはその両方が含まれます。 交差しているかどうかを確認し、主観的に満足できるフォントの垂直間隔を調整できます (「ゴルディロックスと三匹の熊」の物語を思い出します)。ls -lRl

これがお役に立ち、大量の時間とストレスを節約できることを願っています。OCD のユーザーはこれを最も喜ぶでしょう!

関連情報