有没有办法在 InDesign 中查找和更改某种字符样式的大写字母并将它们更改为小写?
在 InDesign 中是否可以查找大写字母并将其更改为小写字母?
是的!首先,确定字体有大写和小写。然后,突出显示要转换的文本。从顶部菜单中找到Type -> Change Case -> lowercase
。
这是你要问的吗?
或者
如果您需要查找特定内容,可以尝试查找/更改功能...从顶部菜单中找到Edit -> Find/Change
(或使用键盘快捷键⌘+ F)
它会拉出一个看起来像这样的面板......并且稍微玩一下,您就可以熟悉它的令人敬畏的能力。
除了通过脚本,InDesign 没有办法在全局搜索/替换中强制小写,正如您毫无疑问地发现的那样。
解决此问题的一种略低于手动的方法是Find/Change
与键盘结合使用。
自动化部分是使用 GREP 搜索该字符样式中的任何大写字符。手动部分是直接输入小写字母,覆盖找到的字符。幸运的是,Find/Change
它是非模态的,因此您不必跳入跳出即可进行文本更改。
在“搜索/替换”对话框中,选择 GREP 选项卡。单击旁边的图标
Find Format
并选择要定位的字符样式。在
Find What?
enter\u+
中,它查找任何连续的大写字母序列。单击
Find Next
。这将突出显示该字符样式中的第一个大写字符。键入等效的小写字母或使用Type > Change Case > lowercase
. 重复直到到达文档的末尾。
为您选择的类型-->更改大小写-->选项分配快捷方式很有帮助。这样你就可以输入你的搜索字符串,然后当它突出显示它时,你只需点击键盘组合,然后点击下一个查找并继续。
我正在使用(是的,它已经过时了)CS5,Peter Kahrel 的以下脚本效果很好。
复制并粘贴脚本并将其保存到
useful_filename.jsx
位于 InDesign 的脚本目录中(我个人将其放在该Scripts Panel
目录中)。您必须在“搜索/查找”对话框中设置搜索参数。注意:这仅适用于搜索。不会有替换事件。我发现首先执行搜索+替换事件很有帮助,为结果分配一些虚拟样式,然后设置搜索以查找该虚拟样式。
该脚本没有标题大小写选项。它可以很容易地添加。但是CS5的Title Case转换是一堆烂苹果,所以我不认为它是一种损失。
设置搜索参数后,运行脚本,选择选项,然后使用它(不是搜索/查找对话框)来完成操作。鲍勃是你的叔叔。
// Change case interactively. Find/change options should be set in InDesign's Find/Change window.
// Peter Kahrel -- www.kahrel.plus.com
#targetengine "change_case";
create_palette().show();
function create_palette ()
{
var w = Window.find ("palette", "Change case");
if (w === null)
return create_palette_sub ();
return w;
}
function create_palette_sub ()
{
var changetype;
var w = new Window ("palette", "Change case", undefined, {resizeable: true});
w.alignChildren = "fill";
var options = [ChangecaseMode.lowercase, ChangecaseMode.uppercase, ChangecaseMode.sentencecase];
var rb = w.add ("panel");
var upper_to_lower = rb.add ("radiobutton", undefined, "A > a");
var lower_to_upper = rb.add ("radiobutton", undefined, "a > A");
var upper_to_sentence = rb.add ("radiobutton", undefined, "AB > Ab");
var smallcaps = w.add ("checkbox", undefined, " Apply SmallCaps");
var b = w.add ("group {orientation: 'column', alignChildren: 'fill'}");
var find = b.add ("button", undefined, "Find");
var change = b.add ("button", undefined, "Change");
var change_all = b.add ("button", undefined, "Change all");
var change_find = b.add ("button", undefined, "Change/find");
if (app.findGrepPreferences.findWhat.indexOf ("\\u") > -1)
{
upper_to_lower.value = true;
changetype = ChangecaseMode.lowercase;
}
else
{
lower_to_upper.value = true;
changetype = ChangecaseMode.uppercase;
}
upper_to_lower.onClick = function () {changetype = ChangecaseMode.lowercase};
lower_to_upper.onClick = function () {changetype = ChangecaseMode.uppercase};
upper_to_sentence.onClick = function () {changetype = ChangecaseMode.sentencecase};
var found, found_counter;
find.onClick = function () {
if (this.text === 'Find') {
found = app.documents[0].findGrep();
if (found.length > 0){
found_counter = 0;
find.text = 'Find next';
show_found (found[found_counter]);
} else {
alert ("No (more) matches found.");
}
} else {
found_counter++;
if (found_counter < found.length){
show_found (found[found_counter]);
} else {
find.text = 'Find';
alert ("No (more) matches found.");
}
}
}
change.onClick = function () {
found[found_counter].changecase(changetype);
if (smallcaps.value == true) {
found[found_counter].capitalization = Capitalization.smallCaps;
}
}
change_find.onClick = function (){
if (found_counter < found.length){
found[found_counter].changecase(changetype);
if (smallcaps.value == true) {
found[found_counter].capitalization = Capitalization.smallCaps;
}
found_counter++;
if (found_counter < found.length){
show_found (found[found_counter]);
} else {
alert ("No (more) matches found.");
}
}
}
change_all.onClick = function () {
for (var i = found_counter; i < found.length; i++) {
found[i].changecase(changetype);
if (smallcaps.value == true) {
found[i].capitalization = Capitalization.smallCaps;
}
}
}
w.onDeactivate = w.onActivate = function () {find.text = 'Find'}
return w;
} // create_palette_sub
function show_found (f)
{
if (f.parentTextFrames.length === 0) // If in overset text
{
app.activeWindow.activePage = find_page(f.parentStory.textContainers[0].endTextFrame);
}
else
{
f.select();
app.activeWindow.activePage = find_page (f.parentTextFrames[0]);
}
}
function find_page(o)
{
if (o.hasOwnProperty ("parentPage")) // CS5 and later
return o.parentPage;
else
return find_page_classic(o)
}
function find_page_classic (o)
{
try
{
if (o.constructor.name == "Page")
return o;
switch (o.parent.constructor.name)
{
case "Character": return find_page_classic (o.parent);
case "Cell": return find_page_classic (o.parent.texts[0].parentTextFrames[0]);
case "Table" : return find_page_classic (o.parent);
case "TextFrame" : return find_page_classic (o.parent);
case "Group" : return find_page_classic (o.parent);
case "Story": return find_page_classic (o.parentTextFrames[0]);
case "Footnote": return find_page_classic (o.parent.storyOffset);
case "Page" : return o.parent;
}
}
catch (_) {return ""}
}