「お気に入りフォント」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
MSY-07 (トーク | 投稿記録)
SyntaxHighlightにcopyの追加
Ucky (トーク | 投稿記録)
編集の要約なし
 
(2人の利用者による、間の4版が非表示)
3行目: 3行目:


== 動作環境 ==
== 動作環境 ==
Mery Ver 3.2.6 以降で使用できます。
* Mery Ver 3.8.0 以降
* Windows 7 以降


== 使用方法 ==
== 使用方法 ==
12行目: 13行目:
上記手順でお気に入りフォントを追加できます。必要に応じて繰り返してください。
上記手順でお気に入りフォントを追加できます。必要に応じて繰り返してください。


ポップアップメニューの項目に表示されるテキストは下記のようにキーの部分(<syntaxhighlight lang="javascript" inline>settings["…"]</syntaxhighlight>)を変更することで変えられます。
ポップアップメニューの項目に表示されるテキストは下記の例のようにキーの部分(<syntaxhighlight lang="javascript" inline>settings["…"]</syntaxhighlight>)を変更することで変えられます。


<syntaxhighlight lang="javascript">
// 以下に設定を貼り付ける
// 以下に設定を貼り付ける
settings["'''コーディング用 1'''"] = {fontName: "Moralerspace Neon", fontHeight: -15, lineSpace: 2};
settings["コーディング用 1"] = {fontName: "Pending Mono", fontHeight: -15, lineSpace: 2};
settings["'''コーディング用 2 (小)'''"] = {fontName: "源ノ角ゴシック Code JP R", fontHeight: -15, lineSpace: 0};
settings["コーディング用 2 (小)"] = {fontName: "源ノ角ゴシック Code JP R", fontHeight: -15, lineSpace: 0};
settings["'''コーディング用 2 (大)'''"] = {fontName: "源ノ角ゴシック Code JP R", fontHeight: -18, lineSpace: 0};
settings["コーディング用 2 (大)"] = {fontName: "源ノ角ゴシック Code JP R", fontHeight: -18, lineSpace: 0};
settings["'''テキスト閲覧用'''"] = {fontName: "BIZ UDゴシック", fontHeight: -16, lineSpace: 6};
settings["テキスト閲覧用"] = {fontName: "BIZ UDゴシック", fontHeight: -16, lineSpace: 6};
</syntaxhighlight>


簡単なアイコンを[[あつまれ☆みんなのおもしろアイコン]]に投稿してます。ツール バーに追加して使用する場合など、よろしければご活用ください。
簡単なアイコンを[[あつまれ☆みんなのおもしろアイコン]]に投稿してます。ツール バーに追加して使用する場合など、よろしければご活用ください。


== 変更履歴 ==
== 変更履歴 ==
* 2026-01-15
** QuickJS で実行するようにした
* 2025-12-12
** ディレクティブ(<code>#fonticon</code>)の追加とリファクタリング
* 2024-04-11
* 2024-04-11
** 初版
** 初版
30行目: 33行目:
== ソースコード ==
== ソースコード ==
<syntaxhighlight lang="javascript" copy>
<syntaxhighlight lang="javascript" copy>
#fonticon = "\uE8D2", #4d82b8, #dddddd
#language = "quickjs"
#title = "お気に入りフォント"
#title = "お気に入りフォント"


// キーはポップアップメニューの項目に表示するテキスト。貼り付けた後に変更可
// キーはポップアップメニューの項目に表示するテキスト。貼り付けた後に変更可
var settings = {};
const settings = {};
// 以下に設定を貼り付ける
// 以下に設定を貼り付ける




// キーはポップアップメニューの項目に表示するテキスト、値は実行する関数
const utilities = {
var utilities = {};
"現在の設定をクリップボードにセット(&S)"() {
editor.WriteSettings();


utilities["現在の設定をクリップボードにセット(&S)"] = function() {
const fontName = editor.ReadSettingString("Display", "FontName", "MS ゴシック");
  editor.WriteSettings();
const fontHeight = editor.ReadSettingString("Display", "FontHeight", "-13");
const fontSize = fontHeight % 4 === -2
? fontHeight / 4 - fontHeight
: Math.round(fontHeight / 4) - fontHeight;
const lineSpace = editor.ReadSettingString("General", "LineSpace", "2");
const topMargin = editor.ReadSettingString("Display", "TopMargin", "");


  var fontSizeByFontHeight = {
const settingName = `${fontName}, ${fontSize}, ${lineSpace}${topMargin && `, ${topMargin}`}`;
    "-8": "6",
    "-9": "7",
    "-10": "7.5",
    "-11": "8",
    "-12": "9",
    "-13": "10",
    "-14": "10.5",
    "-15": "11",
    "-16": "12",
    "-17": "13",
    "-18": "13.5",
    "-19": "14",
    "-20": "15",
    "-21": "16",
    "-22": "16.5",
    "-23": "17",
    "-24": "18",
    "-25": "19",
    "-26": "19.5",
    "-27": "20",
    "-28": "21",
    "-29": "22",
    "-30": "22.5",
    "-31": "23",
    "-32": "24",
    "-33": "25",
    "-34": "25.5",
    "-35": "26",
    "-36": "27",
    "-37": "28",
    "-38": "28.5",
    "-39": "29",
    "-40": "30",
    "-41": "31",
    "-42": "31.5",
    "-43": "32",
    "-44": "33",
    "-45": "34",
    "-46": "34.5",
    "-47": "35",
    "-48": "36",
    "-49": "37",
    "-50": "37.5",
    "-51": "38",
    "-52": "39",
    "-53": "40",
    "-54": "40.5",
    "-55": "41",
    "-56": "42",
    "-57": "43",
    "-58": "43.5",
    "-59": "44",
    "-60": "45",
    "-61": "46",
    "-62": "46.5",
    "-63": "47",
    "-64": "48",
    "-65": "49",
    "-66": "49.5",
    "-67": "50",
    "-68": "51",
    "-69": "52",
    "-70": "52.5",
    "-71": "53",
    "-72": "54",
    "-73": "55",
    "-74": "55.5",
    "-75": "56",
    "-76": "57",
    "-77": "58",
    "-78": "58.5",
    "-79": "59",
    "-80": "60",
    "-81": "61",
    "-82": "61.5",
    "-83": "62",
    "-84": "63",
    "-85": "64",
    "-86": "64.5",
    "-87": "65",
    "-88": "66",
    "-89": "67",
    "-90": "67.5",
    "-91": "68",
    "-92": "69",
    "-93": "70",
    "-94": "70.5",
    "-95": "71",
    "-96": "72"
  };


  var fontName = editor.ReadSettingString("Display", "FontName", "MS ゴシック");
clipboardData.SetData("Text",
  var fontHeight = editor.ReadSettingString("Display", "FontHeight", "-13");
`settings["${settingName}"] = {fontName: "${fontName}", fontHeight: ${fontHeight}, lineSpace: ${lineSpace}${topMargin && `, topMargin: ${topMargin}`}};`
  var lineSpace = editor.ReadSettingString("General", "LineSpace", "2");
);
  var topMargin = editor.ReadSettingString("Display", "TopMargin", "");
},


  var settingName =
"フォントの設定(&C)..."() {
    fontName + ", " + fontSizeByFontHeight[fontHeight] + ", " + lineSpace +
// MEID_VIEW_FONT_CUSTOMIZE
    (topMargin ? ", " + topMargin : "");
editor.ExecuteCommandByID(2169);
 
},
  clipboardData.SetData("Text",
    "settings[\"" + settingName + "\"] = {fontName: \"" + fontName +
    "\", fontHeight: " + fontHeight + ", lineSpace: " + lineSpace +
    (topMargin ? ", topMargin: " + topMargin : "") + "};"
  );
};
};


utilities["フォントの設定(&C)..."] = function() {
const popupMenu = CreatePopupMenu();
  // MEID_VIEW_FONT_CUSTOMIZE
const settingNames = Object.keys(settings);
  editor.ExecuteCommandByID(2169);
const utilityNames = Object.keys(utilities);
};


var popupMenu = CreatePopupMenu();
{
var settingCount = 0;
let itemCount = 0;


// 設定名をポップアップメニューに追加
// 設定名をポップアップメニューに追加
for (var settingName in settings) {
for (const settingName of settingNames) {
  settingCount++;
const id = ++itemCount;
popupMenu.Add(
// 最初の10項目まではアクセスキー(1~0)を追加
id <= 10 ? `&${id % 10} ${settingName}` : settingName,
id
);
}


  // 最初の10項目まではアクセスキー(1~0)を追加
popupMenu.Add("", 0, meMenuSeparator);
  if (settingCount <= 10) {
    settingName = "&" + settingCount % 10 + " " + settingName;
  }
 
  popupMenu.Add(settingName, settingCount);
}


// ユーティリティ名をポップアップメニューに追加
// ユーティリティ名をポップアップメニューに追加
popupMenu.Add("", 0, meMenuSeparator);
for (const utilityName of utilityNames) {
var utilityCount = 0;
const id = ++itemCount;
for (var utilityName in utilities) {
popupMenu.Add(utilityName, id);
  popupMenu.Add(utilityName, settingCount + ++utilityCount);
}
}
}


var menuID = popupMenu.Track(mePosMouse);
const menuId = popupMenu.Track(mePosMouse);


if (menuID > settingCount) {
if (menuId > settingNames.length) {
  utilities[popupMenu.GetText(menuID)]();
utilities[popupMenu.GetText(menuId)]();
} else if (menuID !== 0) {
} else if (menuId !== 0) {
  editor.WriteSettings();
editor.WriteSettings();


  // 選択された項目の設定
const setting = settings[settingNames[menuId - 1]];
  // 最初の10項目までの場合は追加したアクセスキー部分を除去して取得
  var setting = menuID <= 10
    ? settings[popupMenu.GetText(menuID).substring(3)]
    : settings[popupMenu.GetText(menuID)];


  editor.WriteSettingString("Display", "FontName", setting.fontName);
editor.WriteSettingString("Display", "FontName", setting.fontName);
  editor.WriteSettingInteger("Display", "FontHeight", setting.fontHeight);
editor.WriteSettingInteger("Display", "FontHeight", setting.fontHeight);
  editor.WriteSettingInteger("General", "LineSpace", setting.lineSpace);
editor.WriteSettingInteger("General", "LineSpace", setting.lineSpace);
  if (setting.hasOwnProperty("topMargin")) {
if (Object.hasOwn(setting, "topMargin")) {
    editor.WriteSettingInteger("Display", "TopMargin", setting.topMargin);
editor.WriteSettingInteger("Display", "TopMargin", setting.topMargin);
  }
}


  editor.ReadSettings();
editor.ReadSettings();
}
}
</syntaxhighlight>
</syntaxhighlight>

2026年1月15日 (木) 21:04時点における最新版

概要[編集]

お気に入りのフォント、フォントサイズ、行間を登録しておいてポップアップメニューから一括で切り替えるマクロです。

動作環境[編集]

  • Mery Ver 3.8.0 以降
  • Windows 7 以降

使用方法[編集]

  1. 好みのフォント、フォントサイズ、行間に設定する。
  2. マクロを実行してポップアップメニューの「現在の設定をクリップボードにセット」を選択する。
  3. マクロファイルを開き// 以下に設定を貼り付けるの下に設定を貼り付けて上書き保存する。

上記手順でお気に入りフォントを追加できます。必要に応じて繰り返してください。

ポップアップメニューの項目に表示されるテキストは下記の例のようにキーの部分(settings["…"])を変更することで変えられます。

// 以下に設定を貼り付ける
settings["コーディング用 1"] = {fontName: "Moralerspace Neon", fontHeight: -15, lineSpace: 2};
settings["コーディング用 2 (小)"] = {fontName: "源ノ角ゴシック Code JP R", fontHeight: -15, lineSpace: 0};
settings["コーディング用 2 (大)"] = {fontName: "源ノ角ゴシック Code JP R", fontHeight: -18, lineSpace: 0};
settings["テキスト閲覧用"] = {fontName: "BIZ UDゴシック", fontHeight: -16, lineSpace: 6};

簡単なアイコンをあつまれ☆みんなのおもしろアイコンに投稿してます。ツール バーに追加して使用する場合など、よろしければご活用ください。

変更履歴[編集]

  • 2026-01-15
    • QuickJS で実行するようにした
  • 2025-12-12
    • ディレクティブ(#fonticon)の追加とリファクタリング
  • 2024-04-11
    • 初版

ソースコード[編集]

#fonticon = "\uE8D2", #4d82b8, #dddddd
#language = "quickjs"
#title = "お気に入りフォント"

// キーはポップアップメニューの項目に表示するテキスト。貼り付けた後に変更可
const settings = {};
// 以下に設定を貼り付ける


const utilities = {
	"現在の設定をクリップボードにセット(&S)"() {
		editor.WriteSettings();

		const fontName = editor.ReadSettingString("Display", "FontName", "MS ゴシック");
		const fontHeight = editor.ReadSettingString("Display", "FontHeight", "-13");
		const fontSize = fontHeight % 4 === -2
			? fontHeight / 4 - fontHeight
			: Math.round(fontHeight / 4) - fontHeight;
		const lineSpace = editor.ReadSettingString("General", "LineSpace", "2");
		const topMargin = editor.ReadSettingString("Display", "TopMargin", "");

		const settingName = `${fontName}, ${fontSize}, ${lineSpace}${topMargin && `, ${topMargin}`}`;

		clipboardData.SetData("Text",
			`settings["${settingName}"] = {fontName: "${fontName}", fontHeight: ${fontHeight}, lineSpace: ${lineSpace}${topMargin && `, topMargin: ${topMargin}`}};`
		);
	},

	"フォントの設定(&C)..."() {
		// MEID_VIEW_FONT_CUSTOMIZE
		editor.ExecuteCommandByID(2169);
	},
};

const popupMenu = CreatePopupMenu();
const settingNames = Object.keys(settings);
const utilityNames = Object.keys(utilities);

{
	let itemCount = 0;

	// 設定名をポップアップメニューに追加
	for (const settingName of settingNames) {
		const id = ++itemCount;
		popupMenu.Add(
			// 最初の10項目まではアクセスキー(1~0)を追加
			id <= 10 ? `&${id % 10} ${settingName}` : settingName,
			id
		);
	}

	popupMenu.Add("", 0, meMenuSeparator);

	// ユーティリティ名をポップアップメニューに追加
	for (const utilityName of utilityNames) {
		const id = ++itemCount;
		popupMenu.Add(utilityName, id);
	}
}

const menuId = popupMenu.Track(mePosMouse);

if (menuId > settingNames.length) {
	utilities[popupMenu.GetText(menuId)]();
} else if (menuId !== 0) {
	editor.WriteSettings();

	const setting = settings[settingNames[menuId - 1]];

	editor.WriteSettingString("Display", "FontName", setting.fontName);
	editor.WriteSettingInteger("Display", "FontHeight", setting.fontHeight);
	editor.WriteSettingInteger("General", "LineSpace", setting.lineSpace);
	if (Object.hasOwn(setting, "topMargin")) {
		editor.WriteSettingInteger("Display", "TopMargin", setting.topMargin);
	}

	editor.ReadSettings();
}
スポンサーリンク