Skip to content

Commit

Permalink
サンプル文章のデスクトップ共有をActual Multiple MOnitorsに置き換えた。
Browse files Browse the repository at this point in the history
  • Loading branch information
suikan4github committed Mar 30, 2024
1 parent e96faca commit 08c4e10
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 22 deletions.
14 changes: 13 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,17 @@
### Known Issue
- [Issue #3](https://github.com/suikan4github/PaleALE/issues/3) : 索引が空の場合にLaTeXのビルドが異常終了する

## [v1.2.2] 2024-03-31
サンプル文章のデスクトップ共有をActual Multiple MOnitorsに置き換えた。
### Added
### Changed
### Deprecated
### Removed
### Fixed
### Security
### Known Issue
- [Issue #3](https://github.com/suikan4github/PaleALE/issues/3) : 索引が空の場合にLaTeXのビルドが異常終了する

## [v1.2.1] 2024-03-26
インストールの最後にルートパスワードをも求めないよう変更。
### Added
Expand Down Expand Up @@ -164,7 +175,8 @@ Windows 10環境のWSLに対応した。
## [1.0.0] - 2022-07-24
最初のリリース

[Unreleased]: https://github.com/suikan4github/PaleALE/compare/v1.2.1...develop
[Unreleased]: https://github.com/suikan4github/PaleALE/compare/v1.2.2...develop
[v1.2.2]: https://github.com/suikan4github/PaleALE/compare/v1.2.1...v1.2.2
[v1.2.1]: https://github.com/suikan4github/PaleALE/compare/v1.2.0...v1.2.1
[v1.2.0]: https://github.com/suikan4github/PaleALE/compare/v1.1.7...v1.2.0
[v1.1.7]: https://github.com/suikan4github/PaleALE/compare/v1.1.6...v1.1.7
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ LaTeX執筆環境の構築用スクリプト、ツール、およびサンプル

## 概要
PaleALEプロジェクトの目的は二つあります。
- Visual Sudio CodeによるLaTeX執筆環境を作るためのインストール・スクリプトを提供する
- Visual Studio CodeによるLaTeX執筆環境を作るためのインストール・スクリプトを提供する
- 同環境での執筆のためのツールを提供する

PaleALEが構築する執筆環境はVisual Studio Codeと、その上で動作するLaTeX Workshopプラグインを用いたものです。LaTeX Workshopを使うことで、LaTeXファイルを保存するたびにビルドが自動的に行われ、Visual Studio Code上で即座に生成したPDFファイルが自動的に表示されます。執筆者はビルドのたびにコマンドを叩く必要はありません。
Expand Down Expand Up @@ -57,7 +57,7 @@ aarch64の試験は、Raspberry Pi 3A上のUbuntu Server 22.04で行いました
[PaleAle Wiki](https://github.com/suikan4github/PaleALE/wiki)はリリースとは独立して技術情報を公開しています。トラブルがあったときはWikiも参照してみてください。

## 使い方
LaTeXの執筆を行うには、まず[LaTeX文書のプロジェクト](FILES.md)をVisual Studio Codeで開きます(メニューバー→[File][Open Folder ...])。この状態で編集を行います。Visual Sutdio Codeはフォルダのファイル一覧を表示してくれるので、好きなファイルを自由に開くことが出来ます。
LaTeXの執筆を行うには、まず[LaTeX文書のプロジェクト](FILES.md)をVisual Studio Codeで開きます(メニューバー→[File][Open Folder ...])。この状態で編集を行います。Visual Studio Codeはフォルダのファイル一覧を表示してくれるので、好きなファイルを自由に開くことが出来ます。

LaTeX文書のソース・ファイル(.tex)を開いた状態で以下のショートカットを利用できます。
- Alt-Ctrl-B : LaTeX文書のビルド
Expand All @@ -84,7 +84,7 @@ PaleALE
├── 000_preface.tex
├── 010_body.tex
├── a10_appendix.tex
├── b10_authers_note.tex
├── b10_authrs_note.tex
├── image
├── image_src
│ ├── diagram.drawio
Expand Down
52 changes: 34 additions & 18 deletions sample/010_screenshots.tex
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,9 @@ \subsection{仮想マシンを使う}
Windowsライセンスが必要になります。また、調べた限りではVMWare Workstation
Player 17では物理ディスプレイよりも大きな仮想ディスプレイを作ることができません。

この方法の欠点はレスポンスが非常に遅く、8kともなると作業をする時間よりも待ち時間が
長くなりがちな点です。


\subsection{ダミープラグを使う}
HDMIダミープラグ、あるいはEDIDエミュレータと呼ばれるデバイスを使うと
Expand Down Expand Up @@ -224,37 +227,50 @@ \subsection{ダミープラグを使う}



\subsection{ダミープラグとデスクトップ共有を使う}
\subsection{ダミープラグとミラーリング・ソフトを使う}
ダミープラグを使う方法は目隠し状態での作業を強いられます。
それが困る場合は、デスクトップ共有を使うことで解決できます
それが困る場合は、ミラーリング・ソフトを使うことで解決できます
考え方としては、次のようなステップを踏みます。

\begin{enumerate}
\item\ref{fig:display-plug}のフレーム・バッファ2のデスクトップを共有し
\item 同図のフレーム・バッファ1のアプリで受ける
\item\ref{fig:display-plug-mirror}のフレーム・バッファ2の出力を
\item ミラーリング・ソフトで同図のフレーム・バッファ1に表示する
\end{enumerate}

このようにすれば、ダミープラグに出力される画面を確認しながら作業できます
。このようなことができるデスクトップ共有
の方法にはいくつかありますが、筆者が試した中ではChromeブラウザによる共有が手軽で、
かつ応答も他に比べて優れていました。
\begin{figure}[btp]
\begin{center}
\includegraphics*[width=70mm]{image/displayplug_mirror.pdf}
\caption{ダミープラグとミラーリング・ソフトを使う} \label{fig:display-plug-mirror}
\end{center}
\end{figure}


このようにすれば、ダミープラグに出力される画面を確認しながら作業できます。
このようなことが可能なソフトウェアとしてActual Multiple Monitorsがあります
\footnote{\url{https://www.actualtools.com/multiplemonitors/}}。

このソフトはモニタ間のミラーリングとスケーリングをGPUで行うため、画面の遅延が
非常に小さく、作業が楽になります。同様の方法としてChrome ブラウザのデスクトップ
共有機能がありますが、レスポンスは劣ります。


ダミープラグとミラーリング・ソフトを使う方法は、追加コストがダミープラグと
ソフトウエアの代金だけであり非常に低価格で済むことが利点です。Actual
Multiple MonitorsはSteamで購入することもできます\footnote{\url{https://store.steampowered.com/app/241680/Actual_Multiple_Monitors/}}。

Churomeブラウザによるデスクトップ共有の方法はネット上にたくさん解説がありますのでそちらを
参考にしてください。なお、共有元と共有先が同じPCということで、「共有元と共有先の
Chromeブラウザは別のタブにする」ことだけは気を付けてください。ウィンドウをあえて
別にしなくても動作しますが、別にした方が直感的に作業しやすいかもしれません。

ダミープラグとデスクトップ共有を使う方法は、追加コストがダミープラグの代金だけであり
非常に低価格で済むことが利点です。一方で
一方で

\begin{enumerate}
\item 他の方法に比べて応答が遅い。
\item 共有中に他のアプリを起動すると、それがどのフレームで起動しているのかわかりにくい
\item ミラーリング中に他のアプリを起動すると、それがどのフレーム・バッファで起動しているのかわかりにくい
\end{enumerate}

といった欠点があります。

この方法はあくまでほかの方法を使えないときにリリーフと考えた方がよいでしょう。
この方法は、ほかの方法を使えないときのリリーフと考えた方がよいでしょう。
Actual Multiple Monitorsには30日のお試し期間がありますので、
関心のある人は試してみることができます。


\section{まとめ}
Expand All @@ -265,15 +281,15 @@ \section{まとめ}
\item GPUを使う。
\item 仮想マシンを使う。
\item ダミープラグを使う。
\item ダミープラグとデスクトップ共有を使う
\item ダミープラグとミラーリング・ソフトを使う
\end{itemize}

いずれも一長一短があるものの、数万円の出費を許せるのなら4kディスプレイか
GPUを採用することをお勧めします。この二つは操作が軽快でストレスがたまりません。
また、PCの購入を予定しているのなら、インテル以外のGPUを採用したモデルにすることで
コストをあらかじめPC代金に盛り込むことも可能です。

最期に、比較用に拡大率毎のスクリーンショットを図\ref{fig:all-screenshot}に
最後に、比較用に拡大率毎のスクリーンショットを図\ref{fig:all-screenshot}に
示します。

\begin{figure}[b]
Expand Down
61 changes: 61 additions & 0 deletions sample/image_src/displayplug_mirror.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<mxfile host="65bd71144e">
<diagram id="NC1hEWJh8_QtpdpS8o8B" name="Page-1">
<mxGraphModel dx="369" dy="1139" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="12" value="Windows PC" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;fontSize=18;fillColor=#E6E6E6;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="40" y="90" width="260" height="320" as="geometry"/>
</mxCell>
<mxCell id="4" value="2k" style="shape=parallelogram;html=1;strokeWidth=2;perimeter=parallelogramPerimeter;whiteSpace=wrap;rounded=1;arcSize=0;size=0.23;flipH=1;rotation=0;direction=north;fontSize=18;" parent="1" vertex="1">
<mxGeometry x="80" y="127.5" width="90" height="100" as="geometry"/>
</mxCell>
<mxCell id="5" value="2k" style="shape=parallelogram;html=1;strokeWidth=2;perimeter=parallelogramPerimeter;whiteSpace=wrap;rounded=1;arcSize=18;size=0.22499999999999998;flipH=1;rotation=0;direction=south;fontSize=18;" parent="1" vertex="1">
<mxGeometry x="405" y="127.5" width="90" height="100" as="geometry"/>
</mxCell>
<mxCell id="7" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="320" y="177" as="sourcePoint"/>
<mxPoint x="400" y="177" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="9" value="Display" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=2;fontSize=18;" parent="1" vertex="1">
<mxGeometry x="420" y="227.5" width="60" height="30" as="geometry"/>
</mxCell>
<mxCell id="10" value="Frame Buffer1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=2;fontSize=18;" parent="1" vertex="1">
<mxGeometry x="95" y="227.5" width="60" height="30" as="geometry"/>
</mxCell>
<mxCell id="13" value="4k" style="shape=parallelogram;html=1;strokeWidth=2;perimeter=parallelogramPerimeter;whiteSpace=wrap;rounded=1;arcSize=0;size=0.23;flipH=1;rotation=0;direction=north;fontSize=18;" parent="1" vertex="1">
<mxGeometry x="80" y="270" width="90" height="100" as="geometry"/>
</mxCell>
<mxCell id="15" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="13" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="320" y="319.5" as="sourcePoint"/>
<mxPoint x="300" y="320" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="16" value="Display Plug" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=2;fontSize=18;" parent="1" vertex="1">
<mxGeometry x="380" y="310" width="110" height="30" as="geometry"/>
</mxCell>
<mxCell id="17" value="Frame Buffer2" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=2;fontSize=18;" parent="1" vertex="1">
<mxGeometry x="95" y="370" width="60" height="30" as="geometry"/>
</mxCell>
<mxCell id="18" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;" parent="1" vertex="1">
<mxGeometry x="300" y="300" width="50" height="40" as="geometry"/>
</mxCell>
<mxCell id="19" value="" style="curved=1;endArrow=classic;html=1;entryX=0.25;entryY=1;entryDx=0;entryDy=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;dashed=1;dashPattern=8 8;startSize=6;endSize=13;" edge="1" parent="1" source="13" target="4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="290" y="600" as="sourcePoint"/>
<mxPoint x="340" y="550" as="targetPoint"/>
<Array as="points">
<mxPoint x="350" y="250"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="20" value="Mirroring" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=19;" vertex="1" parent="1">
<mxGeometry x="190" y="235" width="100" height="30" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

0 comments on commit 08c4e10

Please sign in to comment.