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

提供: MeryWiki
ナビゲーションに移動 検索に移動
Ucky (トーク | 投稿記録)
Ucky (トーク | 投稿記録)
編集の要約なし
 
(同じ利用者による、間の2版が非表示)
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" copy>
// 以下に設定を貼り付ける
// 以下に設定を貼り付ける
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
** 初版
** 初版
31行目: 34行目:
<syntaxhighlight lang="javascript" copy>
<syntaxhighlight lang="javascript" copy>
#fonticon = "\uE8D2", #4d82b8, #dddddd
#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",
const popupMenu = CreatePopupMenu();
"settings[\"" + settingName + "\"] = {fontName: \"" + fontName +
const settingNames = Object.keys(settings);
"\", fontHeight: " + fontHeight + ", lineSpace: " + lineSpace +
const utilityNames = Object.keys(utilities);
(topMargin && ", topMargin: " + topMargin) + "};"
);
};


utilities["フォントの設定(&C)..."] = function () {
{
// MEID_VIEW_FONT_CUSTOMIZE
let itemCount = 0;
editor.ExecuteCommandByID(2169);
};


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


// 設定名をポップアップメニューに追加
popupMenu.Add("", 0, meMenuSeparator);
var settingCount = 0;
for (var settingName in settings) {
settingCount++;
popupMenu.Add(
// 最初の10項目まではアクセスキー(1~0)を追加
settingCount <= 10 ? "&" + settingCount % 10 + " " + settingName : 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);
utilityCount++;
}
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);
}
}

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();
}
スポンサーリンク