标题居中后不知道怎么让标题内正文也居中【专门用来写剧本对白的格式要求对白居中】

>[!center] 标题
>正文
>正文


加上这段css

.callout[data-callout=center] {
  text-align: center;
}
.callout[data-callout=center] .callout-title {
  justify-content: center;
}

看这个是不是所有标题下面正文都居中了?我只需要h6标题内的正文居中。我回去试试看,正在回家路上

楼上的callout解法可能并不像你想的那样,可以把所有h6标题下的内容都居中;它是通过obsidian里面一个叫callout的功能,实现callout内文本居中,如果你想让标题是h6,正常写就可以。

>[!center] ###### 标题
>正文
>正文

不过我猜你想实现的效果是这个callout的背景和文中其他内容融合,也就是标题栏没有icon,块内没有背景,那么css修改成这样就行:

/*---设定一个叫center的callout---*/
.callout[data-callout="center"] {
	--callout-color:transparent;/*无背景*/
	text-align: center;/*文本居中*/
	border: none;/*无框线*/
}
.callout[data-callout="center"] .callout-title {
	 justify-content: center;/*标题居中*/
}


.callout[data-callout="center"] .callout-icon{
	 display: none;/*去除icon*/
}

使用callout的好处是,它是obsidian原生的功能,正常导出pdf一般不会影响外观。

1 个赞

特别感谢,我刚刚也百度了一下什么是 callout,我觉得这个功能解决问题也不错。非常感谢您。我现在还不是很明白怎么用。等于用你这段代码定义了一个样式居中的块,我写到对白的时候就用这个功能来写居中的对白就可以。 我现在只要在编辑器里面输入一个>符号,然后加上【!center】就可以是吗?能不能简化到只有一个字母就能启用呢

我刚刚尝试了,蛮好的。就是很多地方都要写对白,这个命令要打七八个字符。不能定义成一个 d 字吗?我感觉您解决了用 obs 写剧本的朋友一个大问题。值得在编剧们中间推广

我修改了一下,我感觉我知道怎么用 callout 功能了。

/*---设定一个叫d的callout用来表示要写对白并居中了意思是dialogue---*/
.callout[data-callout="d"] {
	--callout-color:transparent;/*无背景*/
	text-align: center;/*文本居中*/
	border: none;/*无框线*/
}
.callout[data-callout="d"] .callout-title {
	 justify-content: center;/*标题居中*/
}


.callout[data-callout="d"] .callout-icon{
	 display: none;/*去除icon*/
}

谨代表所有使用 obsidian 的编剧感谢您和几位老师的鼎力相助!希望这个帖子能帮到所有编剧朋友。

快捷输入的问题,可以看这个帖子下面我的回复,这里建议你使用quickadd插件

最开始的需求:六级标题下一个居中是可以勉强实现的,下面的代码仅在阅读模式下生效

h6{
    text-align: center;
}

div:has(h6)+div{
    text-align: center;
}

1 个赞

浏览论坛的时候,看到了一个非常适合题主的帖子,专门给编剧写剧本的css片段和插件,所以分享一下。

原帖是英文论贴那边的:Screenwriting CSS Snippet:用 Markdown 写作,导出为排版一致的剧本

这是实现的效果:

那位作者非常精细,针对每个层级的标题都做了样式

Header 1 - Scene Heading/Shot  1级标题 - 场景标题/镜头
Header 2 - Character Name  2级标题 -角色名
Header 3 - Parenthetical  3级标题 - 旁注
Header 4 - Transition   4级标题 - 转场
Header 5 - Act  5级标题 -幕
Highlight - Underline 突出 - 下划线
Horizontal Divider (hr) - Page Break 水平分隔符 (hr) -分页符

以及,这位作者后来还更新了代码pro代码,
PRO Screenwriting css:用Markdown写剧本, 实现Fountain插件的格式、Canvas索引卡片样式,导出pdf版式

1 个赞

非常感谢,我去研究一下看看。不过中文剧本的板式,有一些跟海外英文版的区别,不过也没有说就一定是哪一种就是标准。怎么写的都有。但是最基本的一个通用规则就是对白的安排是居中。

您好,我进入后面那个更新的帖子里面,是新版本被做成了插件是吗?我点不进去,不能下载。但是前一个链接的帖子,用css的样式的,应该可以试试,我不是特别懂代码,我感觉意思是在每次写剧本前,写一段代码,然后就可以启用这个css的样式,这个css的样式根据不同标题的特性是专门针对剧本写作设计的。是吧

没搞明白,我把上面你提到的第一个帖子里面的css代码加入到obsidian里面,然后选择启用,然后是在正文开始使用—三个短横,结果出来要我选cssclass的属性,我写了screenplay的属性,但是写作的时候不起作用。

两个都是css片段,第二个增加了一些功能,包括canvas页面的卡片功能等;不过第一个应该就够用。
使用方法就是如你所说的步骤,我试了一下在我的obsidian里面是可以用的。

你或许可以重启一下obsidian,或者每个步骤都再检查一遍?

我只要输入三根小横杠,系统就会变出一个选择命令的面板条。如图:

这是yaml区,在文档开头输入---会出现;

我找到地方输入这个东西了。去源码视图,就可以输入三根小横杠,然后写

---
cssclass: screenplay
---

但是并没有能有效果

上面的 cssclasses 就是

您能否把两个 css 片段都贴到这里来。我看是不是我复制出了问题。