ユーザ用ツール

サイト用ツール


メモ:latex

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
メモ:latex [2021/10/06 09:54] – [丸囲み数字等のフォント] Wiki Editorメモ:latex [2022/01/25 10:16] (現在) – [段落頭の字下げ設定] Wiki Editor
行 195: 行 195:
  
  
-===== 丸囲み数字等フォント ===== +===== 段落頭字下げ設定 ===== 
-Rmarkdownからxelatex経由してPDF作成する際に丸囲み数字など(①)がフォント抜け豆腐になっていたのを解決。問題単純なフォ設定だったが、フォント設定は基本的に変えたくなかったので、いろいろ調査してわかっこと+段落頭の字下げ量コントロールするとき\parindent利用する和文ではプリアブルに書いても1文字分しか設定できない。したがって実質的には0か1しか設定できい。常識なのもしれないが、和文の場合段落頭の字下げは1文字と相場が決まている、いくらプリアンブルで設定しても、リセットされるようだ。\begin{document}で文字サイズが初期化されるためのようだ。以下のページのFAQに記載されていた。
  
-xelatexはTTFフォントを直接指定することができる便利なtexなので、Rmarkdownからの出力はこれを利用している。この時、日本語を利用するために以下の設定をしている。ドキュメントクラスの読み込みでfontspecやzxjatypeはusepackageをしなくてもよいかもしれない。+  * [[https://oku.edu.mie-u.ac.jp/~okumura/jsclasses/]]
  
-RmakdownのYAMLヘッダ(該当箇所のみ) +ここにも記載されているように、字下げ量を任意に設したい場合は\begin{document}以降に設する必要がある。
-  documentclass: bxjsarticle +
-  classoption: xelatex,ja=standard,base=10.5pt,jbase=10.5pt,a4paper +
-  header-includes: +
-    # 欧文フォントの指 +
-    - \usepackage{fontspec} +
-    - \setmainfont{Times New Roman} +
-    - \setsansfont{Times New Roman} +
-    # 和文フォントの指 +
-    - \usepackage{zxjatype} +
-    - \setCJKmainfont[BoldFont=IPAexGothic]{IPAexMincho} +
-    - \setCJKsansfont{IPAexGothic}+
  
  
-Texソースでは以下ように展開される。 +===== 見出し詳細設定 ===== 
-  \documentclass[xelatex,ja=standard,base=10.5pt,jbase=10.5pt,a4paper]{bxjsarticle} +sectionなどの見出しのフォーマットを変更するパッケージにtitlesecがある。色々できるが、ポイントをメモ。
-  \setmainfont{Century} +
-  \setsansfont{Century} +
-  \setCJKmainfont[BoldFont=IPAexGothic]{IPAexMincho} +
-  \setCJKsansfont{IPAexMincho}+
  
-使っているフォトはともかくとして以上の設定でだいたいスムーズにタイプセットてPDFがうまく生成されてだが、丸囲み数字などフォ抜けまい、そ都度丸囲み数を生成するを挿入していた。ている場合には自分で丸み数字使う箇所を認識いるので問題ないがアンケートの自由記述欄などテキストデータを読み込んで一括て整形・出力するようなコードを書くと、どうしても入力された文字に混ざってしまう。逐一見つけて換などをしても、気づかいフォント抜けなどが発生してしまうことがあり、いままで気づいた文字置換リスト貯めいた、非効率だしユニコードの世界では解決できるはずだと思い調査+フォーマッの変更は、\titleformatを利用する。設定項目が多いためちょっとややこしい。 
 +  \usepackage{titlesec} 
 +  \titleformat 
 +    {\section} <- 対象見出し 
 +    [hang] <- 見出しの形:段落との関係などを変える 
 +    {\LARGE\color{white}} <- 見出し文字列のフォーマッ 
 +    {\thesection. } <- ラベル(連番部分)のフォーマット  
 +    {0em} <- ラベルと見出文字列の間隔 
 +    {} <- 見出文字列直前のコマンド 
 +    [] <- 見出し文列の直後のマン 
 +   
 +見出し直前のコマンドは、見出し全体に適用されるものとして記述しなければならなが、見出し字列の前後に文字入れたりしたい場合、コマンドを適用する範囲を限定場合があ。そ場合は、titlesecパッケーを読み込む際に以下のオプションをつける必要がある。この場合見出文字列を出力する置を「#1」で明示しなければならないため、コマンド任意組み立ることができる。
  
-原因は非常に単純点にあった。問題は、丸囲み数字の箇所が「欧文」として扱われており、Times New Romanにコードポイントに対応するフォが用意されておらず、フォが抜けてまう様だった。試に欧フォトをIPAフォ変えてみると、ごく普通に丸囲み数字もPDFで表示できる。丸囲み数字入力するのが日本語IMEで変換するため、てっきり日本語の全角文字扱いだと思っていたが、かつてと異なりユニコードは①はU+2460というコドポイントが割り当てられており、このコードが入力されてい。そして、このコードがある範囲xelatexでは欧文として扱われため、欧文フォントの設定が適用されていたためフォント抜けが発生ていた。+  \usepackage[explicit]{titlesec} 
 +  \titleformat 
 +    {\section} <- 対象の見出し 
 +    [hang] <- 見出しの形:段落との関係どを変える 
 +    {\LARGE\color{white}} <- 見出し文のフォーマッ 
 +    {\thesection. } <- ラベル(連番部分)のフォーマット  
 +    {0em} <- ラベルと見出文字列の間隔 
 +    {#1} <- 見出し文字列の直前のコマド 
 +    [] <- 見出し文字列の直後のコマド:見出し内影響限定するため内部を{}グルプ化す必要がある場合 
 +  
 +==== 設定例:黒帯白文字の見出し ====
  
-単純な解決策は、欧もすべて日本語フォントにすることIPAex明朝など、半角文字もきれいに出力できるのでこれはこれでよい。しかし、どうてお欧には別フォントを利用したい場合、丸囲み数字の箇所だけフォト指定するとか、段落単位逐一フォント指定するとか個別対応が必要となる。これでは個別に置換するの手間はあまり変わらない。そこで以下参考に設定を追加+見出しを黒帯に白抜きにする設定ラベル設定部分でラベルは出力せず見出し文字列前コマで、見出しラベル両方設定する
  
 +まず、\colorbox{black}で背景を黒にし、\parbox{\textwidth}で行幅と同じ幅の段落を生成する。これで、黒背景の見出し段落ができる。その中に、\thesectionと#1でラベルと見出し文字列を出力するが、\raiseboxでラベルと見出し文字列の上下位置を微調整し、\strutで行の高さを広げている。
  
-  [[http://zrbabbler.sp.land.to/zxjatype.html]+  \usepackage[explicit]{titlesec} 
-  [[https://texwiki.texjp.org/?xeCJK]+  \titleformat 
-  * [[https://ftp.kddilabs.jp/CTAN/macros/xetex/latex/xecjk/xeCJK.pdf]] +    {\section} 
-  * [[https://suzusime-log.hatenablog.jp/entry/2017/04/15/210327]]+    [hang
 +    {\normalfont\Large\headfont\color{white}} 
 +    {} 
 +    {0em} 
 +    {\colorbox{black}{\parbox{\textwidth}{\raisebox{-1mm}{\thesection.\strut\hspace{0.2em}} \raisebox{-1.3mm}{#1}}}}
  
-  - \xeCJKDeclareSubCJKBlock{kana}{ "0600 -> "E0FFF}+==== 設定例:見出しに下線 ====
  
-上記のように、xeCJKパッケージの\xeCJKDeclareSubCJKBlockで、和文とて扱うコード範囲を指定してやる。単純和文として扱うだけなら、上記のように必要な個所のコード指定すれば、全体で設定している和文フォントが利用される。範囲の指定は、コードポイントでも、コードポイントに対応する文字でも指定できるようだ。また、必要に応じてここで指定したブロックだけ別フォントを割り当てることも可能。ここでは横着して、とりあえずASCII文字+α以上のコードポイントはすべて和文と指定して丸囲み数字等をすべて日本語フォントにしてしまうが、もう少し丁寧に設定する方が望ましいだろう+見出しの下線引く
  
 +見出しに下線を引く。もっと簡単な方法もあるかもしれないが、最後のコマンドまではほぼ標準設定をなぞって設定。その上で、見出し出力後のコマンドに\vspace{0mm}\titlerule[1pt]を指定して、1pt幅の水平線を出力。ここで、全体を{}でくくっておかないと、影響範囲の問題でエラーになるようだ。
  
 +  \usepackage[explicit]{titlesec}
 +  \titleformat
 +    {\section}
 +    [hang]
 +    {\normalfont\Large\headfont}
 +    {\thesection.}
 +    {0.3em}
 +    {#1}
 +    [{\vspace{0mm}\titlerule[1pt]}]
  
  
  
  
メモ/latex.1633481646.txt.bz2 · 最終更新: 2021/10/06 09:54 by Wiki Editor

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki