タグ

ブックマーク / zrbabbler.hatenablog.com (21)

  • LuaLaTeX で和文しない速さを調べてみた - マクロツイーター

    風評が流れるのは憂慮すべきことである。 そういうわけで、欧文の LuaLaTeX のコンパイル速度について、簡単に調べてみることにする。 実験してみた Compilation speed: pdfLaTeX vs LuaLaTeX (Gist:zr-tex8r) 実験方法 テスト用文書として「世界人権宣言(UDHR)の英語の全文を 50 回記したもの」(udhrmain.tex)を使う。レターサイズで 313 ページ。 Windows 10 + TeX Live 2018 の環境において、pdfLaTeX と LuaLaTeX のコンパイル所要時間を比較する。 3 回予備で実行した後、9 回実行して所要時間を計測、その中間にある 5 回分の平均値を求めた。 実験結果 pdfLaTeX: 1.497 秒 LuaLateX: 5.560 秒 LuaLaTeX の方が 3.71 倍遅い。 ※生デ

    LuaLaTeX で和文しない速さを調べてみた - マクロツイーター
    Nyoho
    Nyoho 2018/06/08
    LuaTeX遅いよね。LuaTeX-jaはさらに遅い。でも仕上がりが魅力。
  • pxrubrica のもっと新しいやつ(v1.3) - マクロツイーター

    ……がリリースされた。 •Package PXrubrica(CTAN*1)1.3 版 W32TeX では既に反映されている。TeX Live については現在 pretest 期間中であるので、TeX Live 2017 の正式リリースの時点で一般ユーザに届くことになる。 記事では、1.2 版での改修について述べる。 自動切替モノルビ・熟語ルビ pxrubrica の 3 つの基モードのうち、モノルビ(m)と熟語ルビ(j)はルビ文字列の方を親文字(漢字)ごとにグループ分け(|)を入れるが、グループルビはルビ文字列のグループ分けを入れない。 \ruby[m]{孔雀}{く|じゃく} % モノルビ \ruby[j]{孔雀}{く|じゃく} % 熟語ルビ \ruby[g]{朱鷺}{とき} % グループルビ つまり、「モノルビ・熟語ルビの何れかである」か「グループルビである」かの判断はルビ文字列引

    pxrubrica のもっと新しいやつ(v1.3) - マクロツイーター
    Nyoho
    Nyoho 2017/04/30
    pxrubrica 1.3
  • (u)pLaTeX で CJK パッケージする件(1) - マクロツイーター

    CJK パッケージは欧文 (pdf)LaTeX で日語(などの CJK 言語)を扱うものである。従って、元々日語を扱うためのエンジンである (u)pLaTeX で CJK パッケージが入用になるという場合はほとんど考えられないだろう。実際には、CJK と (u)pLaTex の実装は共存できないことが知られている。 CJK パッケージと pLaTeX / upLaTeX (アレForum) ただし、(u)pLaTeX で敢えて CJK パッケージを使おうとする話が全くない、というわけでもない。 というわけで、記事では「(u)pLaTeX で CJK パッケージする」という話題を扱う。 (u)pLaTeX で CJK パッケージすると何がアレか まずは、両者を併用するとどういう不具合が出るかを見てみよう。 ① 和文に対するフォント変更がアレ こちらは (u(pLaTeX の機能が異常に

    Nyoho
    Nyoho 2016/06/27
  • なぜ pxrubrica はデフォルトでゴーストしないか - マクロツイーター

    例の記事の、pxrubrica パッケージの話についてチョット補足。 pxrubrica でゴーストする話 コレで説明されているように、pxrubrica パッケージの \ruby 命令で和文文字列にルビをつけた場合、その外側との間に来入るべき和欧文間空白(xkanjiskip)が入らない。これはそういう仕様であって、xkanjiskip を入れたい場合は、命令のオプションの補助設定に : を 入れる必要がある。*1 ところが実は、pxrubrica パッケージには、ルビ付文字列にゴーストを自動的に挿入する機能が存在する。すなわち、\rubyusejghost という命令を実行すると、ルビ付の和文に対して「ゴースト処理」が有効になる。((\rubyuseaghost を実行すると、ルビ付の欧文(\aruby 命令)について「ゴースト処理」が有効になる。))この状態だとユーザが特に何も指定

    なぜ pxrubrica はデフォルトでゴーストしないか - マクロツイーター
    Nyoho
    Nyoho 2016/06/15
  • TeX で例の素数をアレする話 - マクロツイーター

    最大記録素数(Largest Known Prime)の記録を更新する、49 番目のメルセンヌ素数が発見されたそうである。 Largest Known Prime, 49th Known Mersenne Prime Found!! 以下の映像をみると、この素数 274207281 − 1 の値を印刷して製した冊子(3 分冊)が登場する。 New World's Biggest Prime Number (PRINTED FULLY ON PAPER) - Numberphile 真の TeX 芸人がこれを見たならば、次のように考えることは必然であろう。 274207281 − 1 の値を TeX で計算して組版したい。 ところが実際にこれを実装するのは極めて困難である。 TeX エンジンの“処理途中のトークン列”を記憶するバッファには容量制限があって、現在の TeX 実装では 800

    TeX で例の素数をアレする話 - マクロツイーター
    Nyoho
    Nyoho 2016/01/29
    例の既知の最大メルセンヌ素数を全桁冊子にTeXでするという試み。そして吹いた。
  • Merry TeXmas! ― \end{texadvent} - マクロツイーター

    2012/12/01 〜 2012/12/25 TeX & LaTeX Advent Calendar 〜TeX で騒げ、TeX で笑え〜 祝! アドベントカレンダー完走! \expandafter{ \endlinechar- \string` \aftergroup~ \noexpand{ \ifcat^ \endinput` \afterassignment. \csname/ \meaning: \endcsname+ \fi} \futurelet~ \catcode` K7SKK7eKK60I13EKK5cKK6cKK65KK4IKK7eIKK60G10I86G10I83V7I72G1I90V0I77V2I82G0VSS25 I68V13GZKK64SS65KK66DSS231HIKK60SS2319GMDHSS20MDUUDXDNUXDNZGDUBXBDKK20QGEDRSV

    Merry TeXmas! ― \end{texadvent} - マクロツイーター
    Nyoho
    Nyoho 2016/01/08
    LaTeXじゃないTeXの例という噂を聞きつけてきたらすごすぎた……
  • 源ノアレ(Source Han Sans)で TeX してみたい話 - マクロツイーター

    Adobe が先日公開したフリーフォント「Source Han Sans」が話題になっている。 早速 TeX してみたいのだが… で、OpenType の機能を色々備えた“スマート”なフォントを新たに手に入れたとなると、TeX 屋としては XeTeX あたりでちょっと遊んでみたくなるのが自然な発想だろう。ところが、このフォントはちょっとした曲者であり、既存のフォントではほとんど見られない特質を持っている。 配布のフォント形式の一つは「OpenType Collection(OTC)」というもので、これは「TrueType Collection(TTC)」形式*1の CFF グリフ版に相当する形式で、この形式をもつ既存のフォントは私は知らない。 このフォントはヒラギノや小塚と同様の“CID-keyed”なのであるが、その文字集合は従来の Adobe-Japan1 のような規格として予め定めら

    源ノアレ(Source Han Sans)で TeX してみたい話 - マクロツイーター
    Nyoho
    Nyoho 2016/01/03
  • LaTeX 的 \relax の使い方 12連発(2) - マクロツイーター

    (前回の続き) さて後半戦である。もう一度「例の記事」への参照を載せておこう。 \relax の使い方 12連発 − 0番染色体 7. 行末の空白挿入防止 こうした事態を防ぐためによくとられる手段は「行末をコメントアウト」してしまうというものです.\def\macro{% \textsf{M}% \textrm{acro}% }もちろん(この例では)これで何の問題もなく「変な空白の出力されない」よいマクロ *7 になるわけですが,さきほどの「空白」に関する3規則を思い出すと,\relax を用いた別の手も考えられます.\def\macro{\relax \textsf{M}\relax \textrm{acro}\relax }こちらは,行末をコメントアウトする代わりに「制御綴後の空白(改行)は無視される」ことを利用して空白の挿入を防いでいます(\relax は「何もしない」のでそれ以外の

    LaTeX 的 \relax の使い方 12連発(2) - マクロツイーター
    Nyoho
    Nyoho 2015/12/09
  • 去年のアレ(アレ)を振り返ってみる - マクロツイーター

    昨年(2014 年)の「TeX & LaTeX Advent Calendar」はこんな感じでした。 12/01zr_tex8r xparse パッケージでスゴイ LaTeX マクロを作ろう! 12/02golden_lucky LaTeX で git のメタ情報を使うパッケージ 12/03doraTeX dvipdfmx で複数ページPDF/AIファイルを \includegraphics する 12/04CardinalXaro LaTeXで踊る 12/05uwabami Debian 8.x (Jessie) での TeX 環境 12/06mattskala lilypond-bookとLaTeX音楽の植字 12/07abenori 定理系環境なパッケージ(theorem,amsthm,thmtools)を使う 12/08aminophen 誰でも簡単! 化学構造式を LaTeX

    去年のアレ(アレ)を振り返ってみる - マクロツイーター
    Nyoho
    Nyoho 2015/11/14
  • TeX なのに文字列をクオートする話(1) - マクロツイーター

    ごく一般的なプログラミング言語の多くでは、文字列のリテラルをクオート(ダブルクオーテーション、"...")で囲った形で表す。 [hello.mp] % "TeX-comedian" や "Hello, " が文字列リテラル string person; person = "TeX-comedian"; message ("Hello, " & person & "!"); end マークアップ言語においても、メタデータの文字列の“リテラル”はクオートで囲む形式で表すことが多い。 TeX なのでクオートで文字列しない話ところが、TeX 言語では、元来は、「文字列をクオートで囲って表す」という文法は存在しない。これを知らないと余計なことで悩むことになる。 \def\somemacro#1{% \ifx"#1"% #1が空ならば %...(以下省略) } 空列判定をするお馴染みの技法であるが、あ

    TeX なのに文字列をクオートする話(1) - マクロツイーター
    Nyoho
    Nyoho 2015/10/28
  • 次世代の pTeX に関する何か (2) - マクロツイーター

    (前回の続き) 前回*1に引き続いて、“次世代の pTeX”のお話。 今回は組版エンジン(あるいは言語処理系)としての機能について述べる。 ※この記事は飽くまで現時点での状態を述べたものである。 pTeX-ng の起動コマンド W32TeX においては、以下のコマンドが用意されている。 ptex-ng: plain TeX フォーマット。 platex-ng: LaTeX フォーマット。((前回の記事を読めば解るように、これは「ptex-ng &platex-ng」と等価なはずである。実は 2014 年 10 月頃の W32TeX では等価ではなく少しややこしいことになっていたが、現在は等価になっている(はず)。)) もちろん、この plain TeX や LaTeX は(up(La)TeX と同じ)日語対応が施されたものである。 pTeX-ng は「pdfTeX 版の (u)pTeX

    次世代の pTeX に関する何か (2) - マクロツイーター
    Nyoho
    Nyoho 2015/01/21
  • TeX はどうしてアレなのか - マクロツイーター

    Knuth「TeXは組版言語で非エンジニアでも使うもの。なのでプログラム言語のような構成にはすべきでない」 Knuth「従って、記述の構造化はマクロにより行われる。『マクロの展開』であれば誰でも理解できる」 ↓ Knuth「しかし、if文くらいはあった方が便利だろう」 Knuth「あ、チューリング完全になってしまった」 ↓ Knuth「プリミティブの定義は最低限にして、組版制御の基命令の一部はマクロとして実装しよう」 Knuth「あ、なんかプログラムのように複雑なマクロが増えてしまった」 ↓ 変人B「オウッ、TeX は組版言語なのにプログラムが組めるぞ!」 変人C「引数の整数を素因数分解して綺麗な数式で出力するマクロができた! ヒャッハー!」 ↓ TeXBook「TeX の目的は組版であって決してプログラミングではない。しかし世の中には変な人がいて、『TeX でプログラミングする』という

    TeX はどうしてアレなのか - マクロツイーター
    Nyoho
    Nyoho 2014/06/08
    楽しい話
  • 先日リリースされた最新版の TeX を徹底解説! - マクロツイーター

    Knuth 氏のオリジナルの TeX の最新版のリリースが 1 月 20 日に CTAN からアナウンスされた。 CTAN Update: Knuth's TeX tune-up of 2014 前回の改版が 2008 年のことだったので、実に 6 年ぶりの新しい版ということになる。バージョン番号はさらに 1 桁増えて“3.14159265”である。記事では、今回の改版による変更点を、余すところなく全て解説する。 変更点①: 空制御綴の文字列化の不具合の解消 TeX プログラミングの経験者であれば、\csname プリミティブを用いて任意の名前をもつ制御綴のトークンを生成できることはご存知であろう。例えば、\csname foo\endcsname を一回展開するとトークン \foo が得られるし、また \csname 1+1=2\endcsname を一回展開すると、TeX の普通の名

    先日リリースされた最新版の TeX を徹底解説! - マクロツイーター
    Nyoho
    Nyoho 2014/01/27
    さすが徹底解説
  • 卒論を LaTeX で書いている人に役立ちそうなパッケージ1選 - マクロツイーター

    日付のところに「あと○日」と出す(tcdeadline パッケージ) tcdeadline パッケージ(GitHub/zr-tex8r) つまりこういうこと。 使い方は超簡単。オプションに提出期限を書いてパッケージを読み込むだけ! \documentclass[dvipdfmx]{orzthesis} \usepackage[2014/02/03@15:00]{tcdeadline}%←これを追加! \進捗どうですか \title{卒論はNP困難} \author{七篠 権兵衛} \usepackage{graphicx,color} %(以下略) これで、進捗が思いきり進むこと間違いなしですね!!

    卒論を LaTeX で書いている人に役立ちそうなパッケージ1選 - マクロツイーター
  • 冬休み課題②:円周率を使わない話 - マクロツイーター

    今年もあと残り数時間となりました。 年越しまで、特にやることないんだけど、残念ながら \expandafter のことはあまり解らないという人は、次の問題をやってみればどうでしょうか。 なぜこれが「円周率を使わない話」になるかといえば、 太郎くんが実際に得たのは円ではないから です。 円ではない曲線の話 pict2e パッケージを用いて描かれる曲線はすべて、3 次 Bézier 曲線というタイプのものです。ところが、真の円(または円弧)は 3 次 Bézier 曲線ではないので、pict2e では「十分に円に近く見える 3 次 Bézier 曲線の連なり」で円を代用しているのです。 pict2e による半径 1 の「円」の描画では、第 1 象限の部分(上の図の赤い部分)を 1 つの Bézier 曲線で表し、残りの部分はこれを原点を中心にして 90° ずつ回転させたもので表しています。つま

    冬休み課題②:円周率を使わない話 - マクロツイーター
    Nyoho
    Nyoho 2013/12/31
  • 今年も TeX で Advent Calendar する件について - マクロツイーター

    やります! TeX & LaTeX Advent Calendar 2013 (Adventar) TeX & LaTeX Advent Calendar 2013 とっておきの TeX/LaTeX ネタを皆で持ち寄って楽しむ 「TeX & LaTeX Advent Calendar」 盛況にうちに終わった昨年に続き第 2 回の開催です。 皆さんの、心をこめたネタをお待ちしております! ※ ハッシュタグは「 #texadvent2013 」 ※ TeX 初心者大歓迎。 ※ LaTeX 初心者大歓迎! ※ LaTeX 初心者大歓迎! 大事なことなので(ry 昨年を振り返ってみる 昨年(2012 年)の内容は次のようなものでした。 12/01 ZR-TeXnobabbler アドベントがはじまった ― \begin{texadvent} 12/02 hak7a3 \aftergroup な話

    今年も TeX で Advent Calendar する件について - マクロツイーター
    Nyoho
    Nyoho 2013/11/24
  • せっかくだから PythonTeX でナベアツを実装した - マクロツイーター

    TUG 2013 で PythonTeX についての発表があって少し話題になっているようた。 PythonTeX というのは、端的にいうと、「LaTeX 文書中で Ruby のプログラムを実行する機能」を提供するパッケージである。すなわち「PerlTeXRuby 版」に相当する。なので、「ちょっと複雑な LaTeX 命令を実装したいが、TeX や expl3 や Lua や Perl や LISP on TeX じゃなくて Ruby を使いたい!」という人は是非とも試すべきであろう。 パッケージ自体は最近の TeX Live 2013 であれば既にインストールされている。ただし、LuaTeX のような「言語処理系を組み込んだ TeX エンジン」ではなく、PerlTeX のように「TeX と言語処理系が連携する」形で動作するので、別途 Ruby のインタプリタがインストールされている必

    せっかくだから PythonTeX でナベアツを実装した - マクロツイーター
    Nyoho
    Nyoho 2013/11/01
    PythonTeX は Python とは限らず usefamily=ruby で ruby も使えるだと…
  • じゃあ \if の抜き打ちテストやるぞー - マクロツイーター

    (元ネタ? →じゃあ this の抜き打ちテストやるぞー) なんか JavaScript の this は難しいらしいな。でも、\if なんて TeX プログラミングの基礎の基礎の話だから、普段 TeX コードを書いてる人だったら \if はみんなばっちりだよな。じゃあ今から抜き打ちテストするぞー。 plain TeX または LaTeX において、起動直後に以下のコードを実行したとする。 \let\a=a \let\b=a \def\c{c} \chardef\d=`d \let\primA\indent \chardef\chardefA=42 \newcount\countA \countA=42 \def\macroA{42} \def\empty{} \let\X\relax \catcode`\X=13 \def X{c} \catcode`\Y=13 \let Y=c \ca

    じゃあ \if の抜き打ちテストやるぞー - マクロツイーター
    Nyoho
    Nyoho 2013/10/12
  • TikZ は dvipdfmx をどこまでサポートするか? (2) - マクロツイーター

    前回の記事で dvipdfm での PGF(TikZ)の機能制限として挙げた項目の中に 図画間結合(inter-picture connections)は pdfTeX の最近の版でのみサポートされる。 というものがある。今回の記事ではこの機能および現状の dvipdfmx でのサポート状況について解説する。併せて pTeX 系エンジンでこの機能を使う方法について説明する。 図画間結合とは何か TikZ では、「ノードに名前を付けて後でその位置を参照する」という機能がある。例えば、以下の例では、5 つのノードに P0〜P4 の名前を付けて、その後で、ノード同士を結ぶ折れ線を「名前を参照して」描いている。 \begin{tikzpicture} % 5個のノードを名前付きで描く \node[rectangle,draw] at ( 0:1cm) (P0) {0}; \node[rectang

    TikZ は dvipdfmx をどこまでサポートするか? (2) - マクロツイーター
  • pxjahyper パッケージ - マクロツイーター

    機能追加した。 PXjahyper パッケージ (github/zr-tex8r) 改めて説明すると、pxjahyper パッケージは以下の機能を提供するパッケージである。 例の tounicode な special で勝手に正しいのを出してくれる。 PDF 文字列の入力中で「文字命令」やリガチャを使っても大丈夫にする。 jsarticle で使うと PDF の用紙サイズが変になるのを何とかする。 これらの機能はパッケージを単に読むだけで既に有効になっている。 もう少し複雑な例を挙げてみる。 % upLaTeX 文書 \documentclass[uplatex]{jsarticle} \usepackage[dvipdfmx,bookmarks=true,bookmarksnumbered=true]{hyperref} \usepackage{pxjahyper} %**後はhype

    pxjahyper パッケージ - マクロツイーター